spring注解使用了有一段時間了,現做幾個就簡單的記錄,具體是使用方式不用多說網上很多,這里便于記憶簡單整理一下。
1.注入的屬性有2種方式
1.1 @Autowired(按類型type注入)
1.2 @Resource(按名字name注入),
另:如果遇到重復使用@Qualifer標注別名
如果不需要某些屬性注入可以設置Autowired或resources的required屬性為false
2.將bean納入spring容器有4種方式
2.1 @Component(表示是spring容器中的bean,比較中立,沒有其他含義)
2.2 @Controller ,@Service ,@Repository,這3種和@Compnent功能一樣,只是用于三層架構中的控制,業務及持久層。目前只是命名不同。
另:@Scope可以定義bean的作用范圍。
3.對于注解需要配置context:component-scan定義初始化容器掃描的目錄。
<context:component-scan base-package="com.blog">
<context:include-filter type="regex"
expression="com\.blog\.service\..*"/>
<context:exclude-filter type="aspectj"
expression="com.blog.util..*"/>
</context:component-scan>

4.注釋配置和 XML 配置的適用場合
4.1注釋配置不一定在先天上優于 XML 配置。如果 Bean 的依賴關系是固定的,(如 Service 使用了哪幾個 DAO 類),這種配置信息不會在部署時發生調整,那么注釋配置優于 XML 配置;反之如果這種依賴關系會在部署時發生調整,XML 配置顯然又優于注釋配置,因為注釋是對 Java 源代碼的調整,您需要重新改寫源代碼并重新編譯才可以實施調整。
4.2如果 Bean 不是自己編寫的類(如 JdbcTemplate、SessionFactoryBean 等),注釋配置將無法實施,此時 XML 配置是唯一可用的方式。
4.3注釋配置往往是類級別的,而 XML 配置則可以表現得更加靈活。比如相比于 @Transaction 事務注釋,使用 aop/tx 命名空間的事務配置更加靈活和簡單。
4.4所以在實現應用中,我們往往需要同時使用注釋配置和 XML 配置,對于類級別且不會發生變動的配置可以優先考慮注釋配置;而對于那些第三方類以及容易發生調整的配置則應優先考慮使用 XML 配置。
參考資料:
http://kdboy.javaeye.com/blog/419159
http://www.ibm.com/developerworks/cn/java/j-lo-spring25-ioc/