富客戶端程序設計實例 - Bean(DAO+Service層) - Spring 注解對 Bean 的托管
Spring的注解形式:@Repository、@Service、@Controller,它們分別對應存儲層Bean,業務層Bean,和展示層Bean。
事實上在Spring中只有Bean的概念,只對Bean進行托管,但是為了開發人員直觀的去發現這個bean到底屬于哪個層面(比如他是屬于服務層還是DAO層),你總不能都用@Service去注釋吧,這樣不容易分清是那個層面,顯得混亂,所以才會用@Repository、@Service、@Controller。但其實他們本質上都還是被托管的Bean。
Spring是一個非常優秀的框架,在依賴IOC編程方面,手工方式提供了兩種方式注入Bean,XML配置和使用注解+自動掃描package的方式 。
Spring框架掃描時,通過@Repository、@Service、@Controller這些注釋找到了需要被托管的Bean,但Bean還依賴其他的類實例,比如:
protected SessionFactory sessionFactory; private BaseDao employeeDao;等等。他們需要被初始化成對象( BaseDao employeeDao = new EmployeeDaoImpl() ;樣式 ) 你
才能調用里面的方法;而在Spring的框架中,類實例的初始化是由Spring來完成的。那么你需要告訴Spring,哪個類實例需要被初始化,然后調用這個類實例中的方法。這就用到了@Resource。
方式1注解在字段上:
@Resource(name="baseDao")
private BaseDao baseDao;
方式2注解在***setter()方法上
private BaseDao employeeDao;
public BaseDao getBaseDao()
{
return employeeDao;
}
@Resource
public void setBaseDao(BaseDao employeeDao)
{
this.employeeDao = employeeDao;
}
這里反復強調“類實例”,而不是類
</div>
本文由用戶 Yangcl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!