配置约束头
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:cache="http://www.springframework.org/schema/cache" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> </beans>
开启注解处理器
<context:annotation-config/>
作用:使系统能够识别相应的注解,向spring容器注册以下四个BeanPostProcessor:
AutowiredAnnotationBeanPostProcessor
CommonAnnotationBeanPostProcessor
PersistenceAnnotationBeanPostProcessor
RequiredAnnotationBeanPostProcessor开启组件自动扫描
<context:component-scan base-package="要扫描的包路径"/> // base-package属性指定扫描路径 // 自动包含上述注解处理器,有该配置时注解处理器可不配置
开启基于@AspectJ切面的注解处理器
<aop:aspectj-autoproxy proxy-target-class="false"/>
说明:proxy-target-class属性默认为false,当且仅当目标类声明接口时使用JDK的动态代理,否则使用CGLib的动态代理
bean方式实例化类
<bean id="Bean实例名称" class="Bean全类名"/> // 使用class属性指定类的默认构造方法创建一个单实例bean,名称由id属性指定
<bean id="Bean实例名称" class="Bean全类名" scope="prototype"/> // 使用class属性指定类的默认构造方法创建一个多实例bean,名称由id属性指定
<bean id="Bean实例名称" class="Bean全类名" init-method="初始化时调用的方法" destroy-method="销毁时调用的方法"/> // init-method:对象初始化时调用的方法 // destroy-method:对象销毁时调用的方法
<bean id="Bean实例名称" class="Bean全类名"> <property name="Bean类中的属性名" ref="要引用的Bean名称"/> <property name="Bean类中的属性名" value="直接指定属性值"/> <property name="Bean类中的属性名"> <bean class="Bean类全名"/> </property> // 给指定的Set类型属性赋值 <property name="Bean类中的Set类型属性名称"> <set> <value>set中的元素</value> <ref bean="要引用的Bean名称"/> </set> </property> // 给指定的List类型属性赋值 <property name="Bean类中的List类型属性名称"> <list> <value>list中的元素</value> <ref bean="要引用的Bean名称"/> </list> </property> // 给指定的Map类型属性赋值 <property name="Bean类中的Map类型属性名称"> <map> <entry key="map元素的key"> <value>map元素的value</value> </entry> <entry key="map元素的key"> <ref bean="要引用的Bean名称"/> </entry> </map> </property> // 给指定要初始化为null的类型属性赋值 <property name="Bean类中要初始化为null的属性名称"> <null/> </property> </bean>
通知的相关处理
<aop:config> <aop:aspect id="切面ID" ref="要引用的切面实例名称"> <aop:pointcut id="切入点名称" 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="切入点名称" method="切面类中用做环绕通知的方法名"/> </aop:aspect> </aop:config>
事务管理器
// 配置事物管理 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> // 事务管理的属性 <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="append*" propagation="REQUIRED"/> <tx:method name="save*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="modify*" propagation="REQUIRED"/> <tx:method name="edit*" propagation="REQUIRED"/> <tx:method name="insert*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> <tx:method name="remove*" propagation="REQUIRED"/> <tx:method name="repair" propagation="REQUIRED"/> <tx:method name="get*" propagation="REQUIRED" read-only="true"/> <tx:method name="find*" propagation="REQUIRED" read-only="true"/> <tx:method name="load*" propagation="REQUIRED" read-only="true"/> <tx:method name="search*" propagation="REQUIRED" read-only="true"/> <tx:method name="datagrid*" propagation="REQUIRED" read-only="true"/> <tx:method name="*" propagation="REQUIRED" read-only="true"/> </tx:attributes> </tx:advice> // 配置切面 <aop:config> <aop:pointcut id="transactionPointcut" expression="execution(切入点正则表达式)"/> <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice"/> </aop:config>
spring配置文件详解
最新推荐文章于 2024-02-07 13:08:06 发布