千家信息网

Spring中Bean的定义和作用域介绍

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"Spring中Bean的定义和作用域介绍",在日常操作中,相信很多人在Spring中Bean的定义和作用域介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2026年11月02日Spring中Bean的定义和作用域介绍

这篇文章主要介绍"Spring中Bean的定义和作用域介绍",在日常操作中,相信很多人在Spring中Bean的定义和作用域介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Spring中Bean的定义和作用域介绍"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、什么是Bean

1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化);
2、凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性;
3、规律:凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;
4、把Bean理解为类的代理或代言人(实际上确实是通过反射、代理来实现的),这样它就能代表类拥有该拥有的东西了。
5、我们都在微博上@过某某,对方会优先看到这条信息,并给你反馈,那么在Spring中,你标识一个@符号,那么Spring就会来看看,并且从这里拿到一个Bean或者给出一个Bean

二、注解分为两类:

1、一类是使用Bean,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装;比如@Autowired , @Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;
2、一类是注册Bean,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装。

三、Bean的定义

元素是Spring配置文件的根元素,元素是元素的子元素,元素可以包含多个子元素,每个元素可以定义一个Bean实例,每一个Bean对应Spring容器里的一个Java实例定义Bean时通常需要指定两个属性。

Spring容器集中管理Bean的实例化,Bean实例可以通过BeanFactory的getBean(Stringbeanid)方法得到。BeanFactory是一个工厂,程序只需要获取BeanFactory引用,即可获得Spring容器管理全部实例的引用。程序不需要与具体实例的实现过程耦合。大部分Java EE应用里,应用在启动时,会自动创建Spring容器,组件之间直接以依赖注入的方式耦合,甚至无须主动访问Spring容器本身。

当我们在配置文件中通过方法配置一个Bean时,这样就需要该Bean实现类中必须有一个无参构造器。故Spring底层相当于调用了如下代码:

Xxx = new xx.XxClass()如果在配置文件中通过构造注入来创建Bean:
  

xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">






则Spring相当于调用如下代码:

Bean bean = new com.Test("chenssy","35-354");

四、容器中Bean的作用域

当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。
Spring支持5种作用域:
1.Singleton:单例模式。在整个SpringIoC容器中,使用singleton定义的Bean将只有一个实例。
2.Prototype:原型模式。每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例。
3.request:对于每次HTTP请求,使用request定义的Bean都将产生一个新的实例,即每次HTTP请求都会产生不同的Bean实例。当然只有在WEB应用中使用Spring时,该作用域才真正有效。
4.session:对于每次HTTPSession,使用session定义的Bean都将产生一个新的实例时,即每次HTTP Session都将产生不同的Bean实例。同HTTP一样,只有在WEB应用才会有效。
5.global session:每个全局的HTTPSession对应一个Bean实例。仅在portlet Context的时候才有效。

比较常用的singleton和prototype。如果一个Bean实例被设置为singleton,那么每次请求该Bean时都会获得相同的实例。容器负责跟踪Bean实例的状态,负责维护Bean实例的生命周期行为。如果一个Bean实例被设置为prototype,那么每次请求该di的Bean,Spring都会创建一个新的Bean实例返回给程序,在这种情况下,Spring容器仅仅使用new关键字创建Bean实例,一旦创建成功,容器将不会再跟踪实例,也不会维护Bean实例的状态。如果我们不指定Bean的作用域,则Spring会默认使用singleton作用域。Java在创建Java实例时,需要进行内存申请。销毁实例时,需要完成垃圾回收。这些工作都会导致系统开销的增加。因此,prototype作用域Bean的创建、销毁代价会比较大。而singleton作用域的Bean实例一旦创建成功,可以重复使用。因此,除非必要,否则尽量避免将Bean的作用域设置为prototype。

到此,关于"Spring中Bean的定义和作用域介绍"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

实例 作用 容器 方法 元素 属性 对象 配置 文件 学习 应用 有效 只有 注解 程序 不同 成功 代码 可以通过 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 湖北九亚互联网络科技有限公司 上海卓越科技互联网 苏州找大状互联网科技有限公司 中国互联网科技股 A股互联网金融科技公司 智网互联网科技 新浪科技互联网 互联网科技类展会 科技赋能互联网健康 北京三清互联网科技 上海宁丞科技互联网 深圳育鹏互联网科技有限公司招聘 易企秀互联网科技是做什么的 世界互联网科技成果奖 张家口科技产业互联网平台 银川新华互联网科技学校原画 河南商务圈互联网科技有限公司 宁波允成互联网科技有限公司 银川新华互联网科技学校招聘 互联网是第几次科技革命的成果 互联网通讯科技 远信互联网科技 互联网科技排名 科技创新互联网企业 米聚互联网科技南京有限公司排面 江苏苏星互联网科技有限公司 2021世界互联网领先科技成果发布 科技互联网经济论坛 互联网科技创业有什么好项目
0