Spring <bean> 参数意义
1.id
bean的唯一标识,
2.class
类的完全限定名,
3.parent
父类bean定义的名字。
如果没有任何声明,会使用父bean,但是也可以重写父类。重写父类时,子bean 必须与父bean 兼容,也就是说,
接受父类的属性值和构造器声明的值。
子bean会继承父bean的构造器声明的值,属性值,并且重写父bean的方法。如果init方法,destroy方法已声明,
他们会覆盖父bean相应的设置。
保留的设置会直接从子bean获取,包括depends on,autowire mode,scope,lazy init.
4.abstract
声明bean是否是抽象的,决定该类是否会实例化。默认是false。
注意:abstract属性不会被子bean继承,所以,abstract为true时需要对每个bean显示声明。
5.lazy-init
决定是否延迟实例化,如果为false,则启动时会立即实例化单例模式的bean.默认是false。
注意:lazy-init属性不会被子bean继承。
6.autowire
决定是否自动装配bean的属性。
autowire有4中模式:
- "no"
Spring默认的模式。bean的引用必须在XML文件中通过<ref/>元素或ref属性显示定义。
spring推荐使用的模式,这样可以使文档更清晰明确。
- "byName"
通过属性名使用自动装配。如果一个Cat类拥有一个dog属性,那么Spring会根据名字dog
去寻找bean,如果没有找到bean,则不会自动装配。
- "byType"
如果Spring容器只有该属性类型的一个bean,会自动装配。当有多个该属性类型的bean时
会报错。如果没有,则不会自动装配。
- "constructor"
针对构造器引用,和byType类似。
注意:autowire属性不会被子bean继承。
7.depends-on
该bean初始化时依赖的其他bean的名字,bean工厂确保其他bean在该bean之前完成初始化。
注意:依赖项一般通过bean属性或构造器声明,这个属性对其他依赖(如静态类或启动阶段数据库的准备)是必要的。
注意:depends-on属性不会被子bean继承。
8.scope
scope属性值有四种: singleton,prototype,request,session
singleton:单例模式,默认选项
prototype:非单例模式
request:对于web应用,每一个请求产生一个新的实例
session:对于web应用,一个session产生一个实例
本人水平有限,如果有误,还请指正。
还有几个选项,需要请自行查看文档。
9.autowire-candidate
10.primary
11.init-method
12.destroy-method
13.factory-method
14.factory-bean
Spring <bean> 参数意义的更多相关文章
- Spring(3)——装配 Spring Bean 详解
装配 Bean 的概述 前面已经介绍了 Spring IoC 的理念和设计,这一篇文章将介绍的是如何将自己开发的 Bean 装配到 Spring IoC 容器中. 大部分场景下,我们都会使用 Appl ...
- spring bean自动注入
使用 @Repository.@Service.@Controller 和 @Component 将类标识为 Bean Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的 ...
- Spring Bean装配详解(五)
装配 Bean 的概述 前面已经介绍了 Spring IoC 的理念和设计,这一篇文章将介绍的是如何将自己开发的 Bean 装配到 Spring IoC 容器中. 大部分场景下,我们都会使用 Appl ...
- 想减少代码量,快设置一个有感知的 Aware Spring Bean
摘要:正常情况下,Spring 中的 Bean 对 Spring 是无感知的,Spring 框架提供了这种扩展能力,能让一个 bean 成为有感知的. 本文分享自华为云社区<有感知的 Aware ...
- Spring8:一些常用的Spring Bean扩展接口
前言 Spring是一款非常强大的框架,可以说是几乎所有的企业级Java项目使用了Spring,而Bean又是Spring框架的核心. Spring框架运用了非常多的设计模式,从整体上看,它的设计严格 ...
- Spring Bean详细讲解
什么是Bean? Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象. Spring 容器会自动完成@bean对象的实例化. 创建应用对象之间的协作关系的行为称为:装配( ...
- Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...
- 【转】Spring bean处理——回调函数
Spring bean处理——回调函数 Spring中定义了三个可以用来对Spring bean或生成bean的BeanFactory进行处理的接口,InitializingBean.BeanPost ...
- spring mvc参数绑定
spring绑定参数的过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上.springmvc中,接收页面提交的数据是通过方法形参来接 ...
随机推荐
- SQL的inner join、left join、right join、full outer join、union、union all
主题: SQL的inner join.left join.right join.full outer join.union.union all的学习. Table A和Table B表如下所示: 表A ...
- 使用paramiko模块远程登录并上传或下载文件
1.paramiko安装 1)安装PyCrypto2.6 for Python 2.7 64bit.地址:http://www.voidspace.org.uk/python/modules.shtm ...
- MongoDB安装并设置为windows服务以使其开机自启
在MongoDB的官方下载windows平台的压缩zip文件,地址:https://www.mongodb.org/dr/fastdl.mongodb.org/win32/mongodb-win32- ...
- lc.exe已退出代码为1
1.把项目文件夹下Properties文件夹下的licenses.licx文件删除,重新编译即可: 2.文本方式打开*.csproj文件,在文件中查找licenses.licx字样,删除对应节点. 之 ...
- Nhiberate (一)
严重参考感谢:@wolfy 操作数据库一直都是直接写SQL语句, 接触的ORM框架也不多,新项目要用数据库,数据库访问采用NHibernate. 1. NHibernate 是基于.Net 的针对关系 ...
- RDIFramework.NET V2.9版本 WinFom部分新增与修正的功能
RDIFramework.NET V2.9版本 WinFom部分新增与修正的功能 转眼间RDIFramework.NET框架走了快6个年头了,随着一个版本一个版本的升级改造,现在已经越来越完美了.使 ...
- 使用inherit属性值继承其父元素样式来覆盖UA自带样式。
像button.input这样的表单控件,不同的浏览器都会有自己的样式风格(UA样式).我们可以使用inherit继承其父元素样式,从而覆盖浏览器的UA样式. button, input, selec ...
- 关于thenao.scan() fn函数参数的说明
theano.scan()原型: theano.scan( fn, sequences=None, outputs_info=None, non_sequences=None, n_steps=Non ...
- 微信sdk分享,苹果手机分享到qq好友和qq空间没有反应
最近线上程序苹果手机进行微信分享时,分享到qq好友和qq空间,无法调用分享程序,从微信跳转到qq后就没有反应了,但是安卓手机分享就没事? 解决:调用微信sdk分享时,分享的url(link)的参数不能 ...
- Oracle12c:安装后新建用户及其默认表空间,并创建表测试
环境: 操作系统:Windows Server2008 R2 X64 Oracle版本:12c 如何安装? -- oracle 12c在oracle linux 6.6 x64上的安装 -- Wind ...