• SSM框架的整合


    在分别学习了Spring,SpringMVC和Mybatis三大框架之后,接下来最重要的就是这三大框架的整合,那话不多说,直接进入正题。

    1添加jar包

        Spring框架的jar包

        SpringMVC框架的jar包

        Mybatis框架的jar包

        Oracle或者Mysql的驱动包

        C3P0的数据源框架

        Log4j

        Junit

        Mybatis和Spring框架集成的jar包:mybatis-spring-1.3.0.jar

        jstl

     具体如下图所示

    2配置Web.xml

      设置首页

    <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>

      配置过滤器,解决乱码问题

    <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>
            <init-param>
                <param-name>forceEncoding</param-name>
                <param-value>false</param-value>
            </init-param>
        
        </filter>
        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>*.jsp</url-pattern>
        </filter-mapping>

      加载Spring配置文件,项目启动时,创建ApplicationContext对象,实现对项目同一管理,同时配置Spring的监听器,监听当前正在被使用的对象,管理对象的生命周期

    <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-common.xml</param-value>
        </context-param>
        <!-- spring监听,负责监听当前项目正在使用的bean对象 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>

      配置SpringMVC的前置控制器DispatcherServlet,最先获取页面的请求,加载SpringMVC配置的文件

    <!-- 配置springmvc前置控制器: 最先获取用户请求,通过调配其他对象,完成一次请求和响应 -->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <!-- springmvc-servlet.xml默认的存放位置是WEB-INF文件夹下 如果想改变文件的存放路径,
                就使用init-param节点重新指定路径 ,springmvc-servlet.xml文件名中的springmvc是web.xml中
                配置DispatcherServlet的servlet-name的值 ,如果移动springmvc的配置文件,则可以修改文件名
                    -->
                <param-value>classpath:springmvc-common.xml</param-value>
            </init-param>
    
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <!-- url-pattern属性是整个SpringMVC框架的请求的总规则, 请求格式必须先符合这个规则,才能进入SpringMVC框架 
                然后还要符合springmvc-servlet.xml文件中某个控制器bean的name属性格式 -->
            <url-pattern>/</url-pattern>
        </servlet-mapping>

    3 配置jdbc.properties

      配置设置连接数据库的配置信息,若使用Oracle则配置Oracle,若使用Mysql,则配置mysql;这里以Mysql为例

    url=jdbc:mysql://localhost:3306/order_system
    uname=root
    upwd=
    driver=com.mysql.jdbc.Driver

    4 配置Spring-Common.xml文件

      加载jdbc.properties,为Spring注入数据源对象,提供访问数据库的参数

    <!-- 加载jdbc.properties资源文件 -->
        <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>classpath:jdbc.properties</value>
                </list>
            </property>
        </bean>

      注入数据源对象(采用C3P0数据源框架)

    <!-- 注入数据源对象 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="${uname}"></property>
            <property name="password" value="${upwd}"></property>
            <property name="driverClass" value="${driver}"></property>
            <property name="jdbcUrl" value="${url}"></property>
        </bean>

    注意:这里仅仅设置了资源文件中的键对应的值是多少,还可以设置很多高级属性,若想了解,情参照C3P0文档!

      注入mybatis的核心对象sqlSessionFactory,实现数据操作,并交给Spring管理

    <!-- 注入mybatis的核心对象sqlSessionFactory,交给spring管理 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
            <!-- sqlSessionFactory依赖dataSource -->
            <property name="dataSource" ref="dataSource"></property>
            <!-- 加载mybatis的配置文件 -->
            <property name="configLocation" value="classpath:mybatis-config.xml"></property>
            <!--配置mybatis分页插件  -->
            <property name="plugins">
                <bean class="com.github.pagehelper.PageHelper">
                    <!-- 指定当前执行的sql语句的类型: mysql -->
                    <property name="properties" value="dialect=mysql"></property>
                </bean>        
            </property>
        </bean>

    注意:这里多配了一个分页插件,关于这个分页插件若明白,请听下回分解!

      指定Spring框架扫描所有需要注入sqlSessionFactory的接口

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.dao"></property>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" ></property>
        </bean>

      注入事务管理对象,并且开启注解实现事务管理的功能

    <!-- 注入Spring事务管理对象 -->
        <bean id="a"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <!-- 事务管理对象依赖数据源对象 -->
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    
        <!-- 开启使用注解实现事务控制的功能 指定自定义事务管理对象 -->
        <tx:annotation-driven transaction-manager="a" />

    5 配置SpringMVC-common.xml文件

      设置所有编写有注解的类所在包的范围

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

      设置controller业务处理完毕后跳转路径的规则 注入视图解析器

    <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--     在ModelAndView对象中设置的ViewName的前后追加字符串,拼成完成的路径 -->
            <property name="prefix" value="/WEB-INF/jsp/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>

      若自己有业务需求,也可以在里面配置,例如配置全局的转换器和自定义的拦截器等

    <!-- 配置全局的类型转换器 -->
        <bean id="myConverter" class="org.springframework.context.support.ConversionServiceFactoryBean">
            <property name="converters">
                <set>
                    <bean class="com.util.MyDateConverter"></bean>
                </set>
            </property>
        </bean>
    
    
          <!-- 注册自定义的拦截器 -->
          <mvc:interceptors>
              <mvc:interceptor>
                  <mvc:mapping path="/user/*"/>
                  <bean class="com.interceptor.UserInterceptor"></bean>
              </mvc:interceptor>     
          </mvc:interceptors>
          
                <mvc:interceptors>
              <mvc:interceptor>
                  <mvc:mapping path="/admin/*"/>
                  <bean class="com.interceptor.AdminInterceptor"></bean>
              </mvc:interceptor>     
          </mvc:interceptors>

    接下来的就是一些比较简单和常规操作了

    6 配置log4j

    log4j.rootLogger=INFO, Console  
          
    #Console  DEBUG
    log4j.appender.Console=org.apache.log4j.ConsoleAppender  
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  
          
    log4j.logger.java.sql.ResultSet=INFO  
    log4j.logger.org.apache=INFO  
    log4j.logger.java.sql.Connection=DEBUG  
    log4j.logger.java.sql.Statement=DEBUG  
    log4j.logger.java.sql.PreparedStatement=DEBUG

    7配置mybatis-config.xml

    <!-- 设置mybatis自动匹配属性与列名的模式 -->
        <settings>
            <setting name="autoMappingBehavior" value="FULL"/>
        </settings>
        
        <!-- 给实体类命别名 -->
        <typeAliases>
            <!-- name="com.entity" 指定实体类所在的包的全称 -->
            <package name="com.entity"/>
            <package name="com.dao"/>
        </typeAliases>
    
        
        <!-- 加载所有的接口映射文件 -->
        <mappers>
            <mapper resource="com/mapper/AdminMapper.xml" />
            <mapper resource="com/mapper/CatelogMapper.xml" />
            <mapper resource="com/mapper/EmailMapper.xml" />
            <mapper resource="com/mapper/FoodMapper.xml" />
            <mapper resource="com/mapper/MessageMapper.xml" />
            <mapper resource="com/mapper/NoticeMapper.xml" />
            <mapper resource="com/mapper/OrderMapper.xml" />
            <mapper resource="com/mapper/OrdermMapper.xml" />
            <mapper resource="com/mapper/UserMapper.xml" />
            
        </mappers>

    8 编写实体类,接口,service层以及实现层,controller层等等

  • 相关阅读:
    新闻发布项目——Servlet类(doDelNewsServlet )
    新闻发布项目——Servlet类(doDelNewsServlet )
    新闻发布项目——Servlet类(doDelCategoryServlet )
    TCP Operational Overview and the TCP Finite State Machine (FSM) http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF.htm
    tcp state
    定时任务 执行结果
    长连接 短连接 RST报文
    Common non-standard response fields
    借助ltp 逐步程序化实现规则库 文本生成引擎基于规则库和业务词库 去生成文本
    人工智能 大数据 程序 技术 代码 是工具 不是产品 产品驱动
  • 原文地址:https://www.cnblogs.com/1a2b/p/8941479.html
Copyright © 2020-2023  润新知