zoukankan      html  css  js  c++  java
  • SSM整合模板

    环境搭建

    1. 新建一个Maven项目,SSM ,右键项目名添加web的支持。

    2. 导入相关的pom依赖。

    <dependencies>
    
        <!--Junit-->
    
        <dependency>
    
            <groupId>junit</groupId>
    
            <artifactId>junit</artifactId>
    
            <version>4.12</version>
    
        </dependency>
    
        <!--Log4j-->
        <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
        </dependency>
    
        <!--数据库驱动-->
    
        <dependency>
    
            <groupId>mysql</groupId>
    
            <artifactId>mysql-connector-java</artifactId>
    
            <version>5.1.47</version>
    
        </dependency>
    
        <!-- 数据库连接池 -->
    
        <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>druid</artifactId>
              <version>1.1.10</version>
        </dependency>
    
        <!--Servlet - JSP -->
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.0.1</version>
            </dependency>
    
        <dependency>
    
            <groupId>javax.servlet.jsp</groupId>
    
            <artifactId>jsp-api</artifactId>
    
            <version>2.2</version>
    
        </dependency>
    
        <dependency>
    
            <groupId>javax.servlet</groupId>
    
            <artifactId>jstl</artifactId>
    
            <version>1.2</version>
    
        </dependency>
    
        <!--Mybatis-->
    
        <dependency>
    
            <groupId>org.mybatis</groupId>
    
            <artifactId>mybatis</artifactId>
    
            <version>3.5.2</version>
    
        </dependency>
    
        <dependency>
    
            <groupId>org.mybatis</groupId>
    
            <artifactId>mybatis-spring</artifactId>
    
            <version>2.0.2</version>
    
        </dependency>
    
        <!--Spring-->
    
        <dependency>
    
            <groupId>org.springframework</groupId>
    
            <artifactId>spring-webmvc</artifactId>
    
            <version>5.1.9.RELEASE</version>
    
        </dependency>
    
        <dependency>
    
            <groupId>org.springframework</groupId>
    
            <artifactId>spring-jdbc</artifactId>
    
            <version>5.1.9.RELEASE</version>
    
        </dependency>
    
        <dependency>
    
            <groupId>org.aspectj</groupId>
    
            <artifactId>aspectjweaver</artifactId>
    
            <version>1.9.4</version>
    
        </dependency>
    
    </dependencies>
    

    3. Maven资源过滤设置

    <build>
    
        <resources>
    
            <resource>
    
                <directory>src/main/java</directory>
    
                <includes>
    
                    <include>**/*.properties</include>
    
                    <include>**/*.xml</include>
    
                </includes>
    
                <filtering>false</filtering>
    
            </resource>
    
            <resource>
    
                <directory>src/main/resources</directory>
    
                <includes>
    
                    <include>**/*.properties</include>
    
                    <include>**/*.xml</include>
    
                </includes>
    
                <filtering>false</filtering>
    
            </resource>
    
        </resources>
    
    </build>
    

    4. 建立基本结构和配置框架

    • com.hsz.pojo
    • com.hsz.dao
    • com.hsz.service
    • com.hsz.controller

    5. 配置文件

    • database.properties
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/ssm?useSSL=false&useUnicode=true&characterEncoding=UTF-8
    jdbc.username=root
    jdbc.password=root
    
    • log4j.properties
    #将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
    log4j.rootLogger=DEBUG,console,file
    
    #控制台输出的相关设置
    log4j.appender.console = org.apache.log4j.ConsoleAppender
    log4j.appender.console.Target = System.out
    log4j.appender.console.Threshold=DEBUG
    log4j.appender.console.layout = org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
    
    #文件输出的相关设置
    log4j.appender.file = org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=./log/kuang.log
    log4j.appender.file.MaxFileSize=10mb
    log4j.appender.file.Threshold=DEBUG
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
    
    #日志输出级别
    log4j.logger.org.mybatis=DEBUG
    log4j.logger.java.sql=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.ResultSet=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG
    
    • Mapper.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    
    <!DOCTYPE mapper
    
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="com.hsz.dao.BookMapper">
    
    
    
    </mapper>
    
    • mybatis-config.xml
    <?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>
    
        <settings>
            
            <!--log4j的日志工厂实现-->
    
            <setting name="logImpl" value="LOG4J"/>
    
        </settings>
    
        <!--别名-->
        <typeAliases>
    
            <package name="com.hsz.pojo"/>
    
        </typeAliases>
    
    </configuration>
    
    • web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    
             http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    
             version="4.0">
    
      <!--启动Spring的容器-->
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <!--设置配置文件的路径-->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
    
      <!--配置前端控制器-->
      <servlet>
        <servlet-name>dispatcherServlet</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>
        <load-on-startup>1</load-on-startup>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
      <!--解决中文乱码的过滤器,一定要放在所有过滤器之前-->
      <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>
    
      <!--使用Rest风格的URL,将页面普通的post请求转为指定的delete或者put请求-->
      <filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    
    </web-app>
    
    
    • 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.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.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx.xsd">
    
        <!--开启注解扫描,希望处理service和dao 不处理controller-->
        <context:component-scan base-package="com.hsz">
    
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    
        </context:component-scan>
    
        <!--数据源配置#########################################################################-->
        <!--关联数据库文件-->
        <context:property-placeholder location="classpath:database.properties"/>
    
        <!--配置连接池-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    
            <property name="driverClassName" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
    
        </bean>
    
        <!--##################################################################################-->
    
        <!--spring整合mybatis框架***************************************************************-->
    
        <!--配置SqlSessionFactory工厂-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    
            <!--指定mybatis全局配置文件的位置-->
            <property name="configLocation" value="classpath:mybatis-config.xml"/>
            <!--配置数据源-->
            <property name="dataSource" ref="dataSource"/>
            <!--指定mybatis,mapper文件的位置-->
            <property name="mapperLocations" value="classpath:com/hsz/dao/*.xml"/>
    
        </bean>
        <!--配置扫描器,将mybatis接口的实现加入到IOC容器中-->
        <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    
            <!--扫描所有dao接口的实现,接入到IOC容器中-->
            <property name="basePackage" value="com.hsz.dao"/>
    
        </bean>
        <!--***********************************************************************************************-->
    
        <!--配置Spring框架声明式事务管理+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
        <!--配置事务管理器-->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    
            <!--控制数据源-->
            <property name="dataSource" ref="dataSource"/>
    
        </bean>
    
        <!--开启基于注解的事务,使用xml配置形式的事务(必要主要的都是使用配置式)-->
        <aop:config>
    
            <!--切入点表达式-->
            <aop:pointcut expression="execution(* com.hsz.service.AccountServiceImpl.*(..))" id="txPoint"/>
            <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
    
        </aop:config>
    
        <!--配置事务增强,事务如何切入-->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
    
            <tx:attributes>
                <tx:method name="find" read-only="true"/>
                <tx:method name="*" isolation="DEFAULT"/>
            </tx:attributes>
    
        </tx:advice>
        <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
    </beans>
    
    • springmvc.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/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           https://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc
           https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <!--开启注解扫描,只扫描controller注解-->
        <context:component-scan base-package="com.hsz" use-default-filters="false">
    
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    
        </context:component-scan>
    
        <!--配置视图解析器-->
        <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    
            <property name="prefix" value="/WEB-INF/pages/"/>
            <property name="suffix" value=".jsp"/>
    
        </bean>
    
        <!--过滤静态资源,将springMVC不能处理的请求交给tomcat-->
        <mvc:default-servlet-handler/>
    
        <!--开启springMVC注解支持 JSR303校验、Ajax、映射动态请求-->
        <mvc:annotation-driven/>
        
    </beans>
    
  • 相关阅读:
    LeetCode15 3Sum
    LeetCode10 Regular Expression Matching
    LeetCode20 Valid Parentheses
    LeetCode21 Merge Two Sorted Lists
    LeetCode13 Roman to Integer
    LeetCode12 Integer to Roman
    LeetCode11 Container With Most Water
    LeetCode19 Remove Nth Node From End of List
    LeetCode14 Longest Common Prefix
    LeetCode9 Palindrome Number
  • 原文地址:https://www.cnblogs.com/ITHSZ/p/13925668.html
Copyright © 2011-2022 走看看