1. 程式人生 > >hello world spring ioc——第一個spring程序

hello world spring ioc——第一個spring程序

方式 swa ica urn java應用 模式 實例化 enc 開發

認真對待學習

最近又重新閱讀了spring官方文檔 對裏面的有用的高頻的配進行記錄和分享。

簡介

控制反轉(IoC)又被稱作依賴註入(DI)。它是一個對象定義其依賴的過程,它的依賴也就是與它一起合作的其它對象,這個過程只能通過構造方法參數、工廠方法參數、或者被構造或從工廠方法返回後通過settter方法設置其屬性來實現。然後容器在創建bean時註入這些依賴關系。這個過程本質上是反過來的,由bean本身控制實例化,或者直接通過類的結構或Service定位器模式定位它自己的依賴,因此得其名曰控制反轉。

容器

spring 中的org.springframework.context.ApplicationContext容器接口,在獨立的應用中通常創建ClassPathXmlApplicationContext

或者FileSystemXmlApplicationContext的實例,它們實現了ApplicationContext接口。一般的應用場景中不會現行的創建spring容器,如web環境。。。。但是再練習中最簡單的就是使用簡單的Java應用來學習,也可以幫助以後對配置的理解。

元數據

元數據一般是通過xml的方式來配置,spring2.5以後的版本支持使用註解的方式,spring3.0之後的版本支持java接口的配置,但是這兩種配置方式都違反代碼與配置分離的原則,同時xml的方式提供的配置更加多樣化,所以我不太建議使用(不過使用註解的方式可以提高開發效率)。下文中的的例子中我們使用的都是xml的配置方式。

最簡單的配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="..." class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <bean id="..." class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <!-- more bean definitions go here -->

</beans>

這是spring bean的最簡單配置。id是該bean的唯一標識,class是這個bean的類,讓我們搭建我們第一個helloworld。

jar

想使用spring ioc,首=首相要引入spring ioc的jar包

pom.xml

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.9.RELEASE</version>
        </dependency>

建立元數據

public class Event {
    private Long id;

    private String title;
    private Date date;

    public Event() {
        // this form used by Hibernate
    }

    public Event(String title, Date date) {
        // for application use, to create new events
        this.title = title;
        this.date = date;
    }

    public Long getId() {
        return id;
    }

    private void setId(Long id) {
        this.id = id;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

配置xml 名稱event.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="event" class="全寫包名.Event">
        <!-- collaborators and configuration for this bean go here -->
    </bean>
    
  

    <!-- more bean definitions go here -->

</beans>

測試類

public class SpringTest {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring_bean_cfg.xml");
        Event bean = context.getBean(Event.class);
    
        System.out.println(bean);
    
        
    }

}

運行結果。

[email protected]

於是spring幫我們建立了一個Event對象。

這就是一個spring入門下一節 我們對裏面的關鍵點分析一下。

hello world spring ioc——第一個spring程序