2016/1/16 17:04:31
1.基於java的容器註解
- @Bean標識一個用於配置和初始化一個由SpringIOC容器管理的新對象的方法,類似於XML配置文件的<bean></bean>
- 可以在Spring的@Component註解的類中使用@Bean註解任何方法(僅僅是可以)
- 上一點中,通常是使用的是@Configuration
2.bean的配置項可以通過註釋的方式
@Bean(initMethod = "init")
@Bean(destroyMethod = "destroy")
3.例子
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:annotation-config></context:annotation-config>
<context:component-scan base-package="com.zjx"></context:component-scan>
</beans>
類及接口
package com.zjx.bean;
public interface Store {
}
package com.zjx.bean;
public class StringStore implements Store {
public void init(){
System.out.println("this is init...");
}
public void destroy(){
System.out.println("this is destroy");
}
}
package com.zjx.bean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class StoreConfig {
@Bean(initMethod="init",destroyMethod="destroy")
public Store stringStore(){
return new StringStore();
}
}
測試:
package com.zjx.interfaces.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import com.zjx.bean.Store;
@RunWith(BlockJUnit4ClassRunner.class)
public class TestBean extends UnitTestBase {
public TestBean() {
super("spring-autowired.xml");
}
@Test
public void test(){
Store store = super.getBean("stringStore");
System.out.println(store.getClass().getName());
}
}