1、创建bean的三种方式
使用bean注解直接注入
实现FactoryBean
在其他类中间接创建
第一种方式
创建配置类@Configration
创建执行类
创建要注入的类
1 @Configuration 2 public class MyConfig { 3 4 @Bean 5 @Scope("prototype") 6 public MyBean createBean(){ 7 return new MyBean(); 8 }
public class AppDemo { public static void main(String[] args){ AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(MyConfig.class); System.out.println(context.getBean("Mybean")); context.close(); } }
public class MyBean { }
@Scope bean默认为单例的模式,使用Scop而注解可以更换为双例
扫描二维码关注公众号,回复:
6836060 查看本文章
context.getBean() 可以通过类,和方法名进行获取。方法名需要在Bean中加入方法名称@Bean("createBean")
AnnotationConfigApplicationContext 源码中 有多种注入类的方式,截取其中的2点
第二种方式
public class RunnableFactoryBean implements FactoryBean<jeep> { @Override public jeep getObject() throws Exception { return new jeep(); } @Override public Class<?> getObjectType() { return jeep.class; } @Override public boolean isSingleton() { return true; } }
@Bean public RunnableFactoryBean createRunnableFactoryBean(){ return new RunnableFactoryBean(); }
第三种方式
public class CarFactory { public cat createCat(){ return new cat(); } }
需要创建一个cat类
在CarFactory中创建cat
在配置文件中configration中注入bean
main方法输出类