ssm框架配置

spring mvc + spring + mybatis 配置

1:spring-config.xml 封装sping配置文件 便于读取项目中的配置文件

<?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
       http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

    <!--读取配置文件-->
    <bean id="configProperty" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <array>
                <value>classpath:/config/properties/config-env.properties</value>
                <value>classpath:/config/properties/db_config.properties</value>
                <value>classpath:/config/properties/config.properties</value>
                <value>classpath:/config/properties/redis_config.properties</value>
            </array>
        </property>
    </bean>

    <!--注入封装配置文件读取结果对象-->
    <bean id = "propertiesDto" class="com.jtws.common.model.PropertiesDTO">
    </bean>
</beans>

配置文件样采取key value形式

比如

not_login_url=/common/not-login


PropertiesDTO注入封装实体类 主要读取
config-env.properties 与  config.properties
@Component
public class PropertiesDTO {
    @Value("${not_login|_url}")
    private String notLoginUrl ;
 
    public void setNotLoginUrl(String notLoginUrl){
      this.notLoginUrl = notLoginUrl;
    }

    public String getNotLoginUrl(){
       return notLoginUrl;
    }
     
}

 

2:spring-basic.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:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.1.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
       http://www.springframework.org/schema/task
       http://www.springframework.org/schema/task/spring-task-4.1.xsd">

    <!-- 扫描业务层service -->
    <context:component-scan base-package="com.jtws.*.service"/>
    <context:annotation-config/>

    <!--AOP-->
    <!-- 启用@AspectJ风格的切面声明 -->
    <aop:aspectj-autoproxy/>
    <bean id="myAspect" class="com.jtws.common.base.AspectService"/>

    <!--定时器 注解支持 @Scheduled-->
    <task:annotation-driven />

    <!-- alibaba druid spring 监控 -->
    <bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"/>
    <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">
        <property name="patterns">
            <list>
                <value>com.jtws.*.web.*</value>
                <value>com.jtws.*.resource.*</value>
                <value>com.jtws.*.service.*</value>
            </list>
        </property>
    </bean>
    <aop:config>
        <aop:advisor advice-ref="druid-stat-interceptor"  pointcut-ref="druid-stat-pointcut"/>
    </aop:config>
    <!-- alibaba druid spring 监控 -->

</beans>

3:spring-db.xml 数据库配置      读取db_config.properties文件配置

<?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:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-4.1.xsd">

    <!--数据库:MySql-->
  <!--csp0连接池-->
   <!-- <bean id="dataSource_mysql" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="${my.jdbc.driver}" />
        <property name="jdbcUrl" value="${my.jdbc.url}" />
        <property name="user" value="${my.jdbc.username}" />
        <property name="password" value="${my.jdbc.password}" />
        <property name="initialPoolSize" value="1" />
        <!–连接池中保留的最小连接数。–>
        <property name="minPoolSize" value="0" />
        <!–连接池中保留的最大连接数。Default: 15 –>
        <property name="maxPoolSize" value="50" />
        <!–当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 –>
        <property name="acquireIncrement" value="5" />
        <!–最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 –>
        <property name="maxIdleTime" value="1000" />
        <property name="maxStatements" value="0" />
        <property name="testConnectionOnCheckin" value="false"/>
        <property name="testConnectionOnCheckout" value="true"/>
        <property name="preferredTestQuery" value="SELECT 1"/>
    </bean>-->

  <!--alibaba 数据源配置 有利于监控sql执行情况--> <bean id="dataSource_mysql" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <!-- 数据库基本信息配置 --> <property name="url" value="${my.jdbc.url}"/> <property name="username" value="${my.jdbc.username}"/> <property name="password" value="${my.jdbc.password}"/> <property name="driverClassName" value="${my.jdbc.driver}"/> <property name="filters" value="stat"/> <!-- 最大并发连接数 --> <property name="maxActive" value="20"/> <!-- 初始化连接数量 --> <property name="initialSize" value="1"/> <!-- 配置获取连接等待超时的时间 --> <property name="maxWait" value="60000"/> <!-- 最小空闲连接数 --> <property name="minIdle" value="10"/> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000"/> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="300000"/> <property name="validationQuery" value="SELECT 1 FROM DUAL"/> <property name="testWhileIdle" value="true"/> <property name="testOnBorrow" value="false"/> <property name="testOnReturn" value="false"/> <property name="maxOpenPreparedStatements" value="100"/> <!-- 对于建立时间超过removeAbandonedTimeout的连接强制关闭 --> <property name="removeAbandoned" value="true"/> <!-- 1800 秒,也就是 30 分钟 --> <property name="removeAbandonedTimeout" value="1800"/> <!-- 关闭 abanded 连接时输出错误日志 --> <property name="logAbandoned" value="true"/> </bean> <!--配置事务--> <bean id="transactionManager_mysql" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource_mysql" /> </bean> <!--注解式事务,使用JDK动态代理--> <tx:annotation-driven transaction-manager="transactionManager_mysql" /> <!--session factory--> <bean id="sqlSessionFactory_mysql" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource_mysql"/> <property name="mapperLocations" value="classpath:daoMapperConfig/userMapper/*.xml"/> </bean> <!-- 配置扫描器,扫描所有的DAO --> <bean id="daoScan_mysql" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.jtws.**.dao.userDao,com.jtws.**.dao.agentDao"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_mysql"/> </bean> </beans>

  

4:spring-redis.xml  redis缓存配置      读取redis_config.properties文件配置

<?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
       http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

    <!--JTWS-redis-->
    <bean  id="configJedisPool"  class="com.jtws.common.db.MyJedisPoolBulider" init-method="initConfig">
        <property name="poolName" value="jtwsJedisPool"/>
        <!--服务器IP地址,默认127.0.0.1-->
        <property name="jedisIp" value="${jtws.config.jedis.ip}"/>
        <property name="jedisPort" value="${jtws.config.jedis.port}"/>
        <property name="jedisUserName" value="${jtws.config.jedis.userName}"/>
        <property name="encryptPassword" value="${jtws.config.jedis.passWord}"/>
        <!--启动的时候是否输出配置信息,默认是-->
        <property name="printJedisConfig" value="true"/>
    </bean>

    <bean id="configJedis" class="com.helper.JedisInstanceFactory">
        <property name="jedisPoolBulider" ref="configJedisPool"/>
    </bean>
    <!--JTWS-redis-->


    <!--PRO-redis-->
    <bean  id="proJedisPool"  class="com.jtws.common.db.MyJedisPoolBulider" init-method="initConfig">
        <property name="poolName" value="proJedisPool"/>
        <!--服务器IP地址,默认127.0.0.1-->
        <property name="jedisIp" value="${pro.config.jedis.ip}"/>
        <property name="jedisPort" value="${pro.config.jedis.port}"/>
        <property name="jedisUserName" value="${pro.config.jedis.userName}"/>
        <property name="encryptPassword" value="${pro.config.jedis.passWord}"/>
        <!--启动的时候是否输出配置信息,默认是-->
        <property name="printJedisConfig" value="true"/>
    </bean>

    <bean id="proJedis" class="com.helper.JedisInstanceFactory">
        <property name="jedisPoolBulider" ref="proJedisPool"/>
    </bean>
    <!--PRO-redis-->

</beans>

  

5:spring-thread-config.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
       http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

    <!--线程池。-->
    <bean id="taskPoolExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" destroy-method="shutdown">
        <!-- 线程池维护线程的最少数量 -->
        <property name="corePoolSize" value="20" />
        <!-- 线程池维护线程所允许的空闲时间 -->
        <property name="keepAliveSeconds" value="30000" />
        <!-- 线程池维护线程的最大数量 -->
        <property name="maxPoolSize" value="200" />
        <!-- 线程池所使用的缓冲队列 -->
        <property name="queueCapacity" value="300" />
    </bean>

    <!--异步执行器,多出的任务开始等待 -->
    <bean id="simpleAsyncTaskExecutor" class="org.springframework.core.task.SimpleAsyncTaskExecutor">
        <property name="daemon" value="true"/>
        <property name="concurrencyLimit" value="30"/>
        <property name="threadNamePrefix" value="simpleAsyncTaskExecutor"/>
    </bean>
</beans>

  

6:servlet-context.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:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.1.xsd">

    <!-- 组件扫描 ,只扫描controller-->
    <context:component-scan base-package="com.jtws.*.resource,com.jtws.*.web"/>

    <!-- 解决了@Controller注解的使用前提配置。并提供了:数据绑定支持,@NumberFormatannotation支持,
    @DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)-->
    <mvc:annotation-driven>
        <!-- 消息转换器  解决ResponseBody返回的消息中的中文乱码-->
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes" value="application/json;charset=UTF-8"/>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!-- 对静态资源文件的访问-->
    <mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/>
    <mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/>
    <mvc:resources mapping="/css/**" location="/css/" cache-period="31556926"/>
    <mvc:resources mapping="/layer/**" location="/layer/" cache-period="31556926"/>

    <!--解决启动时候报 No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'appServlet' 的问题-->
    <mvc:default-servlet-handler/>

    <!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    </bean>


    <!--系统环境的配置,单例加载-->
    <bean class="com.jtws.common.base.EnvironmentConfig" id="envConfig" scope="singleton">
        <!--是否开启before切入。线上默认关闭0-->
        <property name="isOpenAspectBefore" value="0"/>
        <!--是否开启after切入。线上默认关闭0-->
        <property name="isOpenAspectAfter" value="0"/>

        <!--是否开启URL拦截器,1开启,0否。线上默认开启1-->
        <property name="isOpenIncercept" value="1"/>
        <!--是否开启WEB访问测试模式,1开启,0否。线上默认关闭0-->
        <property name="isOpenWebTest" value="0"/>
    </bean>


    <!-- 自定义拦截拦截器 -->
    <mvc:interceptors>
        <bean class="com.jtws.common.base.UrlInteceptor">
            <property name="whiteList"> <!--url拦截的白名单-->
                <list>
                    <value>MP_verify_TjybT2xT2PIUQ6k1.txt</value>
                    <value>/common/not-login</value>
                    <value>/job/load-devmgmt-desc</value>
                    <value>/job/save-method-visit</value>
                    <value>/job/check-init-cfg</value>
                    <value>/job/check-init-mobile-img</value>
                    <value>/job/query-mobile-cat</value>
                    <value>/job/init-mobile-segment</value>
                    <value>/job/init-app</value>
                    <value>/job/statisticalReportMonth</value>

                    <value>/service/user-login</value>
                    <value>/service/register</value>
                    <value>/service/registerSms</value>
                    <value>/service/get-agreement</value>
                    <value>/service/get-verify-img</value>
                    <value>/service/query-user-share-zhzl</value>
                    <value>/service/query-user-share-zhzl-list</value>
                    <value>/service/query-user-share-check-result</value>
                    <value>/service/query-user-share-check-list</value>
                    <value>/service/query-share-by-code</value>
                    <value>/service/query-devmgmt-desc</value>
                    <value>/service/pro-get-share-result</value>
                    <value>/service/query-nav-img</value>
                    <value>/service/login-out</value>
                    <value>/monitor/user</value>
                    <value>/monitor/userQueySizeDevmgmtClass</value>
                    <value>/monitor/devmgmtSize</value>
                    <value>/staService/sta-user-check-result</value>
                    <value>/safeService/versionManagement</value>
                    <value>/safeService/forget-pwd</value>
                    <value>/payment/deal-user-levelup</value>
                    <value>/payment/deal-user-check-item</value>
                    <value>/payment/deal-user-modify-level</value>
                    <value>/pingxx-service/webhooks</value>
                    <value>/monitor/send-verify-msg-mobile</value>
                    <value>/monitor/addMail</value>
                    <value>/monitor/bulid-active-cards</value>
                    <value>/monitor/update-equipment</value>
                    <value>/monitor/batch-write-diary</value>
                    <value>/monitor/clear-devmgmt-cache</value>
                    <value>/ucc/send-msg</value>
                    <value>/ucc/send-internal-msg</value>
                    <value>/devmgmt/get-dev-desc</value>
                    <value>/app/get-method-visit</value>
                    <value>/diary/query-share-diary</value>
                    <value>/about/about-us-modluar</value>
                    <value>/mail/get-res-video</value>

                    <value>/web/report-index</value>
                    <value>/web/monthcheckPage</value>
                    <value>/web/pro-month-check-page</value>
                    <value>/web/share-result</value>
                    <value>/web/share-overview</value>
                    <value>/web/documentation</value>
                    <value>/web/video</value>
                    <value>/web/video-play</value>
                    <value>/web/family-rule</value>

                    <value>/openapi/register</value>
                    <value>/openapi/find-user</value>

                    <value>/report/pro-get-report-devmgmtClass</value>
                    <value>/report/pro-get-report-devmgmt</value>
                    <value>/report/pro-get-devmgmt-continuity-value</value>
                    <value>/report/getReportDevmgmtClass</value>
                    <value>/report/getReportDevmgmt</value>
                    <!--老版本APP使用,以后可删除-->
                    <value>/report/monthlyPage</value>
                    <!---->
                    <!--动态报表,临时测试用-->
                    <value>/report/open-dev-clz</value>
                    <!---->

                    <!--计算模块-->
                    <value>/compute/</value>
                    <!--计算模块-->

                    <value>/favicon.ico</value>
                    <value>/s/</value>
                    <value>/images/</value>
                    <value>/layer/</value>
                    <value>/js/</value>
                    <value>/css/</value>
                    <value>d.html</value>
                    <value>d.jsp</value>
                    <value>/download/</value>


                    <value>/interact/articles</value>
                    <value>/interact/article</value>
                    <value>/report/single-time-report-details</value>
                </list>
            </property>

            <!--web访问方式,验证访问URL的用户是否登录-->
            <property name="webList">
                <list>
                    <value>/web/login</value>
                    <value>/web/user-login</value>
                    <value>/web/get-user-role</value>
                    <value>/web/user-pay-center</value>
                    <value>/web/get-payment-list</value>
                    <value>/web/get-user-payment</value>
                    <value>/web/payIncrement</value>
                    <value>/web/get-pay-increment-list</value>
                    <value>/web/get-payment-list-page</value>
                    <value>/web/get-user-levelup</value>
                    <value>/web/get-coupon-code-page</value>
                    <value>/web/overview-report</value>
                </list>
            </property>
        </bean>
    </mvc:interceptors>

    <!--spring 加载各种组件,注意顺序,spring-config是读取配置文件,后面的数据库等依赖于它-->
    <import resource="classpath:config/spring-config.xml"/>
    <import resource="classpath:config/spring-basic.xml"/>
    <import resource="classpath:config/spring-db.xml"/>
    <import resource="classpath:config/spring-db1.xml"/>
    <import resource="classpath:config/spring-redis.xml"/>
    <import resource="classpath:config/spring-thread-config.xml"/>
    <!--spring 加载其他组件-->

</beans>

  

猜你喜欢

转载自www.cnblogs.com/codigup/p/10130286.html