『Spring 3.X企業応用開発実戦』抜粋【継続更新】

2504 ワード

Writer:BYSocket(土砂レンガパルプ大工)
一、実戦中の経験
注記関連
@Repository
Model単独で使用される操作インタフェースとしてカプセル化されていない状態を示す.
一般的な定義注記SpringでDao Beanを定義します.プロジェクトでよく使用されるデータベース・アクセス・レイヤで使用できるDAO(Data Access Object)です.ただしDDD(レルム駆動設計)との違いに注意する.
@Service
サービスクラスとして、特殊な@Componentを表します.
@Controller
注記1つはControllerレイヤのクラスです.つまりイメージのアクション層は、アクションの方が生活ポイントに近いと思います.私は生活が好きだからです.@Serviceと同様に特殊な@Componentです.
@Autowired
構造関数、フィールド、setterメソッド、または構成メソッドを注釈し、Spring依存注入によって自動的に埋め込まれます.
一般的な定義を見たことがありますか.ActionレイヤにサービスレイヤBeanを自動的に注入するには、フィールドでもセットでも方法でもいいです.つまり、フィールドはセグメントコードを節約することができます.
その構成方法は、Java Configメソッドで、例えばホスト名、ポート番号などを取得します.
@RequestMapping
Webリクエストのマッピングに使用されるクラスまたはメソッドです.サーブレットとWebコンポーネントの間の中庸の道であろう.
二、配置
<context:component-scan base-package=”packagename.xxx”/>

base-packageの下のパッケージをスキャンし、Spring注記(@Service、@Autowired、@Repository)と表記されたクラスを自動的にBeanに変換し、Beanの注入を完了します.たとえばDAOレイヤ、Serviceレイヤの依存注入です.
トランザクション構成およびAOP構成は、トランザクションの強化を提供します.
<!-- ①       :         ,   dataSource Bean -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
       <property name="dataSource" ref="dataSource"/>
</bean>

<!-- ②  AOP        , Service    Bean          -->
<aop:config proxy-target-class="true">
       <!-- ③AOP    -->
       <aop:pointcut id="serviceMethod" expression="execution(*projectpackage.service..*(..))"/>
       <!-- ④Spring Advisor      -->
       <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod"/>
</aop:config>
<!-- ⑤AOP   -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
       <tx:attributes>
              <tx:method name="*"/>
       </tx:attributes>
</tx:advice>

①にtransactionトランザクションマネージャが配置され、dataSourceが参照されています.データベーストランザクションをSpring(コード)レベルで宣言管理する
②事務マネージャーを配置しましたが、どこで使いましたか.もちろん、サービス層など、使う場所です.AOP切麺を利用して事務を提供し、事務を鶏血式に使用させた.中には③カットポイント(どこでトランザクションを行うか)および④Spring Advisor(ブロッカーのようなもの)でカットポイントをブロックし、⑤通知を引用してそのサービスメソッドに正則的にマッチさせるAOPが配置されており、細粒度がメソッドレベルに達していることがわかる.
三、更新を続ける...
私のブログとGitHub-ブログをクリックしてRSSの購読を提供してください!
———- http://www.bysocket.com/ ————- https://github.com/JeffLi1993 ———-
微博:BYSocket豆弁:BYSocket FaceBook:BYSocket Twitter:BYSocket