1. 程式人生 > >spring mvc 註解基本配置(@resource,@autowired,@Component...)

spring mvc 註解基本配置(@resource,@autowired,@Component...)

--------------------------------------------------------------------------------

Spring2.5的元件自動掃描
在一個稍大的專案中通常會有上百個元件,如果都使用XML的bean定義來配置元件的話
顯然會增加配置檔案的體積,查詢及維護也不方便
而Spring2.5就為我們引入了元件自動掃描機制
它可以在classpath下尋找標註了@Service、@Repository、@Controller、@Component註解的類
並把這些類納入Spring容器中管理,它的作用和在XML中使用bean節點配置元件是一樣的
使用自動掃描機制,則需配置<context:component-scan base-package="com.jadyer"/>啟動自動掃描
其中base-package指定需要掃描的包,它會掃描指定包中的類和子包裡面類
@Service用於標註業務層元件
@Repository用於標註資料訪問元件,即DAO元件
@Controller用於標註控制層元件,如Struts中的Action
@Component泛指元件,當元件不要好歸類時,可以使用這個註解進行標註

1、可以使用諸如@Service("personDao")修改bean名稱,而它預設的是將首字母小寫的類名作為<bean>名稱
2、若要更改<bean>作用域的話,可以使用@Scope("prototype")註解來修改<bean>作用域
3、若想讓<bean>例項化之後去執行初始化方法,可以使用@PostConstruct標註在方法上
4、同樣@PreDestroy註解標註在方法上,可以用來指定<bean>銷燬時執行的方法
這裡的@PostConstruct是EJB3裡面用來初始化bean的註解,它也不是Spring中的註解
並且<context:component-scan base-package=""/>的背後註冊了很多用於解析註解的處理器
其中就包括了<context:annotation-config/>配置項裡面的註解所使用的處理器
所以配置了<context:component-scan base-package="">之後,便無需再配置<context:annotation-config>