javascript
闭关修炼——five——Spring
day1
什么是spring?
1.開源的輕量級框架
2.spring是一站式框架
spring在javaee三層結構中,每一層都提供不同的解決技術
- web層:springMVC
- service層:spring的ioc
- dao層:spring的jdbcTemplate
spring核心主要兩部分是什么?
1.aop:面向切面編程,擴展功能不是修改源代碼實現
2.ioc:控制反轉 -- 把對象的創建不是通過new方式實現,而是交給spring配置創建類對象
涉及(底層操作):1.配置spring的xml文件 2.工廠設計模式,dom4j解析xml文件,反射創建對象
開發的一個思想: 高內聚,低耦合 --- 類內緊密相連,類與類之間盡量不要有太多的關聯
版本:spring 4
Spring Bean實例化(創建對象)的方式:
1.配置文件(常用 --- 類的無參數構造創建)
2.使用靜態工廠創建 --- 創建靜態的方法
3.使用實例工廠創建 --- 創建普通的方法
<bean>標簽屬性:
--id(常用,不能寫特殊字符)與name的區別
--scope屬性:singleton:默認值,單例---只能創建一個對象 prototype:多例
屬性注入: --- 也可以注入對象,復雜的類型數據(數組,list,map,properties)
1.set(常用) 2.有參構造函數 3.P名稱空間注入
IOC與DI:
IOC: 控制反轉,把對象創建交給spring進行配置
DI: 依賴注入,向類里面的屬性中設置值
依賴注入不能單獨存在,需要在ioc基礎之上完成操作
Spring整合web項目原理:
實現思想:把加載配置文件和創建對象過程,在服務器啟動時候完成
1.ServletContext對象
2.監聽器
?
day2
Spring的bean管理(注解) ---- 相比配置方式更簡單些
1 代碼里面特殊標記,使用注解可以完成功能
2 注解寫法 @注解名稱(屬性名稱=屬性值)
3 注解使用在類上面,方法上面 和 屬性上面
注解需另行導包,引入新的約束 --- spring_context... spring-aop...jar
(1)@Component
(2)@Controller
(3)@Service
(4)@Repository
目前這四個注解功能是一樣的,都創建對象
@scope --- singleton or prototype
注解注入屬性: 1.@Autowired -- 無參 2.@Resource -- 可以指定對象
配置文件和注解混合使用:
1.創建對象使用配置文件 2.屬性的操作使用注解
什么是aop?
1 aop:面向切面(方面)編程,擴展功能不修改源代碼實現
2 AOP采取橫向抽取機制,取代了傳統縱向繼承體系重復性代碼
3 aop底層使用動態代理實現
(1)有接口,使用動態代理接口實現類代理對象
(2)沒有接口,使用動態代理創建類的子類代理對象
AOP操作術語:
連接點
切入點 --- 可以被增強的方法
通知/增強 --- 需要增強的那一部分
切面 ---- 把增強用到切入點的過程
引介
目標對象
織入
代理
通知/增強:前置通知,后置,異常,最終,環繞(proceedingJoinPoint)
Spring的aop操作:
1.使用aspectj實現 ---- 導包,約束
(1)aspectj不是spring一部分,和spring一起使用進行aop操作
(2)Spring2.0以后新增了對AspectJ支持
2 使用aspectj實現aop有兩種方式
(1)基于aspectj的xml配置
(2)基于aspectj的注解方式
使用表達式配置切入點: execution(* cn.itcast.aop.Book.*(..))
log4j:通過log4j可以看到程序運行過程中更詳細的信息
1.導包,properties文件,設置級別(info,debug)
Spring整合web項目:
解決方案:
(1)在服務器啟動時候,創建對象加載配置文件
(2)底層使用監聽器、ServletContext對象
加載監聽器: --- web.xml中
1.導包 2.ContextLoaderListener 3.指定加載的spring文件位置
轉載于:https://www.cnblogs.com/tiffany-xin/p/6507654.html
總結
以上是生活随笔為你收集整理的闭关修炼——five——Spring的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 举个栗子!Tableau 技巧(116)
- 下一篇: 当初我要是这么学操作系统就好了(附思维导