嘘~ 正在从服务器偷取页面 . . .

spring常规配置示例


开发常见配置整理-spring

Spring 的空 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" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
           http://www.springframework.org/schema/p http://www.springframework.org/schema/p/spring-p-3.0.xsd">


</beans>           

Spring IOC 配置 applicationContext.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"
       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-3.0.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

    <!-- 加载service,此时要排除要controller,因为controller已经spring-mvc中加载过了 这里是把mvc 和 service 分开加载-->
    <context:component-scan base-package="com.xiaocai.web.*" >
        <context:exclude-filter type="annotation"
                                expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

    <context:property-placeholder location="classpath:dbconfig.properties"/>

    <bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="driverClass" value="${jdbc.driver}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>


    <!-- mybatis -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <property name="dataSource" ref="pooledDataSource"></property>
    </bean>

    <!-- 扫描器 mybatis接口介入ioc-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.xiaocai.web.mapper"/>
    </bean>

    <!-- 配置可以执行批量的sqlSession -->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
        <constructor-arg name="executorType" value="BATCH"></constructor-arg>
    </bean>


    <!-- =============================事务配置=================== -->
    <!-- 事务控制  -->
    <!-- 配置spring的PlatformTransactionManager,名字为默认值 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="pooledDataSource" />
    </bean>
    <!-- 开启基于注解的事务,使用xml配置形式的事务 比较重要的都是使用配置式-->
    <aop:config>
        <!-- 切入点表达式 -->
        <aop:pointcut expression="execution(* com.xiaocai.web.service.impl.*.*(..))" id="txPoint"/>
        <aop:advisor advice-ref="txAdice" pointcut-ref="txPoint"/>
    </aop:config>
    <!-- 配置事务增强 ,事务如何切入-->
    <tx:advice id="txAdice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*" rollback-for="Exception" propagation="REQUIRED"/>
            <!--
            <tx:method name="get*" read-only="true" />
            <tx:method name="query*"  read-only="true"/>
            <tx:method name="find*"  read-only="true"/>
            -->
        </tx:attributes>
    </tx:advice>

</beans>

Spring MVC 配置 spring-mvc.xml

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


    <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
    <!-- 加载controller -->
    <context:component-scan base-package="com.xiaocai.web.*" use-default-filters="false">
        <context:include-filter type="annotation"    expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

    <!-- 视图解析器 -->
    <!-- 默认的视图解析器 在上边的解析错误时使用 (默认使用html)- -->
    <bean id="defaultViewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:order="3">
        <property name="viewClass"
                  value="org.springframework.web.servlet.view.JstlView" />
        <property name="contentType" value="text/html" />
        <property name="prefix" value="/webpage/" />
        <property name="suffix" value=".jsp" />
    </bean>
    <!--     <bean id="multipartResolver"
            class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
            p:defaultEncoding="UTF-8">
            <property name="maxUploadSize">
                <value>104857600</value>
            </property>
            <property name="maxInMemorySize">
                <value>4096</value>
            </property>
        </bean> -->

    <mvc:default-servlet-handler/>

    <mvc:annotation-driven/>

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="urlMap">
            <map>
                <entry key="/ssm/**" value="myResourceHandler" />
            </map>
        </property>
        <property name="order" value="100000" />
    </bean>


    <bean id="myResourceHandler" name="myResourceHandler"
          class="org.springframework.web.servlet.resource.ResourceHttpRequestHandler">
        <property name="locations" value="/请求的文件路径/" />
        <property name="supportedMethods">
            <list>
                <value>GET</value>
                <value>HEAD</value>
                <value>POST</value>
                <value>PUT</value>
            </list>
        </property>

    </bean>
</beans>

根据需要调整 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="ON" monitorInterval="1800">
    <properties>
        <property name="LOG_HOME">/WEB-INF/logs</property>
        <property name="FILE_NAME">ssm-ya</property>
    </properties>


    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>

        <RollingFile name="running-log" fileName="${LOG_HOME}/${FILE_NAME}.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz"
                     immediateFlush="true">
            <PatternLayout
                    pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>
    </Appenders>
    <Loggers>

        <!-- <Logger name="com.cssweb.test.app" level="trace" additivity="true">
            <AppenderRef ref="running-log" /> </Logger> -->

        <Root level="info">
            <!-- 这里是输入到文件,很重要-->
            <AppenderRef ref="running-log" />
            <!-- 这里是输入到控制台-->
            <AppenderRef ref="Console" />
        </Root>

    </Loggers>
    <root level="INFO">
        <appender-ref ref="Console"/>
        <appender-ref ref="RollingFile"/>
    </root>

    <logger name="org.springframework" level="Info" additivity="false" >
        <appender-ref ref="Console"/>
    </logger>

    <logger name="com.xiaocai.web" level="INFO" additivity="false" >
        <appender-ref ref="Console"/>
    </logger>
    <logger name="log4j.logger.com.ibatis" level="DEBUG" additivity="false" >
        <appender-ref ref="Console"/>
    </logger>

    <logger name="org.apache.ibatis" level="DEBUG" additivity="false" >
        <appender-ref ref="Console"/>
    </logger>
    <!--
    <logger name="com.XXXXX.XXXXXX" level="DEBUG" additivity="false" >
        <appender-ref ref="Console"/>
    </logger>
    <logger name="com.XXXXX.XXXXX.XXXXX" level="DEBUG" additivity="false" >
        <appender-ref ref="Console"/>
    </logger>
    -->
    <!--additivity=false 表示不往上继承root,因此没有打印root策略的日志-->
    <!--<logger name="org.springframework.core" level="INFO" additivity="false">-->
    <!--<appender-ref ref="Console"/>-->
    <!--</logger>-->

</Configuration>


版权声明: 本博客所有文章除特別声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明来源 Small-Rose / 张小菜 !
评论
  目录