spring通过注解的方式使用多例模式
spring通过注解的方式使用多例模式说明:spring容器实例化对象时默认使用单例模式,初学时也知道实现多例模式可以在容器文件中给bean添加prototype,再通过applicationContext获取不同的实例。那么,如何只使用注解而不去配置文件里的内容来获得不同的实例呢?方法:通过注解和工厂接口BeanFactoryAware的方式获取多个实例1.首先,model(pojo)类上需要使
·
spring通过注解的方式使用多例模式
说明:spring容器实例化对象时默认使用单例模式,初学时也知道实现多例模式可以在容器文件中给bean添加prototype,再通过applicationContext获取不同的实例。
那么,如何只使用注解而不去配置文件里的内容来获得不同的实例呢?
方法:通过注解和工厂接口BeanFactoryAware
的方式获取多个实例
1.首先,model(pojo)类上需要使用@Scope("prototype")
注解
@Scope("prototype")
public class Student
2.创建工厂类实现BeanFactoryAware
接口,在内部声明BeanFactory接口并重写setBeanFactory
方法。添加一个getBeanFactory方法
private static BeanFactory beanFactory;
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
public BeanFactory getBeanFactory(){
return beanFactory;
}
3.在控制类中声明工厂类添加注解,
@Resource
StudentFactory studentFactory;
4.通过bean的name获取实例
student = (Student) studentFactory.getBeanFactory().getBean("student");
通过以上方法多次getBean得到的实例是不一样的。
以上是通过工厂类来从容器中获取不同实例的方法,我想知道有没有更加简便的方法,诸如无需创建工厂类,仅靠注解方式实现多例模式。望过路大佬指点指点,让晚辈学习学习。
更多推荐
已为社区贡献1条内容
所有评论(0)