Spring框架

Spring框架的學習

  • IOC控制反轉
  • AOP面向切面

Spring 的依賴注入(DI)

所謂依賴注入,就是IOC容器在運行期間,動態地將對象的依賴關係注入到對象的屬性中。
底層原理:Spring 根據配置文件中配置依賴關係,首先獲取被依賴的對象dao實例,調用service對象中的set方法將dao實例設置(注入)到service當中去。

  • 設值注入
  • 構造注入

設值注入

//設值注入
<bean id= "xxx" class="類的全路徑dao"></bean>
<bean id="yyy" class="類的全路徑service">
	<property name="屬性名" ref="xxx" ></property>
</bean>

構造注入

<bean id="yyy" class="類的全路徑service">
	<constructor-arg name="xxx" ref=xxx"">
</bean>
<bean id= "xxx" class="類的全路徑dao"></bean>

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

//無參構造方法
<bean id="xxx" class="類的全路徑"></bean>
//有參構造方法
添加有參的構造器
<bean id="xxx" class="類的全路徑">
	<constructor-arg index="0" value="110" type="java.lang.Long">
	<constructor-arg index="1" value="quanbao" type="java.lang.Long">
</bean>
靜態工廠
<bean id="ccc" class="類的全名" factory-method="工廠的方法名"></bean>

Spring加載配置文件的方法

// Spring 加載配置文件的方法
ApplicationContext application = new ClassPathXmlApplicationContect("xxx.xml");
ApplicationContext application2 = new ClassPathXmlApplicationContect(new String["xxx.xml","sss.xml"]);
ApplicationContext application3 = new ClassPathXmlApplicationContect("classpath:xxx*.xml");

//

Bean 的作用域

Dao:單例(爲什麼用單例?是線程安全的,用多線程是線程不安全的)
Service:單例
Action:多例(在bean 中添加 scope=“prototype”)
servlet:單例

基於註解(ICO的開發)

實例化註解

  • @Repository(“xxxx”) 標示它是一個dao,指定ben的名稱,不指定默認爲類名(首字母小寫)
  • @Service(“xxxx”)使用Service註解標示此ben爲一個業務Service
  • @Controller(“xxxx”)使用controller標示此ben爲一個控制器
  • @Scope(“prototype”)使用scope註釋標示一個多例
  • @component(“sss”)可以用在任何的ben上

在Bean中配置掃描的組件

<context:component-scan base-package=“包路徑”></context:component-scan>

依賴注入的註解
用在屬性和方法上面

  • @Autowired 按類型注入
  • @Qualifire(“bean 的名稱”)指定注入的bean

@Resource(“bean的名稱”) 此註解去bean的容器去找bean —此註解是jdk的
激活屬性註解:</context:annotation-config> 如果沒有用前面的那四種類的註解

Spring的底層原理



發佈了22 篇原創文章 · 獲贊 6 · 訪問量 672
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章