zoukankan      html  css  js  c++  java
  • spring配置文件回顾

    最近项目任务较轻,自己尝试搭建个项目玩玩,在搭建过程中对spring的配置文件回顾了下,形成了大体的配置模板,仅在此作记录,方便日后回顾。

    <?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"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="
                http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-2.5.xsd
                http://www.springframework.org/schema/aop
                http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
                http://www.springframework.org/schema/tx">
    
        <!-- 开启注解处理器 -->
        <context:annotation-config></context:annotation-config>
        <!-- 包扫描范围 开启组件自动扫描,扫描路径为com -->
        <context:component-scan base-package="com"/>
        <!--开启基于@AspectJ切面的注解处理器-->
        <aop:aspectj-autoproxy/>
        <!--使用class属性指定类的默认构造方法创建一个单例bean,默认单例singleton-->
        <bean id="Bean实例名称1" class="com.trh.testBean1" scope="prototype"></bean>
        <!--prototype原型模式 每次生成新的实例-->
        <bean id="Bean实例名称2" class="com.trh.testBean2" scope="prototype"></bean>
        <!--init-method 属性用于指定对象实例化后要调用的初始化方法 destory-method属性用于指定对象在销毁时要调用的方法-->
        <bean id="Bean实例名称3" class="com.trh.testBean3" init-method="bean初始化时调用的方法名" destroy-method="对象销毁时调用的方法名"></bean>
    
        <bean id="Bean实例名称4" class="com.trh.testBean4">
            <property name="Bean类中的属性名称1" ref="要引用的Bean实例名称"></property>
            <property name="Bean类中的属性名称2" value="直接指定属性值"></property>
            <property name="Bean类中的属性名称3">
                <!-- 创建一个内部匿名Bean实例赋值给指定的属性,改匿名bean实例无法被外界访问 -->
                <bean class="bean类全名"></bean>
            </property>
            <property name="Bean类中的Set类型属性名称">
                <set>
                    <!--基本数据类型直接用value标签生成-->
                    <value>set中的元素</value>
                    <!--引用其他Bean实例作为set元素,由ref标签指定-->
                    <ref bean="Bean实例名称1"></ref>
                </set>
            </property>
            <property name="Bean类中的List类型属性名称">
                <list>
                    <!--基本数据类型直接用value标签生成-->
                    <value>set中的元素</value>
                    <!--引用其他Bean实例作为set元素,由ref标签指定-->
                    <ref bean="Bean实例名称1"></ref>
                </list>
            </property>
            <property name="Bean类中的Map类型属性名称">
                <map>
                    <!--普通字符串自定义key-->
                    <entry key="map元素的key">
                        <value>map元素的value</value>
                    </entry>
                    <!--引用已定义的Bean实例作为key-->
                    <entry key-ref="Bean实例名称1">
                        <value>map元素的value</value>
                    </entry>
                    <!--引用已定义的Bean实例作为key-->
                    <entry key-ref="Bean实例名称1">
                        <!--引用已定义的Bean实例作为value-->
                        <ref bean="Bean实例名称2"></ref>
                    </entry>
                </map>
            </property>
            <property name="Bean类中的Properties类型属性名称">
                <!--创建一个properties类型的实例赋值给指定的properties类型属性-->
                <props>
                    <prop key="properties元素的key">properties元素的value</prop>
                </props>
            </property>
            <property name="Bean类中要初始化为null的属性名称">
                <!--给该属性赋值null-->
                <null></null>
            </property>
        </bean>
        
        <bean id="Bean实例名称5" class="com.trh.testBean5">
            <constructor-arg index="从0开始的序号" type="构造参数类型" value="构造参数的值"></constructor-arg>
            <constructor-arg index="从0开始的序号" type="构造参数类型" ref="要引用的bean实例"></constructor-arg>
        </bean>
        <!--切面配置-->
        <aop:config>
            <aop:aspect id="切面ID" ref="要引入的切面实例名称">
                <aop:pointcut id="切入点名称" expression="切入点正则表达式"></aop:pointcut>
                <aop:before method="前置通知方法名" pointcut-ref="切入点名称"></aop:before>
                <aop:after-returning method="后置通知方法名" pointcut-ref="切入点名称"></aop:after-returning>
                <aop:after-throwing method="异常通知方法名" pointcut-ref="切入点名称"></aop:after-throwing>
                <aop:after method="最终通知方法名" pointcut-ref="切入点名称"></aop:after>
                <aop:around method="环绕通知方法" pointcut-ref="切入点名称"></aop:around>
            </aop:aspect>
        </aop:config>
    
        <!--配置事物管理-->
        <bean id="事务管理器实例名称" class="事务管理器类全名">
            <property name="数据源属性名称" ref="Bean实例名称5"></property>
        </bean>
        <!--配置一个事务通知-->
        <tx:advice id="事务通知名称" transaction-manager="事务管理器实例名称">
            <tx:attributes>
                <!--方法以get开头的,不使用事务-->
                <tx:method name="get*" read-only="true" propagation="NOT_SUPPORTED"/>
                <!--其他方法以默认事务进行-->
                <tx:method name="*" rollback-for="Exception.class"></tx:method>
            </tx:attributes>
        </tx:advice>
        <!--aop实现事务管理-->
        <aop:config>
            <aop:pointcut id="事务切入点名称" expression="事务切入点正则表达式"></aop:pointcut>
            <aop:advisor advice-ref="事务通知名称" pointcut-ref="事务切入点名称"></aop:advisor>
        </aop:config>
    
    </beans>
  • 相关阅读:
    IOS苹果应用IPA一键签名工具(苹果重签名,企业签名,Windows平台,时间控制)
    BZ全景编辑器
    HTML/网站一键打包APK工具(html网页打包安卓APP应用)
    HTML网页/KRPano项目一键打包EXE工具(HTML网页打包成单个windows可执行文件exe)
    KRPano资源分析工具使用说明(KRPano XML/JS解密 切片图批量下载 球面图还原 加密混淆JS还原美化)
    IOS苹果应用IPA重签名软件手机版(苹果重签名,企业签名,安卓苹果平台,时间控制)
    使用HTML一键打包IPA工具打包KRPANO全景项目
    使用HTML一键打包APK工具打包KRPANO全景项目
    使用HTML一键打包EXE工具打包KRPANO全景项目
    从现实产品生产理解创建型设计模式
  • 原文地址:https://www.cnblogs.com/id-tangrenhui/p/14744398.html
Copyright © 2011-2022 走看看