`

Spring学习笔记(4)----Bean节点信息配置

阅读更多

默认情况下,Spring的Ioc容器启动时会初始化bean,但是我们可以指定Bean节点的lazy-init="true",来延迟初始化bean。这时候,只有第一次获取bean才会初始化bean。如

Xml代码 复制代码
  1. <bean id="userBean" class="com.szy.spring.implbean.UserBean" lazy-init="true" />  
<bean id="userBean" class="com.szy.spring.implbean.UserBean" lazy-init="true" />

 如果想对所有的bean有应用延迟初始化,可以在跟节点beans设置default-lazy-init="true",如下:

Xml代码 复制代码
  1. <beans default-lazy-init="true"....>  
<beans default-lazy-init="true"....>

 此外,如果我们还想UserBean在实例化是调用初始化方法时,我们可以加入“init-method="init"”属性,其中init为Userbean中的init()方法,与之对应,“destroy-method="destroy"”为销毁属性。

在Spring中我们通过getBean(name)方法获得实例,那么我们每次获取的实例化对象是一个还是多个呢?

我们可以通过“==”进行测试

Java代码 复制代码
  1. ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");      
  2. PersonBean bean1=(PersonBean)ctx.getBean("userBean");   
  3. PersonBean bean2=(PersonBean)ctx.getBean("userBean");   
  4. System.out.println(bean1==bean2);  
		ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");   
		PersonBean bean1=(PersonBean)ctx.getBean("userBean");
		PersonBean bean2=(PersonBean)ctx.getBean("userBean");
		System.out.println(bean1==bean2);

 运行输出结果为:true

这说明了Bean交给sping容器管理之后,Bean默认情况下是单实例的。

如果我们想每次通过getBean(name)方法获得实例是一个新的实例化对象该怎么办呢?

在配置文件中节点bean有一个属性scope,只要我们配置如下即可:

Xml代码 复制代码
  1. <bean id="userBean" class="com.szy.spring.implbean.UserBean" scope="prototype" />  
<bean id="userBean" class="com.szy.spring.implbean.UserBean" scope="prototype" />

 在运行测试代码,输出结果为:false

分享到:
评论

相关推荐

    spring2.5 学习笔记

    ### Spring 2.5 学习笔记知识点梳理 #### 第一课:面向抽象编程 - **定义**:面向抽象编程是一种编程范式,强调通过抽象类或接口来设计程序结构,减少对具体实现的依赖。 - **优势**: - 提高了系统的可维护性与...

    Spring2.5学习笔记

    ### Spring2.5 学习笔记详解 #### 一、Spring 框架简介 Spring 是一个开源的轻量级 Java 开发框架,主要用于简化企业级应用的开发工作。Spring 提供了一系列强大的功能,比如控制反转 (Inversion of Control, IOC)...

    动力节点老杜最新版Spring6框架教程学习资料分享

    本套Spring教程基于Spring6讲解,Spring6是下一个十年的新开端。...通过本套教程的学习,可以让你不仅会使用Spring框架,还会让你精通框架底层原理。无论面试也好,实际开发也好,都会有极大的帮助。

    动力节点王鹤2021版SpringBoot教程-课件笔记

    动力节点王鹤老师的SpringBoot教程通过讲解JavaConfig与XML配置,帮助学习者理解Spring框架的配置方式。Spring Boot在此基础上进一步简化了配置,通过自动配置和起步依赖,使得开发者能够更快地启动和运行项目,从而...

    Java学习笔记-个人整理的

    {12.13.4}update}{176}{subsection.12.13.4} {12.13.5}delete}{177}{subsection.12.13.5} {12.13.6}drop}{177}{subsection.12.13.6} {12.13.7}rename}{177}{subsection.12.13.7} {12.14}SQL脚本}{177}{section....

    swing界面设计之JTree

    #### (十七) Swing 学习笔记 **Swing API 包括18个公共包**:涵盖了Swing中各种组件、布局管理器等。 - **例程1.1 HelloWorldSwing.java**:最简单的Swing程序示例。 - **例程2.2 HelloWorldJFrame.java**:...

    《轻松搞定XML》的范例源代码和学习笔记

    XML还广泛应用于Web服务(如SOAP消息)、配置文件(如Spring框架的bean定义)、数据交换(如RSS和Atom feeds)等领域。通过学习这些源代码,你可以掌握XML的实际应用,并提升处理和生成XML文档的能力。 总而言之,...

    EJB学习笔记.rar

    3. **分布式性**:EJB组件可以在网络中的不同节点上部署和执行,实现了分布式计算。 4. **并发控制**:EJB容器管理多个客户端对组件的并发访问,避免数据冲突。 5. **生命周期管理**:EJB容器负责Bean的创建、初始...

    尚融宝谷粒商城代码 笔记 自己跟着视频敲得 可运行 自己完善了功能 希望给你帮助

    在谷粒商城项目中,Spring被用来管理bean的生命周期,处理依赖注入,以及实现事务管理等功能。 3. **微服务架构**:微服务架构将单一应用程序划分为一组小的服务,每个服务都在自己的进程中运行,服务之间通过轻量...

Global site tag (gtag.js) - Google Analytics