1. 程式人生 > >2018.12.22 Spring學習02

2018.12.22 Spring學習02

Spring學習02

1.使用註解配置Spring

1.1 為主配置檔案引入新的名稱空間(約束)

新增約束檔案xxx-xxx-context.xml

新增到主配置檔案中

選擇剛才的context.xml文件

記住:一個xml文件只能有一個名稱空間(昨天的名稱空間是空的) 只需要寫最後一個單詞作為名稱空間就可以了

1.2 開啟使用註解代理配置檔案

1.3 在類中使用註解完成配置

1.4 編寫測試類進行Junit測試


解決辦法

重新執行

1.5 將物件註冊到容器中

1.6 如何指定物件的作用範圍 (scope註解)

預設值屬性singleton


1.7 給物件賦值 (Value註解注入)

1.7.1 值型別注入

1.在成員變數上面新增Value

2.在set方法上面新增Value(推薦使用)

以上是值型別注入的兩種方式。第一種是通過反射的Field賦值,第二種是set方法賦值。技術上來說第一種破壞了物件的封裝性,但是大家都習慣加在成員變數上面

1.7.2 引用物件型別注入

在Car物件上注入註解 Component,並且新增Value賦值

第一種注入方式。@Autowired

在配置檔案中新增第二輛車

測試第一種方式發現無法輸出第二輛車的資訊輸出

第二種注入方式。@Autowired @Qualifier("car2") 需要兩個一起結合使用


第三種注入方式。@Resource(name="car2")

1.7.3 指定注入初始化/銷燬方法

@PostConstruct //在物件建立後呼叫 init-method
@PreDestroy //在物件銷燬之前呼叫 destroy-method

測試

修改後二次測試

2.STS外掛安裝

檢視詳細的教程
https://www.cnblogs.com/qichunlin/p/10159524.html

3. spring與junit整合測試

3.1 導包 4+2+aop+test

在測試類中添加註釋 @RunWith(SpringJUnit4ClassRunner.class)



在新增一個註釋 @ContextConfiguration("classpath:applicationContext.xml")

測試

3.spring中的AOP

3.1思想 介紹

第一次---攔截器(亂碼處理)

第二次---事務管理(通過動態代理方式解決)

第三次---Action中引數賦值校驗是否登陸

3.2 spring中的aop概念

Spring能夠為容器中管理的物件生成動態代理物件
以前我們要使用動態代理物件,我們需要自己呼叫下面的這個方法,Proxy.newProxyInstance(xx,xx,xx)
spring能夠幫我們生成代理物件 (重點)

3.3 spring實現aop的原理

3.3.1 動態代理(有介面,優先使用)

被代理物件必須要實現介面,才能產生代理物件。如果沒有介面將不能使用動態代理

測試

3.3.2 cglib代理(沒有介面)

第三方代理技術,cglib代理可以對任何類生成代理,代理的原理是對目標物件進行繼承代理。如果目標物件唄final修飾,那麼該類無法被cglib代理

測試