回顾:
异步任务:在子线程下执行的任务称为异步任务.
基于注解:
@EnableAsync :添加到配置类
@Async :添加到需要异步执行的方法上.必须把需要异步执行的代码独立封装为一个方法.
基于编程:
AsyncFactory:异步任务工厂,这个工厂对象有方法返回Runnable异步任务对象.
通过ThreadPoolTaskExecutor任务执行线程池中execute方法来执行runnable异步任务对象.
在yml文件中,通过spring.task.executor.pool.coreSize|maxSize|queueXXX来配置任务执行线程池的配置.
定时任务:
@EnableScheduling :添加到配置类,启动spring-task组件,识别@Scheduled注解,并识别SchedulingConfigurer类型的bean对象.
基于注解:
在任务方法上添加@Scheduled注解,指定cron表达式.在tomcat启动时就可以直接启用全部任务。
基于编程:
从SchedulingConfigurer接口派生子类,进行任务的手工注册。
mybatisplus
(国内苞米豆基于mybatis开发的。有一套中文官网baomidou.com,以下在官网都有)
1.mp目的
为简化mybatis开发而生,只对mybatis做增加,不做任何改变,完全兼容mybatis.
mp针对的单表的大量的curd操作.如果涉及多表级联操作,仍然是原生的mybatis.
mp提供了项目开发中常用的辅助性功能:比如代码生成,id生成,逻辑删除,内嵌分页,版本锁.
引入mp后,在启动服务器时,mp会在内存中生成单表的curd的sql操作语句,运行中的效率相比mybatis基本无损耗.
2.安装环境
(跟着官网一步步来即可)
在springboot框架下:
pom文件中添加如下依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
yml文件
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
url: jdbc:mysql://localhost:3306/704a?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8&useSSL=false
type: com.alibaba.druid.pool.DruidDataSource
启动类中添加MapperScan注解,指定dao接口的包名:
@SpringBootApplication
@MapperScan("com.javasm.*.dao")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3.快速入门
创建实体类,[实体类名与表名一致,成员变量名与字段名保持一致;遵循驼峰式命名;]
com.javasm.sys.entity.Users
//把类名当做表名
//把类中的成员变量名当做表的字段名,自动把驼峰命名转成数据库下划线命名.
//基于反射来解析实体类,生成sql语句
public class SysUser {
private String uid;
private String uname;
private String realName;
private String upwd;
private String uwechat;
private String uemail;
private String userSex;
private String uphone;
//set get
//toString
}
创建da