ssm 整合

新建一个maven项目

1. 导入依赖

  1. <dependencies>
  2. <!--数据库连接池-->
  3. <dependency>
  4. <groupId>com.mchange</groupId>
  5. <artifactId>c3p0</artifactId>
  6. <version>0.9.5.2</version>
  7. </dependency>
  8. <dependency>
  9. <groupId>mysql</groupId>
  10. <artifactId>mysql-connector-java</artifactId>
  11. <version>8.0.25</version>
  12. </dependency>
  13. <!--spring-->
  14. <dependency>
  15. <groupId>org.springframework</groupId>
  16. <artifactId>spring-context</artifactId>
  17. <version>5.1.5.RELEASE</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>org.springframework</groupId>
  21. <artifactId>spring-jdbc</artifactId>
  22. <version>5.1.5.RELEASE</version>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework</groupId>
  26. <artifactId>spring-aspects</artifactId>
  27. <version>5.1.5.RELEASE</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-webmvc</artifactId>
  32. <version>5.1.5.RELEASE</version>
  33. </dependency>
  34. <!--mybatis-->
  35. <dependency>
  36. <groupId>org.mybatis</groupId>
  37. <artifactId>mybatis</artifactId>
  38. <version>3.5.0</version>
  39. </dependency>
  40. <!--整合中间包-->
  41. <dependency>
  42. <groupId>org.mybatis</groupId>
  43. <artifactId>mybatis-spring</artifactId>
  44. <version>2.0.6</version>
  45. </dependency>
  46. <dependency>
  47. <groupId>com.alibaba</groupId>
  48. <artifactId>fastjson</artifactId>
  49. <version>1.2.75</version>
  50. </dependency>
  51. </dependencies>

2. 准备配置文件

先从其他项目中弄这些配置文件过来即可,里面的内容后面再改,先凑齐文件
SSM框架整合 - 图1

3. 配置分发器和监听器

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  5. http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  6. version="4.0">
  7. <display-name>Archetype Created Web Application</display-name>
  8. <!--spring监听器-->
  9. <context-param>
  10. <param-name>contextConfigLocation</param-name>
  11. <param-value>classpath:applicationContext.xml</param-value>
  12. </context-param>
  13. <listener>
  14. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  15. </listener>
  16. <!--springmvc分发器-->
  17. <servlet>
  18. <servlet-name>springmvc</servlet-name>
  19. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  20. <init-param>
  21. <param-name>contextConfigLocation</param-name>
  22. <param-value>classpath:springmvc.xml</param-value>
  23. </init-param>
  24. </servlet>
  25. <servlet-mapping>
  26. <servlet-name>springmvc</servlet-name>
  27. <url-pattern>/</url-pattern>
  28. </servlet-mapping>
  29. </web-app>

4. 建表,写实体类,接口

SSM框架整合 - 图2SSM框架整合 - 图3SSM框架整合 - 图4

5. 开始所有配置文件

mybatis.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <settings>
  7. <setting name="logImpl" value="STDOUT_LOGGING"/>
  8. </settings>
  9. </configuration>

db.properties

  1. driver=com.mysql.cj.jdbc.Driver
  2. url=jdbc:mysql:///test?serverTimezone=Asia/Shanghai
  3. user=root
  4. password=root

applicationContext.xml

  1. 包扫描
  2. 引入 db.properties 文件
  3. 配置数据源
  4. 配置 SqlSessionFactoryBean
  5. 配置接口扫描
  6. 事务管理器

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:aop="http://www.springframework.org/schema/aop"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans
    7. http://www.springframework.org/schema/beans/spring-beans.xsd
    8. http://www.springframework.org/schema/context
    9. http://www.springframework.org/schema/context/spring-context.xsd
    10. http://www.springframework.org/schema/aop
    11. http://www.springframework.org/schema/aop/spring-aop.xsd">
    12. <context:component-scan base-package="com.bdqn"/>
    13. <context:property-placeholder location="classpath:db.properties"/>
    14. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    15. <property name="driverClass" value="${driver}"/>
    16. <property name="jdbcUrl" value="${url}"/>
    17. <property name="user" value="${user}"/>
    18. <property name="password" value="${password}"/>
    19. </bean>
    20. <bean id="factoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
    21. <property name="dataSource" ref="dataSource"/>
    22. <property name="configLocation" value="classpath:mybatis.xml"/>
    23. <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    24. <property name="typeAliasesPackage" value="com.bdqn.entity"/>
    25. </bean>
    26. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    27. <property name="sqlSessionFactoryBeanName" value="factoryBean"/>
    28. <property name="basePackage" value="com.bdqn.dao"/>
    29. </bean>
    30. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    31. <property name="dataSource" ref="dataSource"/>
    32. </bean>
    33. <aop:aspectj-autoproxy/><!--注解aop-->
    34. </beans>

    springmvc.xml

  7. 包扫描

  8. 视图解析器
  9. json数据转换器
  10. 静态资源拦截配置 ```c <?xml version=”1.0” encoding=”UTF-8”?>

    1. <mvc:message-converters>
    2. <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
    3. <property name="supportedMediaTypes">
    4. <list>
    5. <value>application/json;charset=utf-8</value>
    6. </list>
    7. </property>
    8. <property name="features">
    9. <list>
    10. <value>WriteDateUseDateFormat</value>
    11. </list>
    12. </property>
    13. </bean>
    14. </mvc:message-converters>

<a name="cdHTJ"></a>
## 6. mybatis 映射文件
mapper/UserMapper.xml
```c
<?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.bdqn.dao.UserDao">

    <select id="findAll" resultType="user">
        select * from user
    </select>

</mapper>

7. 测试代码

@Service
public class UserService {

    @Autowired
    UserDao dao;

    public List<User> findAll(){
        return dao.findAll();
    }
}
@Controller
public class UserController {

    @Autowired
    UserService service;

    @ResponseBody
    @GetMapping("/list")
    public List<User> list() {
        return service.findAll();
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="/static/jquery-3.4.1.min.js"></script>
</head>
<body>

<script>
    $.getJSON("/list", function (data) {
        console.log(data)
    })
</script>

</body>
</html>

SSM框架整合 - 图5
项目结构如下:
SSM框架整合 - 图6