1. 程式人生 > >spring框架--控制反轉(IOC)、spring的注入、Bean的作用域

spring框架--控制反轉(IOC)、spring的注入、Bean的作用域

1.spring是什麼?
spring是一個輕量級的、控制反轉(IOC)和麵向切面程式設計(AOP)的容器框架。

2.spring入門程式
2.1.匯入jar包
2.2.spring的核心配置檔案 applicationContext.xml(預設)
作用:用於配置所有的類(物件),這些類可以稱為springBean
2.3.spring的核心類:ApplicationContext(介面)
作用:建立或是獲取springBean.

3.IOC
控制反轉:把物件的建立、初始化、銷燬等工作權利交給spring容器, 讓spring容器來管理這些物件的生命週期。
IOC不是一種技術,而是一種思想 面向物件程式設計的思想,可以設計出鬆耦合度、優良的程式
包括:依賴注入DI(IOC的核心)、依賴查詢

 <!--class:對應的類
	 id:唯一的標識
   	   等同於
   	 Person p=new Person();-->
   	 <bean id="person" class="cn.bean.Person"></bean>

4.spring的注入
當例項化某個物件的時候由外部容器來設定這個物件的值
屬性值的注入,一定有對應的setter方法

<!-- 注入的案例,注入時,屬性必須有setter方法 -->
	<bean id="user" class="cn.bean.User">
	    <!-- property 當前配置的類的屬性
			 name:屬性的名字
			 value:注入的值    
			 ref:指向其他的bean的id
		 -->
		<!-- int型別注入 -->
		<property name="age" value="22"></property>
		<!-- String型別注入 -->
		<property name="name" value="張三"></property>
		<!-- List型別注入 -->
		<property name="list">
			<list>
				<value>籃球</value>
				<value>跑步</value>
			</list>
		</property>
		<!-- map型別注入 -->
		<property name="map">
			<map>
				<entry key="mybatis" value="98"></entry>
				<entry key="spring" value="90"></entry>
			</map>
		</property>
			<!-- 注入其他的類 
			ref:指向其他的bean的id
			-->
		<property name="car" ref="car"></property>
	</bean>
	<bean id="car" class="cn.bean.Car">
		<!-- 小汽車 -->
		<property name="name" value="bmw"></property>
	</bean>

5.Bean的作用域
作用域:scope
預設singleton:單例模式。只有一份例項,預設就是singleton
prototype:原型模式。每次通過spring 容器來獲取springBean,容器都會建立一個新的例項進行返回
request:同一請求是同一個例項
session:同一會話是同一例項。