Java(一百四十一)SSM框架整合(一)基本配置

88 阅读2分钟

SSM:也就是我们常说的Spring + SpingMVC + Mybaits

 

SSMP:也就是我们常说的Spring + SpingMVC + Mybaits Plus

 

Mybaits Plus目前还没有接触到。

这里我来做一个SSM框架的整合。

 

一:添加依赖

1:myBatis

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.38</version>
 </dependency>
 <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
 <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.2.4</version>
 </dependency>
 
 <dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>3.4.6</version>
 </dependency>

 

2:SpringMVC

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>4.3.18.RELEASE</version>
 </dependency>

 

3:Spring对orm(持久层)的支持

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-orm</artifactId>
   <version>4.3.18.RELEASE</version>
 </dependency>

 

4:Mybatis和Spring的关联

<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis-spring</artifactId>
   <version>2.0.6</version>
 </dependency>

 

5:其他配置

<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.12.3</version>
 </dependency>
 <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>3.1.0</version>
 </dependency>
 <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
 <dependency>
   <groupId>org.hibernate.validator</groupId>
   <artifactId>hibernate-validator</artifactId>
   <version>6.2.0.Final</version>
 </dependency>

 

二:在web.xml中配置

配置SpringMVC的前端控制器

配置隐藏方法过滤器

配置编码过滤器

配置Spring的监听器

配置Spring的配置文件位置

Web.xml文件所在位置是:src\main\webapp\WEB-INF\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>
   <display-name>Archetype Created Web Application</display-name>
   <!-- spring框架配置文件 -->
   <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath:applicationContext.xml</param-value>
   </context-param>
   <!-- 配置隐藏域方法过滤器 -->
   <filter>
     <filter-name>hiddenHttpMethodFilter</filter-name>
     <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
   </filter>
   <!-- 编码过滤器 -->
   <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>hiddenHttpMethodFilter</filter-name>
     <url-pattern>/*</url-pattern>
   </filter-mapping>
   <filter-mapping>
     <filter-name>encodingFilter</filter-name>
     <url-pattern>/*</url-pattern>
   </filter-mapping>
 
   <!-- 配置监听器 -->
   <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
   <!-- 配置servlet配置文件等 -->
   <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-servlet.xml</param-value>
     </init-param>
   </servlet>
   <servlet-mapping>
     <servlet-name>dispatcherServlet</servlet-name>
     <url-pattern>/</url-pattern>
   </servlet-mapping>
 </web-app>

具体配置是啥,代码中都有注释。参照即可。

 

三:Spring配置applicationContext.xml

那现在有一个小问题,Spring有一个配置文件,SpringMVC一个配置文件,那Sping的配置文件中配置什么,SpringMVC的配置文件中配置什么呢?

Spring中配置数据库连接(SqlSessionFactory)、声明式事务、扫描所有的service。简单讲就是将service下的所有东西都配置好。

具体代码如下所示:

<?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: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/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd">
     <!--
         扫描所有带注解的类
     -->
     <context:component-scan base-package="com" >
         <!-- 排除Controller注解 -->
         <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
     </context:component-scan>
     <!--
         数据源
     -->
     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
         <property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf8"></property>
         <property name="username" value="root"></property>
         <property name="password" value="root"></property>
     </bean>
     <!--
         SqlSessionFactory
     -->
     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
         <property name="dataSource" ref="dataSource"></property>
     </bean>
     <!--
         扫描所有mapper
     -->
     <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
         <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
         <property name="basePackage" value="com.woniu.dao"></property>
     </bean>
     <!--
         事务管理器
     -->
     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         <property name="dataSource" ref="dataSource"></property>
     </bean>
     <!--
         声明式事务
     -->
     <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
 </beans>

 

四:SpringMVC配置springmvc-servlet.xml

SpringMVC的配置文件主要就是配置controller

具体代码如下所示:

<?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
        http://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
     <!--
         扫描所有的Controller
     -->
     <context:component-scan base-package="com.controller"></context:component-scan>
     <mvc:annotation-driven validator="validator"></mvc:annotation-driven>
     <mvc:default-servlet-handler></mvc:default-servlet-handler>
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <property name="prefix" value="/"></property>
         <property name="suffix" value=".jsp"></property>
     </bean>
     <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
         <property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
     </bean>
     <!-- 配置拦截器   -->
     <mvc:interceptors>
         <mvc:interceptor>
             <mvc:mapping path="/**"/>
             <mvc:exclude-mapping path="/login/**"/>
             <bean class="com.utils.LoginInterceptor"></bean>
         </mvc:interceptor>
     </mvc:interceptors>
 </beans>

五:逆向生成数据库表的myBatis的xml文件

这部分没啥可说的,参考《Java (一百二十四) Spring 常用注解和 myBatis 注解》即可。

逆向生成之后,文件结构如下所示:

2.png

 

至此,SSM框架整合的配置部分就完成了。下一篇中我们将编写service和controller中的代码。

 

有好的建议,请在下方输入你的评论。