@Configuration//使用注解配置
public class MyConfig {
@Bean(name = "myBean")//配置bean,默认方法名是bean name
@Scope("prototype")//可以通过scope指定非单例
public MyBean createMyBean(){
return new MyBean();
}
public class Car {
}
public class CarFactory {
public Car create(){
return new Car();
}
}
装配CarFactory和Car
@Bean
public CarFactory createCarFactory(){
return new CarFactory();
}
@Bean
public Car createCar(CarFactory carFactory){
return carFactory.create();
}
启动类中获取
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
System.out.println(context.getBean(Car.class));
context.close();
1、通过注解装配Bean
首先需要写一个类,在类上加上注解@Configuration,这个类就被声明为配置类,加上@Bean注解的方法,Spring会在运行时,默认以方法名为bean name,返回值类型为Bean type装配bean。
@Bean注解可以指定bean name,可以通过bean name和类型获取bean实例
还可以指定@Scope,默认单例。
输出结果:
2、通过自定义FactoryBean装配bean
通过实现FactoryBean接口,并指定泛型类,实现几个方法
在配置类中装配
使用
输出结果:
3、通过工厂装配Bean
装配CarFactory和Car
启动类中获取
输出结果: