Springメモ

7077 ワード

Springコメント
@Configrationは一つの種類をIoC容器として、その一つの方法の頭に@Beanを登録したら、このSpring容器の中のBeanとします.
@Scopeコメントスコープ
@Lazy(true)は遅延初期化を表します.
@Serviceは業務層コンポーネント、
@Controllerは、strutsのactionなどの制御層コンポーネントを表示するために使用されます.
@Repositoryはデータアクセスコンポーネント、つまりDAOコンポーネントを表示するために使用します.
Componentはコンポーネントを指しています.コンポーネントが分類しにくい時は、この注釈を使って表示してもいいです.
@Scopeはscopeスコープを指定するために使用されます(クラスで使用されます).
@PostConstructは初期化方法を指定するために使用されます(方法的に)
@Predestoryは廃棄方法を指定するために使用されます.
@Dependown:Bean初期化と廃棄時の手順を定義します.
@Primary:自動組立時に複数のBean候補が出現した場合、@Primaryと注釈されたBeanが優先者となります.そうでないと異常が発生します.
@Autowiredはデフォルトでタイプ別に組み立てられています.名前通りに組み立てるなら、@Qualfierの注釈と合わせて使用できます.以下の通りです.@Autowired@Qualfier(「person DaoBean」)は複数の実例があります.
@Resourceはデフォルトでは名前通りに組み立てられています.名前にマッチするbeanが見つからないと、タイプ別に組み立てることができます.
@PostConstruct初期化コメント
@Predestroy破壊注解デフォルトの一例で起動したらロードします.
@Async非同期方法の呼び出し
AsppectJのexecution表現
構文:
execution(?)
1)方法による署名による接点の定義
execution(public*(.)l
すべてのターゲットクラスにマッチするpublic方法ですが、SmartSellerとprotected void showGoods()方法は一致しません.第一の代表は戻りのタイプで、第二の代表方法名であり、任意のエントリを表す方法である.
execution(**To(.)l
ターゲットクラスにマッチするすべてのToをサフィックスとする方法.これはNaive WaiterとNaghttyWaiterのgreet To()とserveTo()の方法をマッチングします.一つ目の*は戻りタイプを表し、*Toは任意のToを接尾語とする方法を表す.
2)種類による接点の定義
execution(*comp.baobaotao.Waiter.*)l
Waiterインターフェースに整合するすべての方法は、NaiveWaiterとNaughttyWaiterのクラスのgreet To()とserveTo()の方法に一致しています.最初の代表は任意のタイプに戻ります.comp.baobaotao.Waiter.Waiterインターフェースのすべての方法を表します.
execution(*comp.baobaotao.Waiter+.*)l
Waiterインターフェースとそのすべての実装クラスにマッチする方法は、NaiveWaiterとNaughttyWaiter類のgreet To()とserveTo()の2つのWaiterインターフェースによって定義される方法だけでなく、NaiveWaiter()とNaughttyWaiter()の2つのインターフェースで定義されていない方法にもマッチします.
3)クラッチによるカットポイントの定義
クラス名のパターン列では,."はバッグのすべての種類を表しますが,"."はバッグ,子孫が包むすべての種類を表します.
execution(*comp.baobaotao.*)l
comp.baobaotaoにマッチしてすべての種類のすべての方法を包みます.
execution(*comp.baobaotao.*)l
comp.baobaotaoバッグ、子孫にすべての種類の方法を合わせて、comp.baobaotao.dao、comp.baobaotao.servier及びcomp.baobaobaota.dao.userバッグのすべての種類の方法が一致します.「.」がクラス名の中に現れた場合、後ろに「*」が付いていなければなりません.カバン、子孫に包まれたすべての種類を表します.
execution(*com…*Dao.find(.)l
パケット名プレフィックスがcomである場合には、パケット名をDaoとして拡張する方法があり、方法名はfindをプレフィックスとしなければならない.comp.baobaotao.UserDao()やcomp.baobaota.dao.ForumDao()などの方法はすべて接点に合致します.
4)方法によって、接点を定義する
接点式では、メソッドの入力部分が複雑で、「」と「.」のワイルドカードが使用できます.「」は任意の種類のパラメータを表し、「.」は任意の種類のパラメータを表し、パラメータの個数は制限されません.
execution(*joke(String,int))l
joke(String,int)メソッドにマッチし、joke()メソッドの最初のエントリはStringであり、2番目のエントリはintである.これはNaughttyWaiter葂jece(String,int)方法にマッチしています.もしメソッドのエントリタイプがjava.langパッケージのクラスであれば、直接クラス名を使用することができます.そうでなければ、joke(java.util.List、int)のような全限定クラス名を使用しなければなりません.
execution(*joke(String、*)l)
マッチング対象クラスのjoke()方法は、最初のエントリがStringであり、第二のエントリがjoke(String s 1,String s 2)とjoke(String s 1,double d 2)のような任意のタイプであっても良いが、joke(String s 1,double d 2,String s 3)は一致しない.
execution(*joke(String.))l
ターゲットクラスにおけるjoke()方法に適合して、この方法の最初のエントリはStringであり、後には、joke(String s 1)、joke(String s 1、String s 2)、joke(String s 1、double d 2、String s 3)のような任意のエントリがあり得る.
execution(*ject+))l
ターゲットクラスにおけるjoke()方法に適合し、方法は、Objectタイプまたはそのクラスのサブクラスである.joke(Stering s 1)とjoke(Client c)にマッチします.私たちが定義した接点がexecution(Object)である場合は、joke(Object Object)にのみマッチし、joke(String c c)またはjoke(Client c)には一致しない.
Spring事務
事務管理、エージェント属性:
propagation:事務伝播行為
isolation:事務の分離レベル
read-only:読み取り専用
rollback-for:どれらの異常なロールバックが発生しますか?
no-rollback-for:どのような異常が発生しましたか?
timeout:有効期限切れ情報
Spring事務配置の3つの方法:注釈に基づいて:
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
AsppectJ xml構成に基づく:
<tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="save" propagation="REQUIRED"/>//    
        tx:attributes>
    tx:advice>

    <aop:config>
        <aop:pointcut id="cut" expression="execution(* jdbc.TestJdbcService.*(..))">aop:pointcut>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="cut">aop:advisor>
    aop:config>
Transaction ProxyFactoryBeanに基づく:
id="testJdbcServiceProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="target" ref="testJdbcService">property>
        <property name="transactionManager" ref="transationManager">property>
        <property name="transactionAttributes">
            
                <prop key="save">PROPAGATION_REQUIREDprop>
            
        property>