2019/11/24 學習筆記
Spring 小結
Spring致力於簡化企業家Java開發,促進代碼的鬆散耦合。它成功的關鍵在於依賴注入和AOP。
IOC(控制反轉)或者說DI(依賴注入)是組裝應用對象的一種方式,藉助這種方式,對象無需知道依賴來自何處或者依賴的實現方式。
AOP支持,AOP可以幫助應用將散落在各處的邏輯彙集於一處——切面。當Spring裝配Bean的時候,這些切面能在運行期編織起來,這樣就能非常有效地賦予Bean新的行爲。
依賴注入和AOP是Spring框架最核心的部分,只有瞭解如何應用Spring最關鍵的功能,纔有能力去使用Spring框架的其他功能。
Bean的三種裝配方式
- 在XML中進行顯示配置
- 在Java中進行顯示配置(註解)
- 隱式的Bean發現機制和自動裝配
(儘可能的使用自動裝配,顯示配置越少越好)
首先我們創建一個Person接口
public interface Person {
public void say();
}
然後我們創建一個Person的實現類Chinese
blic class Chinese implements Person{
private String username;
private int age;
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("中國人"+this.toString());
}
(省略了相關的get方法)
然後我們創建一個xml文件(構造器注入或set方法注入值,其中設值 注入要求Bean必須滿足一下要求:
(1)Bean類必須提供一個默認的無參構造方法;
(2)Bean類必須爲需要注入的屬性提供對應的setter方法;)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<bean class="com.qing.cap1.Chinese" id="chinese1">
<constructor-arg index ="0" value="hello"/>
<constructor-arg index ="1" value="18"/>
</bean>
<bean class="com.qing.cap1.Chinese" id="chinese2">
<property name="username" value="world"></property>
<property name="age" value="18"></property>
</bean>
<bean class="com.jimisun.spring.example.MyArticle" id="myArticle"></bean>
</beans>
第二種方法:建一個config的類
@Configuration
public class MainConfig {
//給容器中註冊一個bean,類型爲返回值的類型
@Bean("abcPerson")
public Chinese Chinese(){
return new Chinese("jame",20);
}
}
第三種:需要在Chinese中加入@Component
MainConfig中加入@ComponentScan
然後使用@Autowried自動裝配
Spring 從兩個角度來實現自動化裝配
- 組件掃描:Spring會自動發現應用上下文中所創建的Bean
- 自動裝配:Spring自動滿足Bean之間的依賴