1. 程式人生 > >SIA實戰(二):不用XML,使用java類配置Bean

SIA實戰(二):不用XML,使用java類配置Bean

如果你已經厭煩使用XML配置Spring Bean,那麼你可以嘗試使用普通的java類來配置bean,這樣避免了XML中字串導致的錯誤,讓異常從執行期提前到了編譯器

以下是基於java配置bean的詳細過程,文章的最後附上原始碼

1.首先配置元件掃描器,這也是唯一需要配置xml的地方

<context:component-scan base-package="com.yonyou.config"/>

2.使用@Configuration註解編寫配置類

@Configuration
public class JavaConfig {
    @Bean
    public
User user(){ User user = new User("jay","1234"); user.setAddress(this.addr()); return user; } @Bean public Address addr(){ Address addr = new Address(); addr.setProvice("BJ"); addr.setCity("beijing"); return addr; } }

第一步的元件掃描配置可以掃描到@Configuration註解,表示這是一個用於配置Spring的類

從程式碼中可以看到方法上都加了@Bean,表示這個方法返回的是一個Bean,由Spring容器管理,而方法名就是Bean的id

同時為Bean裝配屬性也變得十分簡單,可以用構造器注入,也可以用setter注入,更加符合java的編寫習慣

3.編寫測試程式碼
目前已經向Spring容器註冊了Bean,那麼怎麼取出來呢?

ApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
Address address = (Address) context.getBean("addr"
); System.out.println(address); User user = (User) context.getBean("user"); System.out.println(user);

可以看到這裡使用了AnnotationConfigApplicationContext,傳入的引數是java配置類的位元組碼物件
輸出結果如下:

Address [provice=BJ, city=beijing]
User [username=jay, password=1234, address=Address [provice=BJ, city=beijing]]