富客戶端程序設計實例 - Bean(DAO+Service層) - Spring 注解對 Bean 的托管

Yangcl 11年前發布 | 9K 次閱讀



        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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!