@Configuration
public class AppConfig{
@Value("猴子")
private String personName;
@Bean(name="chinese")
public Person person(){
Chinese p = new Chinese();
p.setAxe(stoneAxe());
p.setName(personName);
return p;
}
@Bean(name="stoneAxe")
public Axe stoneAxe(){
return new StoneAxe();
}
@Bean(name="steelAxe")
public Axe steelAxe(){
return new SteelAxe();
}
}
- @Configuration:用于修饰一个Java配置类。
- @Bean:用于修饰一个方法,将该方法的返回值定义成容器中的一个Bean。
- @Value:用于修饰一个Field,用于为该Field配置一个值,相当于配置一个变量。
一旦使用了Java配置类来管理spring容器中的Bean及其依赖关系,此时需要如下方式来创建spring容器:
ApplicationContext ctx = new AnnotationConfigApplication(AppConfig.class);
使用Java配置类时,还有如下常用的Annotation:
- @Import:修饰一个Java配置类,用于向当前Java配置类中导入其他Java配置类。
- @Scope:用于修饰一个方法,指定该方法对应的Bean的生命域。
- @Lazy:用于修饰一个方法,指定该方法对应的Bean是否需要延迟初始化。
- @DependsOn:用于修饰一个方法,指定在初始化该方法对应的Bean之前初始化指定的Bean。
- @ImportResource(“classpath://beans.xml”):修饰Java配置类,用于导入指定的XML配置文件。