转贴处 http://www.blogjava.net/improviser/archive/2007/09/25/147934.html
本文研究Spring分层Bean Factory用法,先看有关代码:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1 parent.xml
2
3<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
4<beans>
5<beanid="injectBean"class="java.lang.String">
6<constructor-arg>
7<value>BeanInParent</value>
8</constructor-arg>
9</bean>
10<beanid="injectBeanParent"class="java.lang.String">
11<constructor-arg>
12<value>BeanInParent</value>
13</constructor-arg>
14</bean>
15</beans>
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1beans.xml
2
3<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
4<beans>
5<!--hierarchicalbeanfactories-->
6<beanid="target1"class="SimpleTarget">
7<propertyname="val">
8<refbean="injectBeanParent"/>
9</property>
10</bean>
11
12<beanid="target2"class="SimpleTarget">
13<propertyname="val">
14<reflocal="injectBean"/>
15</property>
16</bean>
17
18<beanid="target3"class="SimpleTarget">
19<propertyname="val">
20<refparent="injectBean"/>
21</property>
22</bean>
23
24<beanid="injectBean"class="java.lang.String">
25<constructor-arg>
26<value>BeanInChild</value>
27</constructor-arg>
28</bean>
29</beans>
30
SimpleTarget中只有一属性String val
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1publicstaticvoidmain(String[]args){
2BeanFactoryparent=newXmlBeanFactory(newFileSystemResource(
3"build/parent.xml"));
4BeanFactorychild=newXmlBeanFactory(newFileSystemResource(
5"build/beans.xml"),parent);
6
7SimpleTargettarget1=(SimpleTarget)child.getBean("target1");
8SimpleTargettarget2=(SimpleTarget)child.getBean("target2");
9SimpleTargettarget3=(SimpleTarget)child.getBean("target3");
10
11System.out.println(target1.getVal());
12System.out.println(target2.getVal());
13System.out.println(target3.getVal());
14}
运行结果:
Bean In Parent
Bean In Child
Bean In Parent
分析过程:
在bean factory被加载过程中分别加载各层Bean Factory,BeanFactoryparent=newXmlBeanFactory(newFileSystemResource("build/parent.xml"));
BeanFactorychild=newXmlBeanFactory(newFileSystemResource("build/beans.xml"),parent);
其中parent参数指定了bean factory间的父子关系。
分析结果:
第一行结果为在父factory中定义的参数,说明在子fantory中可以直接调用父fantory元素,类似于java中的继承关系。
第二行结果说明 <reflocal="injectBean"/>中local指向本fantory元素。
第三行结果为Bean In Parent,说明<refparent="injectBean"/>中parent指向父fantory中元素。
分享到:
相关推荐
Easy to use flat one level state machine for simple use cases.Hierarchical state machine structure to ease complex state configuration.State machine regions to provide even more complex state ...
### 层次狄利克雷过程 (Hierarchical Dirichlet Process, HDP) #### 概述 层次狄利克雷过程(Hierarchical Dirichlet Process, HDP)是一种非参数贝叶斯模型,用于处理涉及多组数据的聚类问题。在HDP中,每组数据...
Hierarchical Dirichlet Process简单介绍
论文摘要:元学习允许智能代理利用先前的学习情节作为快速提高新任务性能的基础。贝叶斯分层建模提供了一个理论框架,用于形式化元学习,作为对跨任务共享的一组参数的推断。在这里,我们重新定义了Finn等人的模型不...
【Hierarchical RL】分层演员-评论家(Hierarchical Actor-Critic )算法代码 Hierarchical Actor-Critic (HAC) 算法是一种用于分层强化学习(Hierarchical Reinforcement Learning, HRL)的算法,由Levy等人在2019...
Chloroplast thylakoid membranes accommodate densely packed protein complexes in ordered, often semi- crystalline arrays and are assembled into highly organized multilamellar systems, an organization ...
Hierarchical Graph Models for Conflict Resolution 冲突消解的层次图模型
【Hierarchical RL】分层强化学习:Hierarchical-DQN算法代码 Hierarchical-DQN (Hierarchical Deep Q-Network) 是一种分层强化学习算法,专门设计用于解决复杂的任务,通过将任务分解为层次化的子任务来学习。它...
标题和描述中提到的知识点主要涉及“层次化自组织”(Hierarchical Self-Organizing)概念,具体来说,是在于使用一种或多种自组织映射(Self-Organizing Maps, SOM)来揭示数据的固有层次结构。我们下面将详细介绍该...
分层强化学习(Hierarchical Reinforcement Learning, HRL)是强化学习领域的一个重要分支,其核心思想是通过将复杂的决策过程分解为若干层次的子任务来提高学习效率。本文讨论的论文标题为《Hierarchical ...
Oracle中的层次查询是数据库操作中的一个强大特性,它允许我们处理具有层级结构的数据,比如组织结构、地理位置或产品分类等。这种查询主要依赖于`START WITH`和`CONNECT BY`子句,配合`PRIOR`关键字来定义层级关系...
【Hierarchical RL】动态分层强化学习(DHRL)算法代码 动态分层强化学习,Dynamic Hierarchical Reinforcement Learning (DHRL) 是一种自适应分层强化学习算法,其目标是根据任务和环境的复杂性动态地构建、修改和...
Knowledge Graph Embedding with Hierarchical Relation Structure 本文讲述了知识图谱嵌入(KGE)模型中的一种新的方法,即使用层次关系结构(Hierarchical Relation Structure,HRS)来嵌入知识图谱。传统的KGE...
MartinPelikan HierarchicalBayesian Optimization Algorithm Towarda New Generation of Evolutionary Algorithms
关于层次聚类(hierarchical clustering)的基本步骤: 1、假设每个样本为一类,计算每个类的距离,也就是相似度 2、把最近的两个合为一新类,这样类别数量就少了一个 3、重新新类与各个旧类(去了那两个合并的类)之间...
Hierarchical Dirichlet Process(HDP)是一种非参数贝叶斯方法,用于建模具有层级结构的数据。在机器学习和自然语言处理领域,HDP被广泛应用于主题模型,它可以自动发现文档中的潜在主题,并推断出每个主题下的一...
### 21-KDD-Scalable Hierarchical Agglomerative Clustering #### 文献概述 本文档主要介绍了关于“可扩展的层次凝聚聚类算法”(Scalable Hierarchical Agglomerative Clustering, SHAC)的研究成果。该研究旨在...
值得注意的是,本书属于Chapman & Hall/CRC出版社的跨学科统计系列丛书之一,这表明本书不仅关注于具体的统计方法和技术,还涉及到了多个学科之间的交叉融合。 #### 关键知识点详述 1. **贝叶斯统计与疾病映射**:...