Spring 是一個開源的控制反轉(IoC Inversion of Control)和麪向切片(AOP)面向切面的容器框架,它的做用是簡化企業開發。html
請查詢關於反轉控制的內容。簡單來講:應用自己不負責對象的建立以及維護,對象的建立和維護是由外部容器來負責的,這樣控制權就交給了外部容器,減小了代碼之間耦合的程度。spring
舉一個代碼的例子:編程
原先建立一個類:windows
class People{api
Man xiaoMing = new Man();框架
public string males;ide
public int age;測試
}操作系統
咱們實例化一個對象xiaoMing時須要在People類中new一個類,可是經過Spring容器,咱們能夠將其交給外部的XML文件來進行實例化,而在People中,咱們僅僅須要聲明一個xiaoMing對象便可。code
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();
}
能夠看到測試結果正確,測試輸出爲 "測試是否被實例化!"
優缺點: