主要知识点
- SSM整合配置
- MyBatis-Plus配置与应用
- Kaptcha验证码组件使用
- 富文本编辑器wangEditor
- Spring Task任务调度器
1、SSM整合的意义
1.1、什么是整合
- 通过Spring IOC容器管理第三方框架对象,让对框架形成整体。
Spring/Spring MVC/MyBatis是业内最主流的框架搭配
1.2、SSM整合三阶段
Spring与Spring MVC环境配置
- Spring与MyBatis的整合配置
-
2、Spring与Spring MVC环境配置
依赖
spring-webmvc
<dependencies>
<!--引入Spring MVC依赖,Spring底层的其他依赖会进行自动引入-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!--FreeMarker-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!--Jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.11.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.3</version>
</dependency>
</dependencies>
配置DispatcherServlet
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
启用Spring MVC注解模式 ```xml <?xml version=”1.0” encoding=”UTF-8”?> <beans xmlns=”http://www.springframework.org/schema/beans“
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mv="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">
<mvc:message-converters>
<!--解决响应中文乱码问题-->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;character;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
- 配置请求与响应字符集
- 解决请求中文乱码问题
```xml
<!--处理请求的中文乱码问题-->
<filter>
<filter-name>characterFilter</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>characterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 解决响应中文乱码问题
<mvc:annotation-driven>
<mvc:message-converters>
<!--解决响应中文乱码问题-->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;character;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
配置FreeMarker模板引擎
<!--配置FreeMarker模板引擎-->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!--templateLoaderPath属性是FreeMarker脚本存放地址-->
<property name="templateLoaderPath" value="/WEB-INF/ftl"/>
<!--FreeMarker本身参数配置-->
<property name="freemarkerSettings">
<props>
<!--默认编码类型;读取ftl文件时的编码-->
<prop key="defaultEncoding">UTF-8</prop>
</props>
</property>
</bean>
<!--配置视图解析器:决定了使用那种模板引擎对数据进行解析;真正执行的对象是ViewResolver -->
<bean id="ViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<!--配置响应类型,Spring MVC加载FreeMarker片段返回数据的时候所使用-->
<property name="contentType" value="text/html;charset=utf-8"/>
<property name="suffix" value=".ftl"/>
</bean>
配置JSON序列化组件
<mvc:annotation-driven>
<mvc:message-converters>
<!--解决响应中文乱码问题,没有使用模板引擎,直接向客户端输出的时候生效-->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;character;charset=utf-8</value>
<!--对JSON格式的字符串进行转换-->
<value>application/json;charset=utf-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
3、Spring与MyBatis整合配置
依赖mybatis-spring及驱动
配置数据源和连接池
<!--MyBatis与Spring的整合配置-->
<!--2、配置数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/imooc_reader?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"/>
<property name="username" value="root"/>
<property name="password" value="mysqladmin"/>
<property name="initialSize" value="5"/>
<property name="maxActive" value="20"/>
</bean>
配置SqlSessionFactory
- 配置Mapper扫描器
- 创建mybatis-config.xml
整合其他组件
MyBastis-Plus(简称MP)是一个MyBatis的增强工具
- 自动实现Mapper CRUD操作,极致提高数据库开发效率
-
4.1、MyBatis-Plus整合三部曲
pom引入mybatis-plus依赖
- Spring XMl更改配置SqlSessionFactory实现类
-
4.2、MyBatis开发三部曲
创建实体类,@TableName、@TableId、@TableField实现与表字段的映射
- 创建Mapper接口继承BaseMapper(BaseMapper中提供了像新增、修改、删除等方法的声明),BaseMapper要定义泛型,说明对应的实体是 哪一个,创建MapperXML。
-
4.3、MyBatis-Plus核心注解
@TableName-将实体类与表名映射
- @TableId-说明对应属性是表的主键
- @TableField-设置属性与列名的对应关系
4.4、BaseMapper接口核心API
| 方法名 | 用途 | | —- | —- | | insert(entity) | 数据新增,自动生成insert sql,根据@TableId 决定注解生成方式 | | updateById(entity) | 根据主键更新对应对象,自动生成update sql | | deleteById(id) | 根据主键删除数据,自动生成delete sql | | selectById(id) | 根据主键查询对应的实体对象,自动生成select sql | | selectList(queryWrapper) | 根据查询生成器(QueryWrapper)的条件自动生成sql查询返回List集合 | | selectPage(Page,queryWrapper) | 分页查询方法,自动生成分页limit子句,返回IPage分页对象 |