Notes構成
春は自動的に注釈がしたパッケージを見つける必要性を宣言するためのイニシアチブを取る必要があり、ノートを見つけることができません
:設定ファイル変更
でschemaLocation:ワークスペースを追加するには、次のxmlns:コンテキストとXSIの
パッケージで宣言ノート:
<context:component-scan base-package="包名,包名"/>
共通アノテーション
オブジェクトは、コンテナ管理の上に渡され
①@成分(「」) <豆/>、コンテナ内のオブジェクト、最初のデフォルトの小文字のための括弧内のIDに相当する
サービス@②と@Component同じ機能は、一般ServiceImplために使用される
Respoitory @③と機能@Component同じ、一般にデータアクセス層に用いられる
コントローラ@④一般的に使用され、コントローラとして@Component同じ機能、コンテナを管理するSpringMVC
実施形態では、.getBeanDefinitionNames()検出の方法によって:
私たち自身のコンテナの管理をオブジェクトに注釈を付けるだけで、見つけることができ、いくつかの従属オブジェクトがスキャン注釈
注入性値
ご注意Javaで⑤名前でない場合は、byTypeのに合わせて、リソース、BYNAMEに従い、デフォルト、@
プロパティを必要としない財産上の使用、およびセット方法、効率向上のために探して、同じ属性名と名前を参照するために推奨される
のAutowired春@を⑥ノート、byTypeのデフォルト、およびなしプロパティセット方法に従って
値(@⑦)プロパティファイルの内容を取得します
例:
ノートはAOPベースのアスペクトを実現します
前提:
<!-- 设置注解完成AOP -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
①接線点については、<ポイントカット/>に対応する、方法@Pointcut(「実行(*パッケージ名。クラス名。メソッド名を())」)を加える前に
②事前通知、及び@Aspect基づく通知方法は、前に添加@コンポーネント、@Beforeの添加、特に前者の方法(「カットオフパッケージ名の点をクラス名。メソッド名()」)
③他のフロントとリア(@After)、異常(@AfterThrowing)、サラウンド(@Around)
場合そして、のconfigureフロントとリアサラウンド、プリ/ポストの前に、一般的に囲みます
シモンズ:それは春AOPは、デフォルトのJDKのダイナミックプロキシクラスによって使用され、それがインタフェースから継承されている場合、我々は、通知方法を設定し、動的プロキシ方法CGLIBを変更する必要があることに留意する必要があります:
設定ファイルで変更する必要があります。
<aop:aspectj-autoproxy proxy-target-class="true"/>
<!--true:cglib动态代理,false:jdk动态代理(默认值,此时需要接口来获取代理对象)-->
例: