java必知必会_Java必知必会--spring解析基础篇
一、了解spring
①spring是為了簡化企業級開發而提出的一個開源框架,它特有的輕量級以及非侵入式特點使得其可以自由組合各個功能模塊。
②spring的ioc是實現非侵入式的主要部分(主要通過配置進行依賴注入,下面在ioc中會詳細提到)。
二、spring之IOC
①IOC的中文釋義是控制反轉或者叫依賴注入。在傳統的java開發模式中,我們需要使用new來創建一個對象然后才能獲取其屬性或使用其方法,而spring通過工廠模式為我們創建了所需要的對象,可以直接進行取用。這就是控制反轉的思想。
②這里可能會有人說,那為什么不用工廠模式而是引入了ioc這個概念呢?前面我們提到了spring的非侵入性,這是通過反射機制來實現的,已動態的方式來提供各種功能是實現其非侵入式的主要原因。如果我們單純使用工廠類那么在功能擴充或需求改動時需要改動其核心代碼。而spring通過反射配合beadFactory來實現對象的創建以及屬性注入,這樣就避免了重復編碼工作。
三、spring之aop
①在面向對象編程(oop)中我們把所有的事物看成是一個對象,在面向切面編程(aop)中,我們關注的不在是對象了,而是切面和切點。
②如果說把所有的業務邏輯代碼看做是一個面,以日志記錄為例(權限控制和事務管理同上),我們就需要在n多個方法中寫入日志輸出的代碼段(重復工作且浪費資源)。
③這里簡單介紹下使用注解來實現aop的簡單示例:在切面類中使用@Aspect來聲明這是一個切面類、@Before來聲明before為一個前置通知(后置、環繞、異常、最終通知同理)、通過excution來聲明一個切點。大致如下:(Before--執行前通知,除非拋出異常才會不執行、After--執行后通知,正常執行后運行除非拋出異常、AfterThrowing--異常后運行、Around--比如方法調用前后運行、AfterRetirning--方法最終返回時運行)
public class Advice(){
@Before(value = "excution(*com.lfg.mytest.aopTest.*(..))")
public void before(){
syso("this is a before advice.")
}
}
四、spring中常用的注解
1、@Autowired:對類的成員變量、方法、構造函數進行自動裝配,比如:
@Autowired private ArticleService articleService;
2、@Repository:用于標注數據訪問組件,通常在dao層的實現類中使用。
3、@Service:用于標注業務層組件,通常在service層的實現類中使用。
4、@Controller:用于標注控制層組件,通常在controller層使用。
5、@RequestMapping:用于標識控制器攔截內容,通常在controller類中使用。 @RequestMapping("addOne")
6、@RequestParam:講請求參數綁定至方法參數。@RequestParam(value="userId",defaultValue="1" Long userId)
7、@RequestBody:接收http請求的json數據并轉換成java對象(springMvc中注解)
8、@ResopnseBody:講controller類方法返回對象轉化為json相應給客戶(springMvc注解)
五、spring Bean的生命周期
七、spring能幫助我們做什么
1、根據配置文件來創建以及組裝對象之間的依賴關系,當這個關系發生改變是我們只需要改動配置文件即可。
2、通過面向切面編程來為我們實現無耦合的日志記錄、權限管理、安全控制、性能統計。
3、非常簡單的幫我們管理數據庫事務,我們只需要獲取連接執行sql就行,其他的都是spqing操作。本身也提供了一套jdbc訪問模板(JdbcTemplate)
4、除了自身提供的一套web框架springmvc還能無縫集成其他的web框架。
總結
以上是生活随笔為你收集整理的java必知必会_Java必知必会--spring解析基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项羽java_Java中高级面试题
- 下一篇: java美元兑换,(Java实现) 美元