1. 程式人生 > >SpringIOC(DI)

SpringIOC(DI)

IOC(Inversion of Control )控制反轉

所謂控制反轉就是把建立物件(bean),和維護物件(bean)的關係的權利從程式中轉移到spring的容器(applicationContext.xml),而程式本身不再維護

DI(Dependency Injection)依賴注入

實際上diioc是同一個概念,spring設計者認為di更準確表示spring核心技術

使用了ioc容器建立物件和管理物件之間關係的工作由ioc容器處理

Spring為我們提供了applicationContext、BeanFactory兩種容器

eanFactory是由

org.springframework.beans.factory. BeanFactory介面定義,他是一個基礎的IOC容器,並能提供完整的IOC服務支援。IOC容器需要為其具體的實現提供基本的功能規範,而BeanFactory介面則提供了該功能規範的設計,每個具體的Spring IOC容器都需要滿足BeanFactory介面的定義。

ApplicationContextorg.springframework.context. ApplicationContext介面定義的,是以BeanFactory為基礎構建的。是BeanFactory的子類,與BeanFactory先比除了具有基本的

Bean建立、管理功能外,還有更多的附加功能,例如國際化等….

//使用spring

//方法一

//1.建立Spring容器

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationcontext.xml");

//2.獲得User物件

User u = (User) ac.getBean("u");

//User u = ac.getBean("u", User.class);//和上面等價 不需要強制轉換

u.tell();

//方法二

BeanFactory factory = new

 XmlBeanFactory(new ClassPathResource("applicationcontext.xml"));

User x = (User) factory.getBean("u");

x.tell();、





 依賴注入的方式
   依賴注入一般存在三種方式:設值注入、構造方法注入、介面注入。但是在Spring中只支援前兩種。

可以注入陣列、集合(ListSetMap)。