Spring depends-on介绍_gghh2015的博客-程序员宅基地

技术标签: java  Spring  

转自:https://www.cnblogs.com/zhishan/p/3190771.html

<!-- redis配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxActive" value="20" /> 
    <property name="maxIdle" value="10" /> 
    <property name="maxWait" value="1000" />  
    <property name="testOnBorrow" value="true" />
</bean>
<!-- jedis pool配置 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy" depends-on="jedisPoolConfig">
    <constructor-arg ref="jedisPoolConfig" />  
    <constructor-arg value="127.0.0.1" />  
    <constructor-arg type="int" value="6379" />  
</bean>

上面的代码是jedisPool交给spring处理的代码,比普通bean配置多了一个属性depends-on,这里就记录一下depends-on属性的作用和注意点:

作用:depends-on用来指定Bean初始化及销毁时的顺序。

如上面jedis pool定义depend-on="jedisPoolConfig",这意味着Spring总会保证jedisPoolConfig在jedisPool之前实例化,总是在jedisPool之后再销毁。

适用的场景:用来确定bean定义中依赖关系不明确或者没有直接依赖关系时,指定bean在初始化或销毁时的明确顺序。

需要注意的特点

1、Spring管理的bean都是单例模式(singleton)

2、实例化对象应该顺序化的,比如A依赖B,B依赖C,C依赖D...

3、一个bean可以依赖多个bean,可以通过逗号(",")或者分号(";")来定义多个依赖对象:

<bean id=a Class="com.twovv.A" depends-on="b,c,d" />
<bean id=b Class="com.twovv.B" />
<bean id=c Class="com.twovv.C" />
<bean id=d Class="com.twovv.D" />

4、初始化依赖关系不允许形成环闭依赖,下面的依赖关系定义是错误的,Spring将无法确定该如何实例化:

<bean id=a Class="com.twovv.A" depends-on="b" />
<bean id=b Class="com.twovv.B" depends-on="a" />
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gghh2015/article/details/86682280

智能推荐

SQL Server 练习题3_如果经常按书名查询图书信息-程序员宅基地

题目3 问题描述:本题用到下面三个关系表:CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。要求_如果经常按书名查询图书信息

response.setContentType()的作用及参数-程序员宅基地

response.setContentType的作用及参数response.setContentType作用content-type对照表参考优秀文章response.setContentType作用response.setContentType(MIME)的作用是使客户端浏览器区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。MIME映射策略就是在网页中使用哪个应用程序(即插件),打开哪种文件。例如web浏览器就是通过MIME类型来判断文件是PNG图片。通过M_response.setcontenttype

java生成永远不重复的随机数_java生成不重复随机数的方法_兼职铲屎官的博客-程序员宅基地

java生成不重复随机数的方法发布时间:2020-07-01 11:00:00来源:亿速云阅读:225作者:Leahjava怎么实现生成不重复随机数 ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java生成随机数可以使用Math类中的方法。不随机可以使用List进行判断存储。( )1 . 调用java.lang下面Math类中的..._java 随机一千万次,将1到一千万随出来,不能有重复

华为 Java 开发编程军规,谁违反谁走-程序员宅基地

点击上方“Java基基”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析...

mysqlmysql定时器_不带MySQLMySQL:MySQL Document Store简介-程序员宅基地

mysqlmysql定时器 MySQL可以充当NoSQL JSON文档存储库,因此程序员可以保存数据而无需规范化数据,设置架构,甚至不知道在开始编码之前其数据是什么样的。 从MySQL版本5.7和MySQL 8.0开始,开发人员可以将JSON文档存储在表的列中。 通过添加新的X DevAPI,您可以停止在代码中嵌入结构化查询语言的讨厌字符串,并用支持现代编程设计的API调用替换它们。 很少有..._mysql document store

XTTS迁移11g到19c-程序员宅基地

1、确认源端和目标端的平台IDline 200col PLATFORM_NAME for a40select a.PLATFORM_ID,a.PLATFORM_NAME,a.ENDIAN_FORMAT from v$transportable_platform a, v$database b where a.PLATFORM_NAME=b.PLATFORM_NAME;2、源端和目标端的字符集要相同SET LINESIZE 200COL PARAMETER FOR A40COL VALUE F

随便推点

自我评价_java高级自我评价-程序员宅基地

Jeff的性格:1. 阳光:非常喜欢笑,更喜欢和别人交流,看到别人开心的笑,我的心情也会很好2. 专注:我喜欢沉醉在某一件事中的感觉3. 执着:自小到大,多少挫折,为了我的梦,我一直坚持,越挫越勇,事实说明了这一切 Jeff的爱好:1. 读书:喜欢哪种沉醉在书中的感觉、喜欢在书中得到知识后的那种快感,喜欢读金融、管理、传记方面的书籍_java高级自我评价

PTA L1-030 一帮一 (15 分)-程序员宅基地

如花美眷,似水流年,回得了过去,回不了当初。“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。输入格式:输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序...

docker安装快速安装etcd集群-程序员宅基地

文章目录1 运行环境2 安装集群2.1 拉取etcd镜像2.2 启动node02.3 启动node12.4 启动node2参考1 运行环境目标节点为位于同一局域网内的3台安装了ubuntu server 18.04 x86_64的服务器,且已安装好docker组件。三台机器的机器名与IP对应关系如下表所示。序号节点名IP地址1node0172.24.152.172node1172.24.149.463node2172.24.155.152 安装集群

51nod:1118 机器人走方格(排列组合+逆元)-程序员宅基地

1118 机器人走方格基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。Input第1行,2个数M,N,中间用空格隔开。(2

linux telnet自动登录脚本,使用linux expect进行ssh和telnet自动化登录等操作-程序员宅基地

Expect是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成。形象的说,ssh登录,ftp登录,telnet登录等都符合交互的定义。下文我们首先提出一个问题,然后介绍基础知四个命令,最后提出解决方法。首先如果linux没有安装expect包,则需要手动安装,如使用yum -y install expect四个命令Expect中最关键的四个命令是send,..._expect telnet

长沙IT技术圈百万年薪大佬?是否存在?-程序员宅基地

作者:邹溪源,长沙资深互联网从业者,架构师社区特邀嘉宾!01引子不知不觉,IT技术圈开始流传起“百万年薪”的故事,有人问我,长沙有百万大佬么?其实我也不知道。02背景长沙自古以来就是文...