Spring學習①:ioc
一、什麼是spring,它能夠做什麼?
1、 Spring是一個開源框架,它由Rod Johnson建立。它是為了解決企業應用開發的複雜性而建立的。 2、 Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和鬆耦合的角度而言,任何Java應用都可以從Spring中受益。 3、目的:解決企業應用開發的複雜性 4、功能:使用基本的JavaBean代替EJB,並提供了更多的企業應用功能 5、範圍:任何Java應用 簡單來說,Spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器框架。
說明:1、中間層框架、萬能膠 ①struts2 ② spring ③ hibernate 2、 容器框架 ① JavaBean 專案中的一個個類 ② IOC和AOP
二、控制反轉(或依賴注入)
1、含義: 控制反轉(IoC=Inversion of Control)IoC,用白話來講,就是由容器控制程式之間的(依賴)關係,而非傳統實現中,由程式程式碼直接操控。這也就是所謂“控制反轉”的概念所在:(依賴)控制權由應用程式碼中轉到了外部容器,控制權的轉移,是所謂反轉。 2、 IoC還有一個另外的名字:“依賴注入 (DI=Dependency Injection)” ,即由容器動態的將某種依賴關係注入到元件之中
三、使用
1、如何在spring當中定義和配置一個JavaBean(使用無參構造方法+set方法建立一個JavaBean)
①id:在容器中查詢Bean的id(唯一、且不能以/開頭) ② class:bean的完整類名 ③ name:在容器中查詢Bean的名字(唯一、允許以/開頭、允許多個值,多個值之間用逗號或空格隔開) ④ scope:(singleton|prototype)預設是singleton <1> singleton(單例模式):在每個Spring IoC容器中一個bean定義對應一個物件例項 <2> prototype(原型模式/多例模式):一個bean定義對應多個物件例項 <3>abstract:將一個bean定義成抽象bean(抽象bean是不能例項化的),抽象類一定要定義成抽象bean,非抽象類也可以定義成抽象bean
⑤ parent:指定一個父bean(必須要有繼承關係才行) ⑥ init-method:指定bean的初始化方法 ⑦ constructor-arg:使用有引數構造方法建立javaBean
注意:struts2的Action請使用多例模式
2、 簡單屬性的配置: 通過標籤賦值即可
3、複雜屬性的配置 ①JavaBean ref bean="" ②List或陣列 ③ Map ④ Properties
4、針對專案,配置檔案路徑的2種寫法 ApplicationContext
String path = "applicationContext.xml"; String path = "classpath:applicationContext-*.xml";//src String[] path = new String[] { "applicationContext-a.xml", "applicationContext-b.xml" };//分模組開發
5、spring與web專案的整合
WEB專案如何讀取spring上下文 通過監聽器實現ServletContextListener contextConfigLocation:classpath:applicationContext-*.xml
注意:建立spring的XML檔案時,需要新增beans/aop/tx/context標籤支援
四、簡介
spring-context.xml ioc set注入 基本資料型別注入 集合注入 物件注入 構造注入 基本資料型別注入 自動裝配
tomcat整合ioc容器
org.springframework spring-context 4.3.10.RELEASE