• 详解:整合SSM


    1.搭建spring

            首先创建模板web模板

            pom.xml文件,引入jar包

    1. <properties>
    2. <spring.version>5.0.2.RELEASE</spring.version>
    3. <slf4j.version>1.6.6</slf4j.version>
    4. <log4j.version>1.2.12</log4j.version>
    5. <mysql.version>5.1.6</mysql.version>
    6. <mybatis.version>3.4.5</mybatis.version>
    7. <jackson.version>2.9.4</jackson.version>
    8. </properties>
    9. <dependencies>
    10. <!--spring-->
    11. <dependency>
    12. <groupId>org.aspectj</groupId>
    13. <artifactId>aspectjweaver</artifactId>
    14. <version>1.6.8</version>
    15. </dependency>
    16. <dependency>
    17. <groupId>org.springframework</groupId>
    18. <artifactId>spring-aop</artifactId>
    19. <version>${spring.version}</version>
    20. </dependency><dependency>
    21. <groupId>org.springframework</groupId>
    22. <artifactId>spring-context</artifactId>
    23. <version>${spring.version}</version>
    24. </dependency>
    25. <dependency>
    26. <groupId>org.springframework</groupId>
    27. <artifactId>spring-web</artifactId>
    28. <version>${spring.version}</version>
    29. </dependency>
    30. <dependency>
    31. <groupId>org.springframework</groupId>
    32. <artifactId>spring-webmvc</artifactId>
    33. <version>${spring.version}</version>
    34. </dependency>
    35. <dependency>
    36. <groupId>org.springframework</groupId>
    37. <artifactId>spring-test</artifactId>
    38. <version>${spring.version}</version>
    39. </dependency>
    40. <dependency>
    41. <groupId>org.springframework</groupId>
    42. <artifactId>spring-tx</artifactId>
    43. <version>${spring.version}</version>
    44. </dependency>
    45. <dependency>
    46. <groupId>org.springframework</groupId>
    47. <artifactId>spring-jdbc</artifactId>
    48. <version>${spring.version}</version>
    49. </dependency>
    50. <dependency>
    51. <groupId>junit</groupId>
    52. <artifactId>junit</artifactId>
    53. <version>4.12</version>
    54. <scope>test</scope>
    55. </dependency>
    56. <dependency>
    57. <groupId>mysql</groupId>
    58. <artifactId>mysql-connector-java</artifactId>
    59. <version>${mysql.version}</version>
    60. </dependency>
    61. <dependency>
    62. <groupId>javax.servlet</groupId>
    63. <artifactId>servlet-api</artifactId>
    64. <version>2.5</version>
    65. <scope>provided</scope>
    66. </dependency>
    67. <dependency>
    68. <groupId>javax.servlet.jsp</groupId>
    69. <artifactId>jsp-api</artifactId>
    70. <version>2.0</version>
    71. <scope>provided</scope>
    72. </dependency>
    73. <dependency>
    74. <groupId>jstl</groupId>
    75. <artifactId>jstl</artifactId>
    76. <version>1.2</version>
    77. </dependency>
    78. <!--log start-->
    79. <dependency>
    80. <groupId>log4j</groupId>
    81. <artifactId>log4j</artifactId>
    82. <version>${log4j.version}</version>
    83. </dependency>
    84. <dependency>
    85. <groupId>org.slf4j</groupId>
    86. <artifactId>slf4j-api</artifactId>
    87. <version>${slf4j.version}</version>
    88. </dependency>
    89. <dependency>
    90. <groupId>org.slf4j</groupId>
    91. <artifactId>slf4j-log4j12</artifactId>
    92. <version>${slf4j.version}</version>
    93. </dependency>
    94. <!-- log end-->
    95. <dependency>
    96. <groupId>org.mybatis</groupId>
    97. <artifactId>mybatis</artifactId>
    98. <version>${mybatis.version}</version>
    99. </dependency>
    100. <dependency>
    101. <groupId>org.mybatis</groupId>
    102. <artifactId>mybatis-spring</artifactId>
    103. <version>1.3.0</version>
    104. </dependency>
    105. <!--连接池-->
    106. <dependency>
    107. <groupId>com.alibaba</groupId>
    108. <artifactId>druid</artifactId>
    109. <version>1.1.10</version></dependency>
    110. <dependency>
    111. <groupId>org.mybatis.generator</groupId>
    112. <artifactId>mybatis-generator-core</artifactId>
    113. <version>1.3.5</version>
    114. </dependency>
    115. <dependency>
    116. <groupId>com.fasterxml.jackson.core</groupId>
    117. <artifactId>jackson-core</artifactId>
    118. <version>${jackson.version}</version>
    119. </dependency>
    120. <dependency>
    121. <groupId>com.fasterxml.jackson.core</groupId>
    122. <artifactId>jackson-databind</artifactId>
    123. <version>${jackson.version}</version>
    124. </dependency>
    125. <dependency>
    126. <groupId>com.github.pagehelper</groupId>
    127. <artifactId>pagehelper</artifactId>
    128. <version>5.1.10</version>
    129. </dependency>
    130. <dependency>
    131. <groupId>cn.hutool</groupId>
    132. <artifactId>hutool-all</artifactId>
    133. <version>5.2.3</version>
    134. </dependency>
    135. <dependency>
    136. <groupId>org.thymeleaf</groupId>
    137. <artifactId>thymeleaf-spring4</artifactId>
    138. <version>3.0.9.RELEASE</version>
    139. </dependency>
    140. </dependencies>
    141. <build>
    142. <finalName>ssm</finalName>
    143. <pluginManagement>
    144. <plugins>
    145. <plugin>
    146. <groupId>org.apache.maven.plugins</groupId>
    147. <artifactId>maven-compiler-plugin</artifactId>
    148. <version>3.2</version>
    149. <configuration>
    150. <source>1.8</source>
    151. <target>1.8</target>
    152. <encoding>UTF-8</encoding>
    153. <showWarnings>true</showWarnings>
    154. </configuration>
    155. </plugin>
    156. </plugins>
    157. </pluginManagement>
    158. <plugins>
    159. <plugin>
    160. <groupId>org.mybatis.generator</groupId>
    161. <artifactId>mybatis-generator-maven-plugin</artifactId>
    162. <version>1.3.5</version>
    163. <!--告诉插件,配置文件所在的位置-->
    164. <configuration>
    165. <configurationFile>src/main/resources/mbg.xml</configurationFile>
    166. <verbose>true</verbose>
    167. <overwrite>true</overwrite>
    168. </configuration>
    169. </plugin>
    170. </plugins>
    171. </build>

            创建一个model包,在创建一个User实体类 

    1. @Data
    2. public class User {
    3. private Integer id;
    4. private String username ;
    5. private String password;
    6. private String sex;
    7. private Integer age;
    8. }

            创建一个service包,在创建一个UserService接口

    1. @Service
    2. public interface UserService {
    3. public List findAll();
    4. }

            在service包下创建一个serviceImpl包,在其包下创建一个UserServiceImpl实现类

    1. @Service
    2. public class UserServiceImpl implements UserService {
    3. @Autowired
    4. private UserDao userDao;
    5. @Override
    6. public List findAll(){
    7. System.out.println("我说service层");
    8. return this.userDao.findAll();
    9. }
    10. }

            在resources下创建一个spring.xml

    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. 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">
    6. <!--开启对注解的扫描-->
    7. <context:component-scan base-package="com.qcby"></context:component-scan>
    8. <!--加载数据库配置文件-->
    9. <context:property-placeholder location="classpath:jdbc.properties"/>
    10. <!--配置数据库连接池-->
    11. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    12. <property name="driverClassName" value="${jdbc.driver}"/>
    13. <property name="url" value="${jdbc.url}"/>
    14. <property name="username" value="${jdbc.username}"/>
    15. <property name="password" value="${jdbc.password}"/>
    16. </bean>
    17. <!--spring整合mybatis-->
    18. <bean id="SqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
    19. <!--注入数据库连接池-->
    20. <property name="dataSource" ref="dataSource"/>
    21. <!--扫描entity,配置entity包下类的别名-->
    22. <property name="typeAliasesPackage" value="com.qcby.model"/>
    23. <!--扫描sql配置文件,mapper文件夹中的xml文件-->
    24. <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    25. </bean>
    26. <!--配置扫描Dao接口包,动态实现Dao接口,注入到ioc容器-->
    27. <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    28. <property name="basePackage" value="com.qcby.dao"/>
    29. </bean>
    30. </beans>

      

    2.搭建SpringMvc

            修改web.xml文件

    1. <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    4. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    5. <!--不拦截所有是html的页面请求 下面的补充,就是如果是html不会打到DispatcherServlet中-->
    6. <servlet-mapping>
    7. <servlet-name>default</servlet-name>
    8. <url-pattern>*.html</url-pattern>
    9. </servlet-mapping>
    10. <!--用来表示我们想要访问的标签-->
    11. <servlet>
    12. <servlet-name>DispatcherServlet</servlet-name>
    13. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    14. <!--当一旦有请求过来的时候,初始化springMvc-->
    15. <init-param>
    16. <param-name>contextConfigLocation</param-name>
    17. <param-value>classpath:SpringMvc.xml</param-value>
    18. </init-param>
    19. </servlet>
    20. <!--标识号servlet地址-->
    21. <servlet-mapping>
    22. <servlet-name>DispatcherServlet</servlet-name>
    23. <url-pattern>/</url-pattern>
    24. </servlet-mapping>
    25. <!--配置开启项目时打开的主页面-->
    26. <welcome-file-list>
    27. <welcome-file>/index.html</welcome-file>
    28. </welcome-file-list>
    29. <filter>
    30. <filter-name>encodingFilter</filter-name>
    31. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    32. <async-supported>true</async-supported>
    33. <init-param>
    34. <param-name>encoding</param-name>
    35. <param-value>UTF-8</param-value>
    36. </init-param>
    37. </filter>
    38. <filter-mapping>
    39. <filter-name>encodingFilter</filter-name>
    40. <url-pattern>/*</url-pattern>
    41. </filter-mapping>
    42. <!--配置Spring的监听器-->
    43. <display-name>Archetype Created Web Application</display-name>
    44. <listener>
    45. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    46. </listener>
    47. <!--配置加载类路径的配置文件-->
    48. <context-param>
    49. <param-name>contextConfigLocation</param-name>
    50. <param-value>classpath:Spring.xml</param-value>
    51. </context-param>
    52. </web-app>

            创建一个index.html

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>首页</title>
    6. </head>
    7. <body>
    8. <a href="/SSMTest/hello" >入门程序</a>
    9. <h1>我是主页面</h1>
    10. </body>
    11. </html>

            在resources中创建一个SpringMVC.xml

    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:mvc="http://www.springframework.org/schema/mvc"
    6. 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">
    7. <!--开启对注解的扫描-->
    8. <context:component-scan base-package="com.qcby"></context:component-scan>
    9. <!--处理器映射器-->
    10. <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    11. <!--处理器适配器-->
    12. <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    13. <!--配置视图解析器-->
    14. <bean id="viewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
    15. <property name="order" value="1"/>
    16. <property name="characterEncoding" value="UTF-8"/>
    17. <property name="templateEngine" ref="templateEngine"/>
    18. </bean>
    19. <!-- templateEngine -->
    20. <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
    21. <property name="templateResolver" ref="templateResolver"/>
    22. </bean>
    23. <bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
    24. <!--目录-->
    25. <property name="prefix" value="/html/" />
    26. <!--后缀名-->
    27. <property name="suffix" value=".html" />
    28. <property name="templateMode" value="HTML5"/>
    29. </bean>
    30. <!-- 配置spring开启注解mvc的支持 默认就是开启的 ,要想让其他组件(不包含映射器、适配器、处理器)生效就必须需要配置了-->
    31. <mvc:annotation-driven/>
    32. </beans>

            创建一个controller包,里面创建一个UserController类(相当于servlet)

    1. @Controller
    2. public class UserController {
    3. @Autowired
    4. private UserService userService;
    5. //每个方法也叫作处理器
    6. /*@RequestMapping("/run")
    7. public void run(){
    8. }*/
    9. /**
    10. * 处理超链接发出来的请求
    11. *
    12. * @param model 模型
    13. * @return {@link String}
    14. */
    15. @RequestMapping(path = "/hello")
    16. public String sayHello(Model model){
    17. System.out.println("方法执行了。。。。");
    18. List<User> accounts = userService.findAll();
    19. for (User user:accounts
    20. ) {
    21. System.out.println(user.toString());
    22. }
    23. model.addAttribute("msg","hello,springmvc");
    24. return "suc";
    25. }
    26. }

            在webapp下创建一个包html,除了index.html,其他所有的html都要放在这个包下,所以在里面创建suc.html

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>进入</title>
    6. </head>
    7. <body>
    8. <h1>Hello<b th:text="${msg}"></b></h1>
    9. </body>
    10. </html>

    .3.整合mybatis

            先创建一个jdbc.properties

    1. jdbc.driver=com.mysql.jdbc.Driver
    2. jdbc.url=jdbc:mysql://localhost:3306/mybatis_demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
    3. jdbc.username=root
    4. jdbc.password=123456

            创建dao层,创建一个dao包,创建一个UserDao类

    1. public interface UserDao {
    2. public List findAll();
    3. }

            在resources创建一个mapper包,在其下创建一个UserDao.xml

    1. "1.0" encoding="UTF-8"?>
    2. mapper
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5. <mapper namespace="com.qcby.dao.UserDao">
    6. <select id="findAll" resultType="com.qcby.model.User">
    7. select * from User;
    8. select>
    9. mapper>

            

     

  • 相关阅读:
    根据MediatR的Contract Messages自动生成Minimal WebApi接口
    嵌入式简介
    部署个人静态网站到阿里云服务器(含域名解析)
    盲盒经济为什么能火
    限流及及常用解决方案
    [附源码]计算机毕业设计springboot高校车辆管理系统
    冰蝎Behinder无法打开,冰蝎Behinder双击无法打开
    ubuntu-samba创建
    linux篇【5】:环境变量,程序地址空间
    1704. 判断字符串的两半是否相似
  • 原文地址:https://blog.csdn.net/weixin_53170971/article/details/126759893