• SSM 整合


    ---

    分为三层:

             DAO层:负责与数据源进行交互

             Service:业务处理层,也可称为服务层,对上层提供统一接口的服务。

             Controller: 控制器层,负责处理来自客户端的请求。

            

    通用配置:

             db.properties 数据库配置

    jdbc.driver=com.mysql.jdbc.Driver

    jdbc.url=jdbc:mysql://localhost:3306/crm?characterEncoding=utf-8

    jdbc.username=root

    jdbc.password=admin

             log4j.properties 日志配置

    # Global logging configuration

    log4j.rootLogger=DEBUG, stdout

    # Console output...

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

    Dao:

             ApplicationContext-dao.xml 分层的Spring配置文件

                       1.配置数据源

                       2.创建mybatis会话工厂

                       3.扫描dao层接口

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

        xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

        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.0.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd

        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

     

        <!-- 加载配置文件 -->

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

        <!-- 数据库连接池 -->

        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"

           destroy-method="close">

           <property name="driverClassName" value="${jdbc.driver}" />

           <property name="url" value="${jdbc.url}" />

           <property name="username" value="${jdbc.username}" />

           <property name="password" value="${jdbc.password}" />

           <property name="maxActive" value="10" />

           <property name="maxIdle" value="5" />

        </bean>

     

        <!-- mapper配置 -->

        <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->

        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

           <!-- 数据库连接池 -->

           <property name="dataSource" ref="dataSource" />

           <!-- 加载mybatis的全局配置文件 -->

           <property name="configLocation" value="classpath:SqlMapConfig.xml" />

        </bean>

     

        <!-- 配置Mapper扫描器 -->

        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

           <property name="basePackage" value="com.witwicky.dao" />

        </bean>

     

    </beans>

             SQLMapConfig.xml mybatis 配置文件

            

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE configuration

    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

    "http://mybatis.org/dtd/mybatis-3-config.dtd">

    <configuration>

       

    </configuration>

    Service

             ApplicationContext-service.xml 扫描Service类

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

        xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

        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.0.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd

    http://www.springframework.org/schema/tx

    http://www.springframework.org/schema/tx/spring-tx-4.0.xsd

        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

     

        <!-- @Service扫描 -->

        <context:component-scan base-package="com.witwicky.service"/>

       

    </beans>

             ApplicationContext-transcation.xml spring事物配置

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

        xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

        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.0.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd

    http://www.springframework.org/schema/tx

    http://www.springframework.org/schema/tx/spring-tx-4.0.xsd

        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

     

        <!-- 事务管理器 -->

        <bean id="transactionManager"

            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

           <!-- 数据源 -->

           <property name="dataSource" ref="dataSource" />

        </bean>

       

        <!-- 通知 -->

        <tx:advice id="txAdvice" transaction-manager="transactionManager">

           <tx:attributes>

               <!-- 传播行为 -->

               <tx:method name="save*" propagation="REQUIRED" />

               <tx:method name="insert*" propagation="REQUIRED" />

               <tx:method name="delete*" propagation="REQUIRED" />

               <tx:method name="update*" propagation="REQUIRED" />

               <tx:method name="find*" propagation="SUPPORTS" read-only="true" />

               <tx:method name="get*" propagation="SUPPORTS" read-only="true" />

           </tx:attributes>

        </tx:advice>

       

        <!-- 切面 -->

        <aop:config>

           <aop:advisor advice-ref="txAdvice"

               pointcut="execution(* com.witwicky.service.*.*(..))" />

        </aop:config>

       

    </beans>

    Controller

             SpringMVC.xml springMVC核心配置文件

                       1.组件扫描 用于扫描controller类

                       2.注解驱动 用户注册 处理器适配器和映射器适配器

                       3.试图解析器

                       4.配置参数转换器 如:string->date类型的转换

    <?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:p="http://www.springframework.org/schema/p"

        xmlns:context="http://www.springframework.org/schema/context"

        xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"

        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd

            http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd

            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

     

        <!-- @Controller注解扫描 -->

        <context:component-scan base-package="com.witwicky.controller"></context:component-scan>

     

        <!-- 注解驱动: 替我们显示的配置了最新版的注解的处理器映射器和处理器适配器 -->

        <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>

     

        <!-- 配置视图解析器 作用:在controller中指定页面路径的时候就不用写页面的完整路径名称了,可以直接写页面去掉扩展名的名称 -->

        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

           <!-- 真正的页面路径 = 前缀 + 去掉后缀名的页面名称 + 后缀 -->

           <!-- 前缀 -->

           <property name="prefix" value="/WEB-INF/jsp/"></property>

           <!-- 后缀 -->

           <property name="suffix" value=".jsp"></property>

        </bean>

     

        <!-- 配置自定义转换器 注意: 一定要将自定义的转换器配置到注解驱动上 -->

        <bean id="conversionService"

            class="org.springframework.format.support.FormattingConversionServiceFactoryBean">

           <property name="converters">

               <set>

                  <!-- 指定自定义转换器的全路径名称 -->

                  <bean

                      class="com.witwicky.controller.convert.CustomGlobalStrToDateConverter" />

               </set>

           </property>

        </bean>

     

    </beans>

    web.xml

             spring监听器 用于服务器启动时同时启动spring

             springMVC请求处理器 DispatchServlet

             统一编码的过滤器

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns="http://java.sun.com/xml/ns/javaee"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

        id="WebApp_ID" version="2.5">

       

        <!-- 加载spring容器 -->

        <context-param>

           <param-name>contextConfigLocation</param-name>

           <param-value>classpath:ApplicationContext-*.xml</param-value>

        </context-param>

        <listener>

            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

        </listener>

     

        <!-- springmvc前端控制器 -->

        <servlet>

           <servlet-name>springMvc</servlet-name>

           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

           <init-param>

               <param-name>contextConfigLocation</param-name>

               <param-value>classpath:SpringMvc.xml</param-value>

           </init-param>

           <!-- 在tomcat启动的时候就加载这个servlet -->

           <load-on-startup>1</load-on-startup>

        </servlet>

        <servlet-mapping>

           <servlet-name>springMvc</servlet-name>

           <!-- *.action 代表拦截后缀名为.action结尾的 / 拦截所有但是不包括.jsp /* 拦截所有包括.jsp -->

           <url-pattern>*.action</url-pattern>

        </servlet-mapping>

     

        <!-- 配置Post请求乱码 -->

        <filter>

           <filter-name>CharacterEncodingFilter</filter-name>

            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

           <init-param>

               <param-name>encoding</param-name>

               <param-value>utf-8</param-value>

           </init-param>

        </filter>

        <filter-mapping>

           <filter-name>CharacterEncodingFilter</filter-name>

           <url-pattern>/*</url-pattern>

        </filter-mapping>

       

    </web-app>

  • 相关阅读:
    【独家】K8S漏洞报告 | 近期bug fix解读
    idou老师教你学Istio 29:Envoy启动流程
    idou老师教你学Istio 28:istio-proxy check 的缓存
    idou老师教你学Istio :5分钟简析Istio异常检测
    idou老师教你学Istio 27:解读Mixer Report流程
    idou老师教你学Istio 26:如何使用Grafana进行可视化监控
    idou老师教你学Istio 25:如何用istio实现监控和日志采集
    idou老师教你学Istio 24:如何在Istio使用Prometheus进行监控
    idou老师教你学Istio 23 : 如何用 Istio 实现速率限制
    idou老师教你学Istio 22 : 如何用istio实现调用链跟踪
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/7787100.html
Copyright © 2020-2023  润新知