注解相關
@repository
标示一種作為單獨在model中使用的操作接口,沒有封裝的狀态。
很常見的定義注解通過spring定義dao bean。dao(data access object),項目中經常應用的資料庫通路層可以使用該注釋。但要注意和ddd(領域驅動設計)的差別。
@service
表示一種作為服務類,也是一種特殊的@component。
@controller
标注一種是controller層的類。也就是形象的action層,我覺得action更貼近生活點。因為我比較愛生活。和@service一樣一種特殊的@component。
@autowired
标注構造函數,字段,setter方法或配置方法,讓其通過spring依賴注入自動填充。
是否看過很常見的如下定義:在action層自動注入service層bean,可以字段也可以set方法,也就是說字段可以省了段代碼(何樂而不為)。
那個配置方法,就是java config方法,比如說擷取些主機名,端口号之類。
@requestmapping
作用于類或者方法,用于映射web請求。也就是一種在servlet與web元件之間的一種中庸之道吧。
<context:component-scan base-package=”packagename.xxx”/>
掃描base-package下的包,将标注spring注解(@service、@autowired、@repository)的類自動轉化為bean,完成bean的注入。比如dao層,service層的依賴注入。
事務配置及aop配置提供事務增強:
①處配置了transaction事務管理器,引用了datasource 。其内在應該是把資料庫事務用spring(代碼)級别聲明式管理
②配了事務管理器,哪裡用到了?當然要用的地方,比如service層。利用aop切面提供事務,使得事務得到打了雞血式的使用。裡面配置了③切入點(哪裡用事務)及④利用spring advisor(類似攔截器)攔截至切入點,并引用⑤通知來正則比對其service方法來aop,可以看出細粒度達到方法級别。
三、持續更新。。。