@Component 相當于實例化類的對象,其他三個注解可以理解為@Component的子注解或細化。
在annotaion配置注解中用@Component來表示一個通用注釋用于說明一個類是一個spring容器管理的類,此類將有spring掃描并加入容器參與ioc。即就是該類已經拉入到spring的管理中了。
通過在classpath中通過自動掃描方式把組建納入spring容器管理。
要使用自動掃描機制我們需要打開一下配置信息:
Bean.xml代碼
注:前面講要使用注解需要配置:<context:annotation-config />但如果使用了@Component就不需要加它了,因為:<context:component-scan base-package="com.zchen">里面默認了<context:annotation-config />。
而@Controller, @Service, @Repository是@Component的細化,這三個注解比@Component帶有更多的語義,它們分別對應了控制層、服務層、持久層的類。
@Component泛指組件,當組件不好歸類的時候我們可以使用這個注解進行標注,(現在可以都用此注解,可以只使用單一組件)
Java代碼@Repository標簽是用來給持久層的類定義一個名字,讓Spring根據這個名字關聯到這個類。
例如:
@Repository(value="userDao")-----也可以直接寫@Repository("userDao"),如果沒有命名,default name 是class name: UserDaoImplpublic class UserDaoImpl implements UserDao{ ........................................}
保證這個類在bean.xml中<context:component-scan base-pakage="com.czhen">com.czhen pakage dir下。
注解Repository后可以直接使用@autowire 直接注入 managerImpl中,如:
@Autowire
private UserDaoImpl userDaoImpl;
一般來說@Controller(控制層) 是action入口,調用@Service(業務層) ,Service再調用@Repository (持久層)完成數據持久化。
新聞熱點
疑難解答