認真對待學習 最近又重新閱讀了spring官方文檔 對裡面的有用的高頻的配進行記錄和分享。 簡介 控制反轉(IoC)又被稱作依賴註入(DI)。它是一個對象定義其依賴的過程,它的依賴也就是與它一起合作的其它對象,這個過程只能通過構造方法參數、工廠方法參數、或者被構造或從工廠方法返回後通過settter ...
認真對待學習
最近又重新閱讀了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);
}
}
運行結果。
com.wanda.entity.Event@5c3cee0d
於是spring幫我們建立了一個Event對象。
這就是一個spring入門下一節 我們對裡面的關鍵點分析一下。