固定代码

基础beans.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

测试类获得容器上下文

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

通过C命名空间注入配置

在xml文件加入C标签C

xmlns:c="http://www.springframework.org/schema/c"
<!--C命名空间注入,通过构造器注入-->
<bean id="user2" class="com.zhax.pojo.User" c:age="18" c:name="狂神"

通过P命名空间注入配置

在xml文件加入P标签

xmlns:p="http://www.springframework.org/schema/p"
<!--P命名空间注入,通过Set方法注入-->
<bean id="user" class="com.zhax.pojo.User" p:name="zhaox" p:age="18"/>

导入Context约束(使用注解开发)

  1. 导入约束
    xmlns:context="http://www.springframework.org/schema/context"
    
    http://www.springframework.org/schema/context
    https://www.springframework.org/schema/context/spring-context.xsd
    
  2. 配置注解的支持
    <context:annotation-config/>
    
  3. 整合
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           https://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           https://www.springframework.org/schema/context/spring-context.xsd">
    
       <context:annotation-config/>
    
    </beans> 
    

导入AOP约束及依赖(以及开启AOP使用注解开发)

  1. AOP依赖
    <dependencies>
       <dependency>
           <groupId>org.aspectj</groupId>
           <artifactId>aspectjweaver</artifactId>
           <version>1.9.6</version>
       </dependency>
    </dependencies>
    
  2. AOP约束
    xmlns:aop="http://www.springframework.org/schema/aop"
    
    http://www.springframework.org/schema/aop
    https://www.springframework.org/schema/aop/spring-aop.xsd
    
  3. 开启注解开发
    <aop:aspectj-autoproxy/>
    

导入tx约束(事务)

xmlns:tx="http://www.springframework.org/schema/tx"
http://www.springframework.org/schema/tx
https://www.springframework.org/schema/tx/spring-tx.xsd

配置事务

开启事务管理器

<!--配置声明式事务-->
<bean id="transactionManger" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <constructor-arg ref="dataSouece"/>
</bean>

结合AOP实现AOP织入

<!--结合AOP实现AOP织入-->
<!--配置事务通知-->
<tx:advice id="txAdvice" transaction-manager="transactionManger">
    <!--给哪些方法配置事务-->
    <!--配置事务的传播特性:propagation-->
    <!--这里可以写add*,delete*等-->
    <tx:attributes>
        <tx:method name="add*" propagation="REQUIRED"/>
        <tx:method name="delete*" propagation="REQUIRED"/>
        <tx:method name="update*" propagation="REQUIRED"/>
        <tx:method name="select*" read-only="true"/>
    </tx:attributes>
</tx:advice>

配置事务切入

<!--配置事务切入-->
<aop:config>
    <aop:pointcut id="txPointCut" expression="execution(* com.zhaox.mapper.*.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
</aop:config>

醉后不知天在水,满船清梦压星河