浅谈spring容器中bean的初始化

 更新时间:2016年06月10日 16:42:20   投稿:jingxian  
下面小编就为大家带来一篇浅谈spring容器中bean的初始化。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

当我们在spring容器中添加一个bean时,如果没有指明它的scope属性,则默认是singleton,也就是单例的。

例如先声明一个bean:

public class People { 
 private String name; 
 private String sex; 
 public String getName() { 
  return name; 
 } 
 public void setName(String name) { 
  this.name = name; 
 } 
 public String getSex() { 
  return sex; 
 } 
 public void setSex(String sex) { 
  this.sex = sex; 
 } 
  
} 

在applicationContext.xml文件中配置

<?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
 
 <bean id="people" class="People" ></bean>

</beans>

然后通过spring容器来获取它:

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
 
public class SpringTest { 
 
 public static void main(String[] args) { 
  ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); 
  People p1=(People) context.getBean("people"); 
  People p2=(People) context.getBean("people"); 
  System.out.println(p1); 
  System.out.println(p2); 
 } 
 
} 

运行之后可以看出p1和p2输入的内容是一样的,说明spring中的bean是单例的。

如果不想要单例的bean,可以将scope的属性改为prototype

<bean id="people" class="People" scope="prototype" ></bean>

这样通过spring容器获取的bean就不是单例的了。

spring容器默认情况下在启动之后就自动为所有bean创建对象,若想要在我们获取bean时才创建的话,可以使用lazy-init属性

该属性有三个值defalut,true,false。默认是default,该值和false一样,都是spring容器启动时就创建bean对象,当指定为true时,

在我们获取bean时才创建对象。

以上这篇浅谈spring容器中bean的初始化就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringMVC使用@PathVariable接收参数过程解析

    SpringMVC使用@PathVariable接收参数过程解析

    这篇文章主要介绍了SpringMVC使用@PathVariable接收参数过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 结合Service层讲解DAO层的异常处理操作

    结合Service层讲解DAO层的异常处理操作

    这篇文章主要介绍了结合Service层讲解DAO层的异常处理操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java实现字符串和日期类型相互转换的方法

    java实现字符串和日期类型相互转换的方法

    这篇文章主要介绍了java实现字符串和日期类型相互转换的方法,涉及java针对日期与字符串的转换与运算相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • Java中Date日期时间类具体使用

    Java中Date日期时间类具体使用

    本文主要介绍了Java中Date日期时间类具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java中indexOf()的用法小结

    Java中indexOf()的用法小结

    这篇文章主要介绍了Java中indexOf()的用法小结,indexOf()有四种方法,用来查找某个字符或字符串的位置,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • SpringBoot多数据源读写分离的自定义配置问题及解决方法

    SpringBoot多数据源读写分离的自定义配置问题及解决方法

    这篇文章主要介绍了SpringBoot多数据源读写分离的自定义配置,我们可以通过自定义配置数据库配置类来解决这个问题,方式有很多,不同的业务采用的方式也不同,下面我简单的介绍我们项目的使用的方法
    2022-06-06
  • Java调用DOS实现定时关机的实例

    Java调用DOS实现定时关机的实例

    Java调用DOS实现定时关机的实例,需要的朋友可以参考一下
    2013-04-04
  • JAVA简单选择排序算法原理及实现

    JAVA简单选择排序算法原理及实现

    选择排序(Selection Sort )分为两种 简单选择排序(Simple Selection Sort) 和树形选择排序
    2014-01-01
  • Java rmi远程方法调用基本用法解析

    Java rmi远程方法调用基本用法解析

    这篇文章主要介绍了Java rmi远程方法调用基本用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java判断绝对值的方法总结

    Java判断绝对值的方法总结

    在本文中作者为大家分享了两种Java判断绝对值的方法,对此有兴趣的朋友可以和小编一起学习下。
    2018-02-02

最新评论