Spring学习(五)

基于Java的容器注解

@Bean

@Bean用于标识用于配置和初始化一个由SpringIOC容器管理的新对象的方法,类似于XML文件中的

可以在Spring的@Conponent注解的类中用@Bean注解任何一个方法(仅仅是可以)。通常使用的是@Configuration。

@Bean可以自定义bean的name、init-method、destroy-method。

Store.java

1
2
3
public interface Store {
//接口
}

StringStore.java

1
2
3
4
5
6
7
8
9
public class StringStore implements Store {
public void init(){
System.out.println("this is init");
}
public void destory(){
System.out.println("this is destory");
}
}

StoreConfig.java

1
2
3
4
5
6
7
@Configuration
public class StoreConfig {
@Bean(name = "store",initMethod = "init",destroyMethod = "destory")
public Store stringStore(){
return new StringStore();
}
}

使用@ImportResource和@Value注解进行资源文件读取

StoreConfig.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Configuration
@ImportResource("classpath:/com/test/resource/config.xml")
public class StoreConfig {
@Value("${url}")
private String url;
@Value("${username}")
private String username;
@Value("${password}")
private String password;
@Bean
public MyDriverManager myDriverManager(){
return new MyDriverManager(url,username,password);
}
}

@Bean和@Scope

默认@Bean是单例的,可以用@Scope注解设置@Bean的作用域

@Scope除了value属性外,还有proxyMode属性,表示采用哪一种代理方式

基于泛型的自动装配

您的支持将鼓励我继续创作~