`

singleton Bean 创建 prototype Bean

阅读更多

1.applicationContext.xml:

 

<bean id="singleBean" class="util.SingleBean" scope="singleton">
         <lookup-method name="create" bean="prototypeBean"/>
         <property name="dynamicBean" ref="prototypeBean"></property>
 </bean>
 <bean id="prototypeBean" class="util.DynamicBean" scope="prototype" > </bean>

property和lookup-method的区别:

          property: set的bean是一个单态的.虽然在它所创建的bean是个prototype类型的.

          lookup-method: 抽象方法创建的bean是prototype类型的.

这就是一个单态Bean每次都会调用一个新的prototype Bean.

 

2.SingleBean:

 

public abstract class SingleBean {
 private DynamicBean dynamicBean;
 
 public DynamicBean getDynamicBean() {
  return dynamicBean;}

 public void setDynamicBean(DynamicBean dynamicBean) {
  this.dynamicBean = dynamicBean;}

 public void single(){
  dynamicBean.print();}
 public abstract DynamicBean create();     //和lookup-method对应
}

 

3.DynamicBean:

 

public class DynamicBean {
 private Date date=new Date();
 
 public void print(){
  System.out.println(date);
 }
}

-----------------------

 

分享到:
评论

相关推荐

    Spring实战之Bean的作用域singleton和prototype用法分析

    首先,`singleton`是Spring默认的作用域,意味着当Spring容器初始化时,对于每个具有`singleton`作用域的Bean,它只会创建一个唯一的实例。这个实例在整个应用程序生命周期中被共享,无论何时请求该Bean,Spring都会...

    通俗易懂spring之singleton和prototype.docx

    2. **生命周期管理**:对于Singleton Bean,Spring容器会在初始化时创建实例,而对于Prototype Bean,实例化是在实际请求时进行的,这给了开发者更多的灵活性,可以根据需要控制对象的创建。 理解这两种作用域对于...

    简单了解spring bean作用域属性singleton和prototype的区别

    singleton作用域表示一个容器对应一个Bean,所有对Bean的请求都会返回同一个实例,而prototype作用域每次请求Bean实例时都会创建一个新的Bean实例。选择哪种作用域取决于具体的应用场景和需求。

    Spring实例化Bean顺序

    8. **Singleton和Prototype范围**:Singleton Bean在容器启动时只实例化一次,而Prototype Bean每次请求都会创建新的实例。因此,Singleton Bean的实例化顺序与Prototype Bean不同。 9. **FactoryBean**:Spring的`...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    如果将Bean设置为Prototype,那么每次请求都会创建一个新的实例,可能导致重复执行。 7. **XML配置中的&lt;bean&gt;标签误用**:在XML配置中,如果不小心在同一个配置文件中声明了同一个Bean两次,或者在多个配置文件中...

    Spring中的singleton和prototype的实现

    其中,singleton和prototype是两个最基本的bean作用域。本文将详细介绍Spring中的singleton和prototype的实现,通过示例代码和测试结果,帮助读者深入理解这两种bean作用域。 Singleton Singleton模式是Spring...

    Spring Bean的作用域.docx

    例如,在上面的例子中,我们创建了一个名为`SingletonBean`的类,并在配置文件中将其设置为Singleton作用域。在测试中,我们可以使用`ApplicationContext`来获取Bean,每次获取到的都是同一个对象。 2. **Prototype...

    spring bean的生命周期

    - **Prototype Beans的每次请求创建**:scope为prototype的Bean在每次请求时都会创建新的实例。 3. **作用域** - **Singleton**:Spring容器中只会存在一个Bean实例,所有对Bean的请求都会返回同一个实例。 - **...

    详解Spring中Bean的生命周期和作用域及实现方式

    Bean的生命周期是指Bean从创建到销毁的整个过程。这个过程可以分为九个阶段: 1. 实例化前:在这个阶段,Bean的属性已经设置完毕,但是还没有实例化。 2. 实例化:在这个阶段,Bean已经实例化,但是还没有进行任何...

    spring的bean作用域

    - 配置Prototype Bean的例子是:`&lt;bean id="role" class="spring.chapter2.maryGame.Role" scope="prototype"/&gt;` 或 `&lt;bean id="role" class="spring.chapter2.maryGame.Role" singleton="false"/&gt;` 3. **Request...

    详解Spring中bean的作用域

    换言之,当把一个 bean 定义设置为 singleton 作用域时,Spring IoC 容器只会创建该 bean 定义的唯一实例。这个单一实例会被存储到单例缓存(singleton cache)中,并且所有针对该 bean 的后续请求和引用都将返回被...

    Spring Bean 加载顺序 .

    默认情况下,Bean是单例(Singleton),但也可以配置为原型(Prototype)或其他作用域。 4. **Bean的依赖解析**: Spring会分析Bean之间的依赖关系,通过@Autowired、@Qualifier等方式找到合适的依赖注入。在这个...

    粗略实现spring创建bean

    - 切面自动代理:Spring能够自动为Bean创建代理,以便在方法调用前后执行额外逻辑。 6. Spring Bean 的装配 - 自动装配:通过`@Autowired`注解自动寻找匹配类型的Bean进行装配。 - 配置文件指定:在XML配置文件...

    JSP 中Spring Bean 的作用域详解.docx

    与Singleton相反,Prototype作用域表示每次请求(通过容器的`getBean()`方法)都会创建一个新的Bean实例。这意味着,如果你需要根据每次请求或业务逻辑的需要创建多个Bean实例,那么Prototype作用域是最合适的。 3...

    Java中Spring获取bean方法小结

    - **使用`Prototype`作用域的Bean**:如果一个Bean是Prototype作用域,每次请求都会创建一个新的实例,可以通过ApplicationContext获取新实例。 6. **注意点** - 谨慎处理初始化:ApplicationContext在初始化时...

    Spring的bean生命周期

    在Spring中,你可以定义自己的BeanFactory实现,覆盖默认的Bean创建逻辑。虽然在大多数情况下,使用默认的DefaultListableBeanFactory已经足够,但自定义工厂可以提供更大的灵活性,比如在Bean实例化时进行特殊处理...

    最新面试文档.pdf

    对于prototype作用域的Bean,每次请求时都会创建一个新的实例,所以线程间不存在共享问题,因此它们通常不会有线程安全问题。然而,singleton作用域的Bean在Spring容器中只有一个全局共享的实例,这可能导致线程安全...

    spring中bean的范围(xml/annotation)

    当容器启动时,会创建一个Singleton Bean,并在后续请求中重用该实例。 2. **Prototype**:在每次请求时,都会创建一个新的Bean实例。这适用于需要多个实例的情况,例如,状态变化的对象或非线程安全的服务。 3. *...

    Spring框架中Bean的生命周期 Spring中Bean有几种作用域

    1. **单例(Singleton)**:这是默认的作用域,Spring容器只会创建一个Bean实例,所有对Bean的请求都会返回同一个实例。 2. **原型(Prototype)**:在每次请求时,Spring容器都会创建一个新的Bean实例。 3. **...

Global site tag (gtag.js) - Google Analytics