• SSM框架简单整合


    导入jar包

      <dependencies>
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.13</version>
         <scope>test</scope>
       </dependency>
       <!--spring 核心包-->
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-beans</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-context</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-core</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-expression</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-test</artifactId>
         <version>5.2.5.RELEASE</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-web</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-webmvc</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-orm</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-jdbc</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-tx</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <!--数据库连接-->
       <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>8.0.13</version>
       </dependency>
       <!--数据库连接池-->
       <dependency>
         <groupId>com.mchange</groupId>
         <artifactId>c3p0</artifactId>
         <version>0.9.5.2</version>
       </dependency>
       <!-- spring aop开发包 -->
       <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-aop</artifactId>
         <version>5.2.5.RELEASE</version>
       </dependency>
       <dependency>
         <groupId>aopalliance</groupId>
         <artifactId>aopalliance</artifactId>
         <version>1.0</version>
       </dependency>
       <dependency>
         <groupId>org.aspectj</groupId>
         <artifactId>aspectjweaver</artifactId>
         <version>1.9.5</version>
         <scope>runtime</scope>
       </dependency>
       <dependency>
         <groupId>org.aspectj</groupId>
         <artifactId>aspectjrt</artifactId>
         <version>1.9.5</version>
       </dependency>
       <!--mybatis spring-->
       <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis-spring</artifactId>
         <version>2.0.4</version>
       </dependency>
       <!--mybatis-->
       <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis</artifactId>
         <version>3.5.5</version>
       </dependency>
       <!--映入json-->
       <dependency>
         <groupId>org.codehaus.jackson</groupId>
         <artifactId>jackson-mapper-asl</artifactId>
         <version>1.9.13</version>
       </dependency>

       <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
         <scope>provided</scope>
       </dependency>

       <!-- 格式化对象-->
       <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>1.2.62</version>
       </dependency>
       <dependency>
         <groupId>org.ow2.asm</groupId>
         <artifactId>asm</artifactId>
         <version>8.0.1</version>
       </dependency>
       <dependency>
         <groupId>cglib</groupId>
         <artifactId>cglib</artifactId>
         <version>3.3.0</version>
       </dependency>
       <!--日志-->
       <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <version>1.18.8</version>
         <scope>provided</scope>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-log4j12</artifactId>
         <version>1.7.21</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
         <version>1.7.21</version>
       </dependency>
       <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.17</version>
       </dependency>
       <!-- JSTL标签类 -->
       <dependency>
         <groupId>javax.servlet.jsp.jstl</groupId>
         <artifactId>jstl</artifactId>
         <version>1.2</version>
       </dependency>
     </dependencies>

    mybatis配置文件(可以不需要)

    <configuration>
       <settings>
           <!--开启全局的懒加载-->
           <setting name="lazyLoadingEnabled" value="true"/>
           <!--关闭立即加载,其实不用配置,默认为false-->
           <setting name="aggressiveLazyLoading" value="false"/>
           <!--开启Mybatis的sql执行相关信息打印-->
           <setting name="logImpl" value="STDOUT_LOGGING" />
       </settings>
    </configuration>

    spring-mybatis配置文件(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:aop="http://www.springframework.org/schema/aop"
          xmlns:tx="http://www.springframework.org/schema/tx"
          xmlns:context="http://www.springframework.org/schema/context"
          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.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-4.0.xsd">

       <!-- 引入配置文件 -->
       <context:property-placeholder location="classpath:db.properties"/>
       <!--配置数据库连接池信息-->
       <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
           <property name="driverClass" value="${driver}"/>
           <property name="jdbcUrl" value="${url}"/>
           <property name="user" value="${user}"/>
           <property name="password" value="${password}"/>
       </bean>
       
       <!-- 配置session工厂 -->
       <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
           <property name="dataSource" ref="dataSource" />
           <!-- 如果没有mybatis的配置文件,则不需要 -->
           <property name="configLocation" value="classpath:mybatis-config.xml"/>
           <!--配置扫描式加载SQL映射文件Mapper.xml,需要去掉mybatis-config中配置的 Mappers-->
           <property name="mapperLocations" value="classpath:mappers/*.xml"/>
       </bean>
       
      <!-- 配置SessionTemplate,已封装了繁琐的数据操作,提交事务都不用做了-->
       <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
           <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
       </bean>

       <!-- 配置事务管理器,管理数据源事务处理 -->
       <bean id="transactionManager"
             class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
           <property name="dataSource" ref="dataSource" />
       </bean>

       <!-- 配置事务通知 -->
       <tx:advice id="advice">
           <tx:attributes>
         <!-- 默认只处理运行时异常,可加rollback-for="Exception/Throwable"等处理所有异常或包括错误 -->
               <tx:method name="insert*" rollback-for="Exception" />
               <tx:method name="update*" rollback-for="Exception" />
               <tx:method name="delete*" rollback-for="Exception" />
               <tx:method name="*" propagation="SUPPORTS" />
           </tx:attributes>
       </tx:advice>
       <!-- 配置切面织入的范围,后边要把事务边界定在service层 -->
       <aop:config>
           <aop:advisor advice-ref="advice" pointcut="execution(* hjy.service.*.*(..))" />
       </aop:config>

       <!-- 自动扫描组件,要把controller去除,他们是在spring-mvc.xml中配置,如果不去除会影响事务管理-->
       <context:component-scan base-package="hjy">
           <context:exclude-filter type="annotation"
                                   expression="org.springframework.stereotype.Controller" />
       </context:component-scan>

       <!-- 配置 转换器,对于在basePackage设置的包(包括子包)下的接口类,
       如果接口类的全类名(Mapper.java)在Mapper.xml文件中和定义过命名空间一致,将被转换成spring的BEAN,
    在调用的地方通过@Autowired方式将可以注入接口实例,不需要实际的dao层实现 -->
       <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
           <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
           <property name="basePackage" value="hjy.dao" />
       </bean>

       <!--开启aop注解使用方式-->
       <aop:aspectj-autoproxy/>
    </beans>

    spring-mvc配置文件

    <?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:mvc="http://www.springframework.org/schema/mvc"
          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.2.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-3.2.xsd
          http://www.springframework.org/schema/mvc
          http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

       <!-- 注解驱动,同时开启json格式的支持 -->
       <mvc:annotation-driven>
           <!-- register-defaults="true"表示使用默认的消息转换器 -->
           <mvc:message-converters register-defaults="true">
               <!-- 需要返回json时需要配置 produces = "application/json"。不需要再指定utf-8了-->
               <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                   <property name="supportedMediaTypes">
                       <list>
                  <!-- 这里顺序不能反,一定先写text/html,不然IE执行AJAX时,返回JSON会出现下载文件 -->
                           <value>text/html;charset=UTF-8</value>
                           <value>application/json;charset=UTF-8</value>
                           <value>application/xml;charset=UTF-8</value>
                       </list>
                   </property>
                   <property name="fastJsonConfig">
                       <bean class="com.alibaba.fastjson.support.config.FastJsonConfig">
                           <property name="features">
                               <list>
                                   <value>AllowArbitraryCommas</value>
                                   <value>AllowUnQuotedFieldNames</value>
                                   <value>DisableCircularReferenceDetect</value>
                               </list>
                           </property>
                           <property name="dateFormat" value="yyyy-MM-dd HH:mm:ss"/>
                       </bean>
                   </property>
               </bean>
           </mvc:message-converters>
       </mvc:annotation-driven>
       
       <!-- 扫描所有的controller 但是不扫描service -->
       <context:component-scan base-package="hjy.controller">
           <context:include-filter type="annotation"
                                   expression="org.springframework.stereotype.Controller" />
           <context:exclude-filter type="annotation"
                                   expression="org.springframework.stereotype.Service" />
       </context:component-scan>

       <!-- 静态资源 解析 -->
       <mvc:resources location="/js/" mapping="/js/**" />
       <mvc:resources location="/img/" mapping="/img/**" />

    </beans>

    web.xml配置文件

    <!DOCTYPE web-app PUBLIC
           "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
           "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <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_3_0.xsd
            http://java.sun.com/xml/ns/javaee " version="3.0">
     <!--Spring监听器-->
     <listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
     <!-- 防止Spring内存溢出监听器 -->
     <listener>
         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
     </listener>
     <!--加载spring-mybatis配置文件-->  
     <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:applicationContext.xml</param-value>
     </context-param>

     <!--Mvc分配器-->
     <servlet>
       <servlet-name>mvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:spring-mvc.xml</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
       <async-supported>true</async-supported>
     </servlet>
     <servlet-mapping>
       <servlet-name>mvc</servlet-name>
    <!--RESTful 接口-->
       <url-pattern>/</url-pattern>
     </servlet-mapping>

     <!--中文过滤器-->
     <filter>
       <filter-name>encodingFilter</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>encodingFilter</filter-name>
       <url-pattern>/*</url-pattern>
     </filter-mapping>
    </web-app>

    其他配置文件

    数据库配置文件

    driver = com.mysql.cj.jdbc.Driver
    url = jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
    user = root
    password = 123456

    日志配置文件

    ### 设置日志级别 ###
    log4j.rootLogger = debug,stdout,logfile,errorlog

    ###输出到控制台
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target = System.out
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

    ###输出到日志文件
    log4j.appender.logfile = org.apache.log4j.FileAppender
    log4j.appender.logfile.File = log4j.html
    log4j.appender.logfile.Append = false
    log4j.appender.logfile.Threshold = DEBUG
    log4j.appender.logfile.layout = org.apache.log4j.HTMLLayout
    log4j.appender.logfile.layout.LocationInfo = true
    log4j.appender.logfile.layout.Title= My Log

    ### 保存异常信息到单独文件 ###
    log4j.appender.errorlog = org.apache.log4j.FileAppender
    log4j.appender.errorlog.File = error.log
    log4j.appender.errorlog.Append = true
    log4j.appender.errorlog.Threshold = ERROR
    log4j.appender.errorlog.layout = org.apache.log4j.PatternLayout
    log4j.appender.errorlog.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

     项目结构

     

  • 相关阅读:
    HDU 1982 Kaitou Kid The Phantom Thief (1)
    HDU 1984 Mispelling4
    HDU 2546 饭卡
    HDU 1009 FatMouse' Trade
    在VC 中如何隐藏一个主程序窗口
    .菜单项
    SetClassLong,GetClassLong 动态改变光标
    .窗口捕获鼠标
    .主窗口向子控件发送消息
    线段树 1698 Just a Hook 区间set更新
  • 原文地址:https://www.cnblogs.com/yjh1995/p/14164401.html
Copyright © 2020-2023  润新知