Spring 是一個開源的控制反轉(IoC Inversion of Control)和麵向切片(AOP)面向切面的容器框架,它的作用是簡化企業開發。
請查詢關於反轉控制的內容。簡單來說:應用本身不負責物件的建立以及維護,物件的建立和維護是由外部容器來負責的,這樣控制權就交給了外部容器,減少了程式碼之間耦合的程度。
舉一個程式碼的例子:
原先建立一個類:
class People{
Man xiaoMing = new Man();
public string males;
public int age;
}
我們例項化一個物件xiaoMing時需要在People類中new一個類,但是通過Spring容器,我們可以將其交給外部的XML檔案來進行例項化,而在People中,我們僅僅需要宣告一個xiaoMing物件即可。
class Pepele{
private Man xiaoMing;
public string males;
public int age;
}
新建XML配置檔案:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
......
</beans>
可以直接從Spring的說明文件中複製這樣的一段程式碼。
例項化Spring容器:
例項化Spring容器的方法有兩種ClassPathXmlApplicationContext
or FileSystemXmlApplicationContext
.
(1)在類路徑下尋找配置檔案來例項化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext
(new String[]{"bean.xml"});
(2)在檔案系統下尋找配置檔案來例項化容器
ApplicationContext ctx = new FileSystemXmlApplicationContext
(new String[]{"d:\\bean.xml"});
由於windows和Linux作業系統的差別,我們一般使用第一種方式進行例項化。
配置bean檔案並新增類
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="peopleService" name="" class="org.spring.beans.PeopleService">
</bean>
</beans>
public class PeopleService implements PeopleServiceInterf {
/* (non-Javadoc)
* @see org.spring.beans.PeopleServiceInterf#testBeans()
*/
@Override
public void testBeans(){
System.out.println("測試是否被例項化!");
}
}
測試
@Test
public void test() {
//例項化Spring容器
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
PeopleService peopleService = (PeopleService)ctx.getBean("peopleService");
peopleService.testBeans();
}
可以看到測試結果正確,測試輸出為 "測試是否被例項化!"
優缺點: