主要知识点
- 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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://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分页对象 |
