hello world spring ioc——第一個spring程序
認真對待學習
最近又重新閱讀了spring官方文檔 對裏面的有用的高頻的配進行記錄和分享。
簡介
控制反轉(IoC)又被稱作依賴註入(DI)。它是一個對象定義其依賴的過程,它的依賴也就是與它一起合作的其它對象,這個過程只能通過構造方法參數、工廠方法參數、或者被構造或從工廠方法返回後通過settter方法設置其屬性來實現。然後容器在創建bean時註入這些依賴關系。這個過程本質上是反過來的,由bean本身控制實例化,或者直接通過類的結構或Service定位器模式定位它自己的依賴,因此得其名曰控制反轉。
容器
spring 中的org.springframework.context.ApplicationContext容器接口,在獨立的應用中通常創建ClassPathXmlApplicationContext
元數據
元數據一般是通過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程序