`

Spring中的<idref bean=""/>,<ref local=""/>,<idref local=""/>,<ref bean=""/>介绍

 
阅读更多
json(JavaScript object notation)
解析数据
var obj = eval(data);
获取数组中的对象
var x = obj["key"];//obj.key
遍历一个js的对象
for(var id in obj){
var oj = obj[id];
}



Spring资料
Spring中定义了7种不同的事物传播规则
1.PROPAGATION_MANDATORY:表示该方法必须运行在一个事务中。如果当前事务不存在,将抛出一个异常
2.PROPAGATION_NESTED:表示如果当前已经存在一个事务,则该方法应当运行在一个嵌套事务中.
表示嵌套的事务可以从当前事务中单独地提交或回滚。如果当前事务不存在,那么他看起来就和PROPAGATION_REQUIRED没有两样。
3.PROPAGATION_NEVER:表示当前的方法不应该运行在一个事务上下文中。如果当前存在一个事务,则会抛出一个异常。
4.PROPAGATION_NOT_SUPPORTED:表示该方法不应在事务中运行。如果一个现有的事务正在运行中,它将在该方法的运行期间被挂起。
5.PROPAGATION_REQUIRED:表示当前方法必须运行在一个事务中。如果一个现有的事务正在运行中,该方法将运行在这个事务中。
否则的话,就要开始一个新的事务。
6.PROPAGATION_REQUIRES_NEW:表示当前方法必须运行在它自己的事务里。它将启动一个新的事务。如果一个现有事务在运行的话,
将在这个方法运行期间被挂起。
7.PROPAGATION_SUPPORTS:表示当前方法不需要事务处理环境,但如果有一个事务已经在运行的话,这个方法也可以在这个事务里运行。

注:事务传播规则回答了一个问题,就是新的事务是否要被启动或是被挂起,或者方法是否要在事务环境中运行。

Spring的事务隔离级别
1.脏读:脏读发生在一个事务读取了被另一个事务改写但还未提交的数据时.如果这些改变在稍后被回滚,那么第一个事务读取的数据就是
无效的。
2.不可重复读:不可重复读发生在一个事务执行相同的查询两次或两次以上,但每一次查询结果都不同时。
这通常是由于另一个并发事务在两次查询之间更新了数据。
3.幻读:幻读和不可重复读相似。当一个事务(T1)读取几行记录后,另一个并发事务(T2)插入一些记录,幻读
就发生了。在后来的查询中,第一个事务(T1)就会发现有一些原来没有的额外的记录。

ISOLATION_DEFAULT:使用后端数据库默认的隔离级别。
ISOLATION_READ_UNCOMMITTED:允许你读取还未提交的改变了的数据。可能导致脏读,幻读或不可重复读
ISOLATION_READ_COMMITTED:允许在并发事务已经移交后读取。可防止脏读,但幻读和不可重复读仍可能发生
ISOLATION_REPEATABLE_READ:对相同字段的多次读取的结果是一致的,除非数据被睡本身改变。可防止脏读和不可重复读,但幻读仍可能发生
ISOLATION_SERIALIZABLE:完全服从ACID的隔离级别,确保不发生脏读,不可重复读和幻读。这在所有的隔离级别中也是最慢的,因为他是典型
的通过完全锁定在事务中涉及的数据表来完成的

ISOLATION_READ_UNCOMMITTED是高效的隔离级别,但是事务的隔离级别程度也是最低的。事务对脏读,不可重复读和幻读是开放的。
在另外一个极端,ISOLATION_SERIALIZABLE防止任何形式的隔离问题,但效率是最低的。


只读
如果一个事务只对后端数据库执行读操作,数据库就可能利用事务只读特性,使用某些优化措施。
通过声明一个事务为只读,你就给了后端数据库一个机会,来应用那些它认为合适的优化措施。
因为只读的优化措施是在事务启动时由后端数据库实施的,所以,只有将那些具有可能
启动新事务的传播行为的方法的事务标记成只读才有意义(PROPAGATION_REQUIRED,PROPAGATION_REQUIRES_NEW,PROPAGATION_NESTED).

事务超时
在事务启动时,超时的时钟就开始滴答响了,所以只有将那些具有可能启动新事务的传播行为的方法的事务
设置超时才有意义(PROPAGATION_REQUIRED,PROPAGATION_REQUIRES_NEW,PROPAGATION_NESTED).


spring中的<idref bean=""/>,<ref local=""/>,<idref local=""/>,<ref bean=""/>介绍
idref元素提供了一种速记和检验错误的方式,它用来设置属性为容器中其他bean的id或name,如下:
<bean id="beanA" class="...."/>
<bean id="beanB" class="...">
	<property name="name">
		<idref bean="beanA" />
	</property>
</bean>
如上代码在运行时等同于如下的代码片段:
<bean id="beanA" class="....">
</bean>
<bean id="beanB" class="...">
	<property name="name">
		<value>beanA</value>
	</property>
</bean>
可以看到第一种形式要好于第二种形式;通过使用idref,spring在装载的时候就会
检验其他bean是否存在;而第二种形式中,指定了name属性后,spring仅会在实例化
该类时才做检验。

另外,还可以使用local属性,条件是被引用的bean必须定义在同一个xml文件中,
并且,bean的名称就是bean的id。采用这种方式,会更早地在xml文档解析时,就检验bean
的名称,代码如下:
<property name="name">
		<idref local="beanA" />
</property>

ref元素用来设置bean的协作者(引用其他bean作为属性),即一种依赖关系.
使用ref元素的bean属性是最常见的用法,它允许指向位于同一个或父bean工厂的bean(无论是否在同一个xml
文件中)。bean的属性值可以同目标bean的id或name属性相同,如下:
<ref bean="someBean"/>

local属性用以指定位于同一个文件中的bean,它可以利用xml解析器来验证xml的id引用。
local属性值必须与目标bean的id属性一致。当发现在同一个文件中不存在匹配元素时,将会报错。
为了尽可能早地发现错误,当目标bean位于同一个xml文件中,应当使用local,如下:
<ref local="someBean"/>
分享到:
评论

相关推荐

    关于EPUB格式的初步理解

    &lt;itemref idref="cover" linear="no"/&gt; &lt;itemref idref="content"/&gt; &lt;/spine&gt; &lt;guide&gt; &lt;reference href="cover.html" type="cover" title="Cover"/&gt; &lt;/guide&gt; &lt;/package&gt; ``` #### 四、EPUB格式的应用 EPUB...

    基于Spring开发之自定义标签及其解析

    其中,&lt;xsd:extension base="beans:identifiedType"&gt; 定义了该标签的id属性,注意这里引用的是spring-beans中的type,&lt;xsd:group ref="stopElements"/&gt;中定义了&lt;bf:stop&gt;标签允许的子标签,&lt;xsd:attributeGroup ref=...

    一道数据库面试题

    &lt;Role idRef="admin_role"/&gt; &lt;/User&gt; &lt;/UserGroupSystem&gt; ``` 以上XML示例包含了用户组、角色和用户的基本信息,以及它们之间的关系。用户组可能有父组、描述;角色包含权限列表;用户指定其所属的角色。注意,...

    Spring中xml的配置[定义].pdf

    - 形式二:`&lt;ref local="someBean"&gt;`,仅在同一XML文件内引用bean,且要求引用的是bean的ID。 - 形式三:`&lt;bean parent="someBean"&gt;`,通过`parent`属性引用父容器中的bean。 4. **内部bean(inner bean)**: ...

    Flex企业级开发框架.pdf

    &lt;Property name="service" idRef="loginService"/&gt; &lt;/Object&gt; &lt;/Object&gt; &lt;/mx:Object&gt; ``` 通过以上的介绍可以看出,不同的框架各有侧重,选择合适的框架取决于具体项目的需要。例如,如果项目需要高度模块化...

    XML应用开发(软件品牌)-1期 2.10 课堂实践-DTD中属性取值类型设置(上).doc

    &lt;course id="c1" selectedBy="s1 s2"&gt;图像处理&lt;/course&gt; &lt;/courses&gt; ``` 3. IDREFS类型的使用: 要改写上述IDREF的例子,使用IDREFS允许我们列出多个学生选修同一门课程: ```xml &lt;!ATTLIST course ...

    XML中的外部dtd和内部dtd实例

    &lt;element1&gt;Some data&lt;/element1&gt; &lt;element2/&gt; &lt;/myDoc&gt; ``` 在这个例子中,`myDoc`是根元素,它包含`element1`和`element2`两个子元素。`element1`可以包含字符数据(#PCDATA),而`element2`是空元素。 三、...

    很好的xml学习资料

    4. 标记:XML文档的结构,如`&lt;class&gt; &lt;student&gt;&lt;name&gt;&lt;/name&gt;&lt;/student&gt;&lt;/class&gt;`。 5. 数据:XML文档中存储的实际内容,如`张三`。 6. 注释:`&lt;!-- 注释内容 --&gt;`用于添加解释性的文本。 7. 字符数据类型:#PCDATA...

    DTD入门知识与使用方法

    &lt;square width="100" /&gt; 这个例子中,square 元素带有一个 width 属性,值为 100。 DTD 是一种强大的工具,用于定义 XML 文档的结构和约束规则。通过学习 DTD,可以更好地理解和使用 XML 文档。

    XML实用大全

    292&lt;br&gt;10.5.6 IDREF属性类型... 292&lt;br&gt;10.5.7 ENTITY属性类型... 293&lt;br&gt;10.5.8 ENTITIES 属性类型... 294&lt;br&gt;10.5.9 NOTATION属性类型... 294&lt;br&gt;10.6 预定义属性... 296&lt;br&gt;10.6.1 xml:space. 296&lt;br&gt;10.6.2 ...

    chapter23 实践习题1

    例如,`&lt;department&gt;`标签使用`dept name`、`building`和`budget`属性来存储部门信息。同样,`&lt;instructor&gt;`标签使用`IID`、`name`、`dept name`和`salary`属性来描述教师。`&lt;teaches&gt;`标签则通过`IID`和`course id`...

    EPUB电子书介绍.docx

    - `&lt;itemref idref=""&gt;` - **idref**:与文件列表中的id关联。 - **指南**:指定电子书中的特定页面,如封面、目录等。 - **导读**:根据读者的需求定制特定的阅读路径。 #### 四、toc.ncx文件解析 - **作用**:...

    XML DTD详细教程

    - **元素(Element)**:XML文档的核心,如`&lt;note&gt;`、`&lt;message&gt;`,可以包含文本、其他元素或为空。 - **属性(Attribute)**:提供元素的附加信息,如`&lt;img src="computer.gif" /&gt;`的`src`属性。 - **实体(Entity...

    XML应用开发(软件品牌)-1期 2.8 案例分析-DTD中属性取值方式的定义(上).doc

    【XML应用开发(软件品牌)-1期 2.8 案例分析-DTD中属性取值方式的定义(上)】 XML(eXtensible Markup Language)是一种用于标记数据的语言,它允许用户自定义标签来结构化数据。DTD(Document Type Definition)...

    Jdbc_xml_html_css_js选择题(含答案).doc

    6. 在XML中,模仿关系型数据库主键和外键关系的是ID/IDREF机制。所以选项A是正确的。 7. SAX(Simple API for XML)是一种基于事件驱动的XML解析器,而DOM(Document Object Model)是将整个XML文档加载到内存中...

    XML基础Java解析XML.docx

    3. 标签:标签必须闭合,且顺序嵌套,如`&lt;tag&gt;内容&lt;/tag&gt;`。 4. 属性:属性值必须引用,例如`&lt;element attr="value"&gt;`。 5. 空格处理:XML会保留所有的空格。 6. CDATA区域:`&lt;![CDATA[字符数据]]&gt;`,用于包含不受...

    DTD和XML学习(3)属性声明

    在深入探讨DTD(Document Type Definition)和XML(Extensible Markup Language)中的属性声明之前,我们需要先理解这两个概念的基础。XML是一种标记语言,用于结构化数据的存储和交换,而DTD则是一种规范,用来定义...

    XML基础及实践开发教程(唐琳-主编)习题答案.doc

    * IDREF:引用其它 ID 属性的值,该值必须在其它 ID 属性中存在 * IDREFS:引用多个其它 ID 属性的值,中间使用空格间隔 * ENTITY:未解析的外部实体类型 * ENTITIES:多个未解析的外部实体类型,中间使用空格间隔 *...

    XML应用开发(软件品牌)-1期 第2单元 单元测试卷-使用DTD定义XML文档.doc

    - `IDREF`属性类型用于在两个对象之间建立一对一的关系,其值为文档中另一个元素的ID属性值。 4. CDATA与#PCDATA的区别: - 当声明元素内容为纯文本字符串时,使用`#PCDATA`,例如`&lt;!ELEMENT myElement #PCDATA&gt;`...

Global site tag (gtag.js) - Google Analytics