spring配置文件详解

  1. 配置约束头

    <?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>
  2. 开启注解处理器

     <context:annotation-config/>

    作用:使系统能够识别相应的注解,向spring容器注册以下四个BeanPostProcessor:
    AutowiredAnnotationBeanPostProcessor
    CommonAnnotationBeanPostProcessor
    PersistenceAnnotationBeanPostProcessor
    RequiredAnnotationBeanPostProcessor

  3. 开启组件自动扫描

     <context:component-scan base-package="要扫描的包路径"/>
     // base-package属性指定扫描路径
     // 自动包含上述注解处理器,有该配置时注解处理器可不配置
  4. 开启基于@AspectJ切面的注解处理器

    <aop:aspectj-autoproxy proxy-target-class="false"/>

    说明:proxy-target-class属性默认为false,当且仅当目标类声明接口时使用JDK的动态代理,否则使用CGLib的动态代理

  5. 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>
  6. 通知的相关处理

    <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>
  7. 事务管理器

    // 配置事物管理
    <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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值