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