spring注釈学習ノート


spring注釈で説明する最も詳しい文章:
http://www.ibm.com/developerworks/cn/java/j-lo-spring25-ioc/
属性名に基づいて自動的に注入するには、バックプロセッサを設定する必要があります。
    <!--   BeanPostProcessor       ,    @Autowired   Bean        -->
    <bean class="org.springframework.beans.factory.annotation.
        AutowiredAnnotationBeanPostProcessor"/>
属性定義に@Autowiredを加えることができます。
ただし、属性は静的とは定義できません。そうでないとエラーが発生します。
デフォルトの自動注入はロード時に初期化されます。最初から初期化したくないなら、@Autowired(required=false)と書いてもいいです。
属性名によって注入されますので、属性名と配置されているbeanの名前が異なる場合は、別の注釈が必要です。@Qualfier、例えば、こう書きます。
    @Autowired
    @Qualfier(「offceOne」)
    prvate Office office;
もう一つの処理方法は@Resource注を使うことです。   
//自動注入beanの名前はoffceOneのBeanです。
    @Resource(name=「offceOne」)
    prvate Office office;
この注釈を有効にするには、このようなバックプロセッサを設定する必要があります。
<bean 
  class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
注解後のプロセッサも簡単に構成してもいいです。
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 
    <context:annotation-config/> 
    ....  bean  
</beans>
彼は実際に4つの注釈後置プロセッサを配置しています。AutowiredAnnotationBeanPostProcessor、Common AnnotationBeabinPostProcessor、Persistence AnnotationBeanPostProcessor、及びRequired AnnotationBeanPostProcessor
beanの配置を完全にキャンセルする方法は、@Componentを使うことです。
しかし、後の構成は、spring容器がすべてのクラスをスキャンしてこの注釈があるかどうかを教えなければなりません。
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <context:component-scan base-package="com.baobaotao"/>
</beans>
この構成は内部にAutowiredAnnotationBeanPostProcessorとCommon AnnotationBeanPostProcessorを暗黙的に登録していますので、構成を削除できます。