HelloSpring
- 對IOC方式的理解(就是抽離出一個創(chuàng)建對象的容器),以及property依賴set注入和無參構(gòu)造注入,有參構(gòu)造注入包括index、type和name三種方式,前兩種會造成混淆,建議使用變量名注入,可以結(jié)合使用;
- 對于復(fù)雜屬性的注入:
- 單個對象在旁邊配置好bean后,ref其id即可;
- 數(shù)組應(yīng)用property雙閉合標(biāo)簽,子標(biāo)簽array+多個value即可解決;
- List類比Array,Map應(yīng)用Entry,Set沒什么可說的…
- String屬性value=""視為空字符串,嵌套視為null注入;
- 針對Properties對象存在Props標(biāo)簽,存在key屬性包夾value值,
eg:value
- 自動裝配:配置bean屬性下的autowire為byName(通過id和set方法的名稱進(jìn)行反射裝配)或者byType(確保類型唯一),需要注意的是兩者只針對bean內(nèi)的單個對象屬性裝配有效,基本數(shù)據(jù)類型會為默認(rèn)值;
- 注解自動裝配@Autowired,可以配置在set方法或者對象屬性上,需要注意的是其默認(rèn)是根據(jù)bean配置智能選擇是byType還是byName,出現(xiàn)混淆情況時可追加@Qualifier(value=“qualifier”)進(jìn)行名稱區(qū)分,此時為具體地byName裝配;
- 此外,JDK11之前,javax還默認(rèn)提供@Resource注解實(shí)現(xiàn)與@Autowired類似的裝配方式(只不過其內(nèi)部裝配方式的選是與@Autowired相反),同樣可在value參數(shù)下指定具體地bean的id進(jìn)行區(qū)分;
- 以上裝配方式多適用于對象屬性;
注解開發(fā)
- @Component:標(biāo)注在類簽名之上,等價于單獨(dú)bean的配置;
- @Controller、@Repository和@Service等價于@Component,只不過在MVC架構(gòu)下可以細(xì)化bean的分類,明確層級間的分工;
- @Value(“value”)加注在set方法或者字段屬性上(可以沒有set方法),等價于property的注入;
- @Scope(“prototype”)標(biāo)注bean的作用域;
- 注意以上注解仍然需要依存于ApplicationContext.xml(提供注解支持的語句),所以還是得寫,盡管其并沒有內(nèi)容。
- @Configuration+@Bean和@Configurationn+@ComponentScan是額外兩種注解配置bean的方法,兩者都是對xml的替換,前者@Configuration標(biāo)注配置類,內(nèi)部用@Bean標(biāo)注方法并實(shí)現(xiàn)返回實(shí)例,即可實(shí)現(xiàn)對bean的裝配,默認(rèn)方法名對應(yīng)id;后者則是在指定bean對象上標(biāo)注@Component然后再配置類上標(biāo)注@Configuration+@ComponentScan(“指定掃描的包名”)即可實(shí)現(xiàn)對指定區(qū)域bean的裝配;
動態(tài)代理
繼承方式(cglib)
接口方式(JDK,AOP默認(rèn)執(zhí)行的方式)
- 只需定義好執(zhí)行InvocationHandler接口的調(diào)用處理程序類,然后在其中實(shí)現(xiàn)增強(qiáng)的方法和功能定義,JDK在運(yùn)行時自動生成代理對象,需要注意的是動態(tài)代理中沒有代理類的概念,這也正是“動態(tài)”的一種體現(xiàn);但是仍然存在規(guī)范接口和實(shí)現(xiàn)接口的被代理類。
- 其中InvocationHandler的invoke方法是代理入口,即代理類的增強(qiáng)方法被調(diào)用時觸發(fā)的程序,注意是在參數(shù)method調(diào)用invoke方法時為增強(qiáng)方法被調(diào)用的時機(jī),提供三個參數(shù):
- ProxyInstance=代理的類實(shí)例;
- Method=代理類的方法;
- Args=方法參數(shù);
- 在需要代理的地方調(diào)用Proxy的代理生成靜態(tài)方法,Proxy.newInstance()實(shí)例化代理接口,也需要三個參數(shù):
- 接口類(被代理類)加載器,進(jìn)行聲明定義代理類;
- 規(guī)范接口數(shù)組;
- InvocationHandler實(shí)例;
- 之后強(qiáng)轉(zhuǎn)返回結(jié)果就是代理類的實(shí)例,可以通過調(diào)用增強(qiáng)方法實(shí)現(xiàn)訪問代理類進(jìn)而訪問被代理類。
- 需要注意的是一般在InvocationHandler會存在與被代理類(實(shí)現(xiàn)規(guī)范接口的類)的關(guān)聯(lián)關(guān)系,以此來訪問其中的待增強(qiáng)方法。
AOP
對功能進(jìn)行橫向拆分,區(qū)別維護(hù),降低耦合度。
使用前需要導(dǎo)入aspectsJ依賴。
Spring注解的作用就體現(xiàn)在以注解為切入點(diǎn)的時候
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:
做網(wǎng)站、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的
盧龍網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
- 執(zhí)行接口:MethodBeforeAdvice、AfterReturningAdvice等, 通過執(zhí)行接口完成:編寫多個功能類分別實(shí)現(xiàn)對應(yīng)接口重寫方法,之后在xml中在aopconfig中配置aop:pointcut,主要是expression的配置:
- 自定義切面類,編寫要切入的方法,之后在xml里進(jìn)行AOP配置:
- 自定義切面類應(yīng)用注解:
整合Mybatis
org.mybatismybatis3.5.2mysqlmysql-connector-java5.1.47junitjunit4.12org.springframeworkspring-webmvc5.1.10.RELEASEorg.springframeworkspring-jdbc5.1.10.RELEASEorg.aspectjaspectjweaver1.9.4org.mybatismybatis-spring2.0.2
- 其中Mybatis-Config.xml中以及被省略掉了大多數(shù)內(nèi)容,同時在Mapper中寫改寫的SQL,在實(shí)現(xiàn)類中獲取會話獲取mapper執(zhí)行方法或者增加邏輯,調(diào)用方只管調(diào)用實(shí)現(xiàn)類的服務(wù)即可。
- 也可以在外部配置db.properties文件然后通過標(biāo)簽數(shù)顯導(dǎo)入以及增加MapperScannerConfigurer的bean來自動配置sqlSession,Spring配置文件(版本2):
- 其中的MapperScannerConfiguer作用是,掃描basePackage包下的接口,結(jié)合注入的sqlSessionFactory為每個mapper接口生成bean(調(diào)用getMapper)等待被注入到service中。
Spring事務(wù)管理
- 首先需要注冊配置事- 務(wù)管理器的bean;
- 編程式事務(wù):利用try{}catch{}塊在異常時回滾事務(wù);
- 聲明式事務(wù):利用AOP增強(qiáng)數(shù)據(jù)庫寫入方法為事務(wù)提交方式:(需要引入約束)
- 其中事務(wù)的傳播特性是指對于在多個被Spring增強(qiáng)的事務(wù)方法間存在的調(diào)用,也就是嵌套調(diào)用事務(wù)方法,被調(diào)用的方法會根據(jù)傳播配置決定是否新建事務(wù)等,一般CUD用默認(rèn)即可,R用Supports。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:SpringFrameWork學(xué)習(xí)筆記-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article26/cshsjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、用戶體驗、移動網(wǎng)站建設(shè)、建站公司、網(wǎng)站排名、企業(yè)建站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)