這篇文章給大家分享的是有關(guān)Spring3.x中有幾種Bean配置方式的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、網(wǎng)站制作、離石網(wǎng)絡(luò)推廣、成都微信小程序、離石網(wǎng)絡(luò)營銷、離石企業(yè)策劃、離石品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供離石建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
下面分別介紹下這三種配置方式;首先定義一個用于舉例的JavaBean。
package com.chinalife.dao public class LoginUserDao { …… // 用于設(shè)置初始化方法 public void myInit() { } // 用于設(shè)置銷毀方法 public void myDestroy() { } }
一、 基于XML的配置
……
在XML配置中,通過
當Bean的實現(xiàn)類來源于第三方類庫,比如DataSource、HibernateTemplate等,無法在類中標注注解信息,只能通過XML進行配置;而且命名空間的配置,比如aop、context等,也只能采用基于XML的配置。
二、基于注解的配置
@Scope(“prototype”) @Lazy(true) @Component(“l(fā)oginUserDao”) public class LoginUserDao { …… // 用于設(shè)置初始化方法 @PostConstruct public void myInit() { } // 用于設(shè)置銷毀方法 @PreDestroy public void myDestroy() { } }
在Bean實現(xiàn)類中通過一些Annotation來標注Bean類:
·@Component:標注一個普通的SpringBean類(可以指定Bean名稱,未指定時默認為小寫字母開頭的類名)
·@Controller:標注一個控制器類
·@Service:標注一個業(yè)務(wù)邏輯類
·@Repository:標注一個DAO類
通過在成員變量或者方法入?yún)⑻帢俗Autowired按類型匹配注入,也可以使用@Qualifier按名稱配置注入。通過在方法上標注@PostConstrut和PreDestroy注解指定的初始化方法和銷毀方法(可以定義任意多個)。通過@Scope(“prototype”)指定Bean的作用范圍。通過在類定義處標注@Lazy(true)指定Bean的延遲加載。
當Bean的實現(xiàn)類是當前項目開發(fā)的,可以直接在Java類中使用基于注解的配置,配置比較簡單。
三、基于Java類配置
@Configuration public class Conf { @Scope(“prototype”) @Bean(“l(fā)oginUserDao”) public LoginUserDao loginUserDao() { return new LoginUserDao(); } }
在標注了@Configuration的java類中,通過在類方法標注@Bean定義一個Bean。方法必須提供Bean的實例化邏輯。通過@Bean的name屬性可以定義Bean的名稱,未指定時默認名稱為方法名。在方法處通過@Autowired使方法入?yún)⒔壎˙ean,然后在方法中通過代碼進行注入;也可以調(diào)用配置類的@Bean方法進行注入。通過@Bean的initMethod或destroyMethod指定一個初始化或者銷毀方法。通過Bean方法定義處標注@Scope指定Bean的作用范圍。通過在Bean方法定義處標注@Lazy指定Bean的延遲初始化。
當實例化Bean的邏輯比較復雜時,則比較適合基于Java類配置的方式。
感謝各位的閱讀!關(guān)于“Spring3.x中有幾種Bean配置方式”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!