1. 程式人生 > >SpringMVC中IOC容器

SpringMVC中IOC容器

pla 運行期 決定 text prot 容器 自動 -1 1.3

1.Spring作用:
1.生態體系龐大,全能型選手!【springmvc是其一個子模塊,jdbcTemplate能直接操作數據庫!】
2.將其他組件粘合在一起
3.IOC容器和AOP
Spring的Ioc機制(控制反轉和依賴註入)正是用在此處。
Spring的Ioc(控制反轉和依賴註入)
控制反轉[Ioc]:就是由容器控制程序之間的(依賴)關系,而非傳統實現中,由程序代碼直接操控。
控制反轉是一種思想,其具體實現就是依賴註入!
依賴註入[DI]:組件之間的依賴關系由容器在運行期決定 ,由容器動態的將某種依賴關系註入到組件之中。

2.IOC容器細節
1.使用IOC容器創建對象
2.使用IOC容器在創建對象的同時,給對象的屬性賦值
3.在創建對象的過程中,實現組件對象之間的自動裝配

3.搭建Spring IOC容器需要的開發環境
1.導入IOC容器需要的jar包
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
commons-logging-1.1.3.jar
2.創建Spring配置文件[Spring bean Configuration File]


實驗1:

<!--實驗1:通過IOC容器創建對象,並為屬性賦值 -->
<!-- 需要由IOC容器創建對象的全類名 -->
<!-- 為了便於從IOC容器中獲取book對象,聲明一個一個唯一的id值 -->
<bean id="book01" class="com.neuedu.spring.bean.Book">
<property name="bookId" value="2001"></property>
<property name="bookName" value="三國演義"></property>
<property name="author" value="羅貫中"></property>
<property name="price" value="22.5"></property>
</bean>


@Test
public void test01() {
//1.創建IOC容器自身的對象
//指定配置文件以類路徑為基準的配置文件名
ApplicationContext ioc= new ClassPathXmlApplicationContext("bean.xml");
//2.從IOC容器中獲取指定的對象
Object bean = ioc.getBean("book01");
System.out.println(bean);
}


註意:
①IOC容器本身對象創建時,會將配置文件中配置好的bean先創建出來
②默認是單實例的,只創建bean的一個對象
③如果設置bean的scope屬性為prototype,那麽創建bean的對象就是多實例的,在獲取的時候創建,每次獲取對象都會創建新的
④.從IOC容器中獲取對象
①根據bean的id獲取
②根據bean的類型獲取:要求容器中指定類型的bean是唯一的

SpringMVC中IOC容器