spring配置文件学习笔记

<!-- 整篇系列内容都是根据郭峰大大的Spring从入门到精通学习整理的-->


SPRING配置文件详解

概念、用途:

Spring配置文件是用于指导spring工厂进行bean生产、依赖注入(装配)Bean实例分发的图纸

Spring配置文件是一个或多个标准的XML文档,applicationContext.xmlspring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。

<?xml version=”1.0” encoding=”UTF-8”?>

定义xml文件的版本为1.0编码格式为UTF-8

<beans

整个配置文件的根节点,包含一个或多个Bean元素。

Xmlns=”http://www.springframework.org/schema/beans”

Xmlns:xsi=”http:www.w3.org/2001/XMLSchema-instance

最基本的命名空间定义

xmlns:context="http://www.springframework.org/schema/context"

启动自动扫描或注解装配时的命名空间

xmlns:aop="http://www.springframework.org/schema/aop"

启用AOP功能时的命名空间

xmlns:aop="http://www.springframework.org/schema/tx"

启用声明事务时的命名空间

xsi:schemaLocation=” …”

<!—

同命名空间定义相对应的schema定义文件的装载路径

-->

Xsi:schemaLocation属性的值有一个URI引用对组成,两个URI之间以空白符分隔,第一个URI是命名空间的名称,第二个URI给出模式文档的位置,模式处理器将从这个位置读取模式文档,该模式文档的目标名称空间必须与第一个URI相匹配。

<context:annotion-config/>

开启注解处理器

<context:compoment-scan base-package=test.spring>

开启组件自动扫描,扫描路径由base-package指定

<aop:aspectj-autoproxy/>

开启基于@Aspectj切面的注解处理器

<bean id=Bean实例名称 class=Bean类的全限定路径 >

使用class属性指定的类的默认构造方法创建一个单实例Bean,名称由ID属性指定。

<bean id=Bean实例名称 class=Bean类的全限定路径 scope=prototype >

Scope属性为prototype时表示每次将生成新的实例,即原型模式。

<bean id=Bean实例名称 class=Bean类的全限定路径 init-method=初始化时调用的方法  desctory-method=对象销毁时调用的方法 >

Init-method属性用于指定对象实例化后要调用的初始化方法。

Destory-method属性用于指定对象在销毁时要调用的方法。

<bean >

<property name=Bean类中的属性名称 ref=“要引用的Bean名称”/>

<property name=Bean类中的属性名称 value=“直接指定属性值”/>

<property name=Bean类中的属性名称 >

<bean class=Bean类全限定路径/>

</propertype>

 

 

 

Property标签用于对Bean实例中的属性进行赋值,对于基本数据类型的值可以直接用value属性指定,而其他bean引用则可以使用ref

 

创建一个内部匿名Bean实例赋值给指定的属性,该匿名实例无法被外界访问。

<bean >

<property name=Bean类中的Set属性名称

<set>

<value>set中的元素</value>

<refbean=要引用的Bean名称/>

</set>

</property>

</bean>

Set标签用于创建一个Set类型的实例赋值给指定的Set类型属性,Set实例中的元素通过Value或者ref子标签指定,对于基本数据类型可以使用value标签,如果是其他的Bean类实例作为Set元素则需要使用ref标签指定。

同理LIST就不在做演示了。

<property name=Bean类中的Map类型属性名称>

<map>

<entry key=map元素的key>

<value>map元素的value</value>

</map>

</property>

 

Map标签用于创建一个map类型的实例赋值给指定的额Map类型属性,Map实例中的元素通过entry子标签来指定,Map元素的键由entry标签的key属性指定,值由value或者ref来指定。

<property name=Bean类中的Proiperties类型的属性名称>

<props>

<prop key=properties元素的key>

Properties元素的value

</prop>

</props>

</property>

创建一个properties类型的实例赋值给指定的Properties类型属性,

Properties实例中属性项由prop标签生成,属性项元素的键由key属性指定,属性项元素的值可直接放置在prop标签体中。

 

<property name=”…”>

<null/>

</property>

Null标签用于给需要赋null值的属性进行赋null值。


<bean id=”…”>

<construct-arg index=0开始的序号

type=构造参数的类型 value=构造参数的值/>

</bean>

 

通过传入相应的构造参数进行Bean实例化,constructor-arg标签用于制定一个构造参数,其index属性表明当前是第几个构造参数。

Type属性声明构造参数的类型,构造参数的值如果是基本类型可由vlue直接指定,如果是对象的引用,则由ref指定。

<bean id=目标对象名称 class=目标对象类全限定名称/>

<bean id=切面实例名称 class=切面类全名/>

<aop:config>

<aop:aspect id=切面ID ref=要引用的切面实例名称>

<aop:pointcutid=切入点名称 expression=切入点正则表达式/>

<aop:before pointcut-ref=切入点名称 method=切面类中用作前置通知的方法名/>

<aop:after-returning pointcut-ref=切入点名称 method=切面类中用作后置通知的方法名/>

<aop:after-throwing pointcut-ref=切入点名称 method=切面类中用作异常通知的方法名/>

<aop:after pointcut-ref=切入点名称 method=切面类中用作最终通知的方法名/>

<aop:around pointcut-ref=切入点名称 mthod=切面类中用作环绕通知的方法名/>

</aop:aspect>

</aop:config>

配置AOP

<bean id=事务管理器实例名称 class=事务管理器的全限定名称

<property name=数据源属性名称 ref=要引用的数据源实例名称/>

</bean>

配置事务管理器

<tx:advice id=事务通知名称 transaction-manager=事务管理器实例名称>

<tx:attributes>

<tx:method name=get* read-only=true propagation=NOT_SUPPORTED/>

<tx:method name=*/>

</tx:attributes>

</tx:advice>

 

配置一个事务通知

 

 

方法以get开头的,不使用事务。

 

其他方法以默认事务进行。

<aop:config>

<aop:pointcut id=事务切入点名称 expression=事务切入点正则表达式/>

<aop:advisor advice-ref=事务通知名称 pointcut-ref=事务切入点名称/>

</aop:config>

使用AOP技术实现事务管理

 

本文学习过程中根据的是http://blog.csdn.net/zzjjiandan/article/details/22922847这篇博客,其实具体应该算是转载吧。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值