spring框架(二)
Spring的bean管理(註解)
1、代碼裏面特殊標記,使用註解可以完成相應功能
2、註解寫法@註解名稱(屬性名稱=屬性值)
3、類,方法,屬性(註解使用)
spring註解開發準備
1、導入基本的jar包及aop的jar包(有關註解的jar包)
2、創建類,創建方法
3、創建spring配置文件,引入約束
spring的ioc註解開發,引入新的約束
4、開啟註解掃描
@Component:組件(作用在類上)
Spring中提供@Component的三個衍生註解:(功能目前來講是一致的)
@Controller :web層
@Service :業務層
@Repository :持久層
註解創建對象
1、在創建對象的類上面使用註解實現
2、創建對象的四個註解
註解註入屬性 @Autowired自動裝配
1、創建Service類,創建Dao類,在service得到dao對象
2、@Resource(name="userDao"):name屬性值 寫 註解創建dao對象value
配置文件和註解混合使用
1、創建對象操作使用配置文件方式實現
2、註入屬性的操作使用註解方式實現
AOP
aop:面向切面編程,擴展功能不修改源代碼實現
aop采取橫向抽取機制,取代了傳統縱向繼承體系重復性
AOP底層原理
動態代理實現
AOP操作術語
Joinpoint(連接點):
在類裏面可以被增強的方法法,這些方法稱為連接點
Pointcut(切入點)
在類裏面可以有很多的方法被增強,實際增強的方法成為切入點
Advice(通知/增強)
增強的邏輯,稱為增強,比如擴展日誌功能,這個日誌功能成為增強
前置通知:在方法前執行
後置通知:在方法後執行
異常通知:在方法發生異常執行
最終通知:在後置之後執行
環繞通知:
Aspect(切面)
把增強應用到具體方法上面的過程稱為切面
(把增強用到切入點的過程)
spring的aop操作(基於aspectj的xml方式
1、在spring裏面進行aop操作,使用aspectj實現
aspectj不是spring一部分,和spring一起使用進行aop操作
spring2.0以後新增了對AspectJ支持
2、使用aspectj實現aop有兩種方式
基於aspectj的xml配置
基於aspectj的註解方式
AOP操作準備
1、除了導入基本的jar包之外,還需要導入aop相關的jar包
2、創建spring核心配置,導入aop約束
使用表達式配置切入點
1、切入點,實際增強的方法
2、常用的表達式
execution(<訪問修飾符>?<返回類型><方法名>(<參數>)<異常>)
execution(* *.*(..))
log4j介紹
1、通過log4j可以看到程序運行過程中更詳細的信息
經常使用log4j查看日誌
2、使用
導入log4j的jar包
復制log4j。properties的復制文件,復制到src下面
3、設置日誌級別
log4j.rootLogger=info,stdout
info:看到基本信息
debug:看到更詳細信息
spring整合web項目演示
1、演示問題
(1)action調用service,service調用dao
每次訪問action時候,都會加載spring配置文件
2、解決方案
(1)在服務器啟動時,創建對象加載配置文件
(2)底層使用監聽器、ServletContext對象
3、在spring中不需要我們自己寫代碼實現,已經幫助我們封裝
(1)封裝了一個監聽器,只需要配置監聽器就可以了
(2)配置監聽器之前做一些事情:導入spring整合web項目的jar包(spring-web.jar)
(3)指定加載spring配置文件位置
1 <context-param> 2 <param-name>contextConfigLocation</param-name> 3 <param-value>classpath:bean1.xml</param-value> 4 </context-param>
spring框架(二)