1 正文

1. springboot自动装配原理---
2. springboot整合mbatis-plus
3. springboot整合swagger2
4. springboot整合定时器

2  springboot自动装配原理

2.1  springboot包扫描原理

包建议大家放在主类所在包或者子包。默认包扫描的是主类所在的包以及子包。

主函数 @SpringBootApplication 该注解是一个复合注解,包含@EnableAutoConfiguration,这个注解开启了自动配置功能, 该注解也是一个复合注解,包含AutoConfigurationImportSelector该注解中包含@Import({Registrar.class}),这个注解引入Registrar类,该类中存在registerBeanDefinitions,可以获取扫描的包名。

如果需要人为修改扫描包的名称则需要在主类上@ComponentScan(basepackage={"包名"})

2.2  springboot自动装配原理

主函数在运行会执行一个使用@SpringbootApplication注解的类,该注解是一个复合注解,包含@EnableAutoConfiguration, 该注解开启自动配置功能,该注解也是一个复合注解,包含@Import() 该注解需要导入AutoConfigurationImportSelector类。 该类会加载很多自动装配类,而这些自动装配类完成相应的自动装配原理。

3  springboot 整合 mybatis-plus

3.1 mybatis-plus概述

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

不能替代mybatis ,以后对于单表操作的所有功能,都可以使用mp完成。但是链表操作的功能还得要校验mybatis.

3.2 如何使用mp

(1) 创建表并加入数据

DELETE FROM user;INSERT INTO user (id, name, age, sex) VALUES
(1, '石', 23, '男'),
(2, '乔', 24, '男'),
(3, '王', 21, '男'),
(4, '平', 22, '男');

(2)创建一个springboot工程并引入相关的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.syp</groupId><artifactId>springboot_mybatis-plus</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot_mybatis-plus</name><description>springboot_mybatis-plus</description><properties><java.version>1.8</java.version></properties><dependencies><!--swagger2依赖--><dependency><groupId>com.spring4all</groupId><artifactId>swagger-spring-boot-starter</artifactId><version>1.9.1.RELEASE</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.7.8</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>

(3)  配置数据源

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///db1
spring.datasource.username=root
spring.datasource.password=shi001104

(4)   创建实体类

@Data
@ToString
@NoArgsConstructor
public class User {@TableId(type = IdType.AUTO)   // 自动增长private Integer id;private String name;private Integer age;private String sex;public User(String name, Integer age, String sex) {this.name = name;this.age = age;this.sex = sex;}
}

(5)   创建一个dao接口


public interface UserMapper extends BaseMapper<User> {
}

(6)  为接口生成代理实现类

@SpringBootApplication
@MapperScan(basePackages = "com.syp.mapper")
public class SpringbootMybatisPlusApplication {public static void main(String[] args) {SpringApplication.run(SpringbootMybatisPlusApplication.class, args);}}

(7)  测试

@SpringBootTest
class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// Id查询@Testvoid select() {User user = userMapper.selectById(1);System.out.println(user);}
}

3.3  使用mp完成CRUD

@SpringBootTest
class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// Id查询@Testvoid select() {User user = userMapper.selectById(1);System.out.println(user);}// 增加@Testvoid insect(){User user = new User("李",22,"男");System.out.println(userMapper.insert(user));}// 删除@Testvoid delete(){// 删除一个System.out.println(userMapper.deleteById(4));// 批量删除List<Integer> integers = new ArrayList<>();integers.add(5);integers.add(6);System.out.println(userMapper.deleteBatchIds(integers));}// 修改@Testvoid update(){User user = new User("平",22,"男");user.setId(4);System.out.println(userMapper.updateById(user));}//  查询所有@Testvoid select2(){System.out.println(userMapper.selectList(null)); // null 代表查询所有}}

3.4   使用mp完成条件查询

@SpringBootTest
class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// 各种查询条件@Testvoid select3(){QueryWrapper wrapper = new QueryWrapper();//  wrapper.ge("age",23);wrapper.like("name","石");List list = userMapper.selectList(wrapper);list.forEach(System.out::println);}
}

3.5   联表使用mp的分页对象

@Autowiredprivate UserMapper userMapper;@Testvoid select4(){Page<User> page = new Page<>(1,3);QueryWrapper<User> wrapper=new QueryWrapper<>();wrapper.like("name","石");userMapper.findPage(page,wrapper);System.out.println("当前页的记录"+page.getRecords());System.out.println("获取总页数"+page.getPages());System.out.println("获取总条数"+page.getTotal());}

SpringBoot和Mybatis-Plus相关推荐

  1. Java项目:宠物商城系统(java+Springboot+Maven+mybatis+Vue+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...

  2. Java项目:食品溯源系统(java+Springboot+Maven+mybatis+Vue+mysql+wd)

    源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...

  3. Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括:通知公告,老人管理,护工管理,问答管理等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8. ...

  4. Java项目:基于遗传算法学校排课系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 排课管理,课程管理,讲师管理,班级管理,学生管理,教学资料,学习文档,在线测试,教材列表,教学设计,帮助中心 ...

  5. Java项目:花店商城系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 商品的分类展示,用户的注册登录,购物车,订单结算,购物车加减,后台商品管理,分类管理,订单管理等等功能. 二 ...

  6. Java项目:平行志愿管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 系统管理,招生计划,学生管理,录取结果,自动分配,调剂管理等等. 二.项目运行 环境配置: Jdk1.8 + ...

  7. Java项目:学生管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 学生管理,教师管理,课程管理,成绩管理,系统管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomc ...

  8. Java项目:医院管理系统(java+Springboot+Maven+Mybatis+Vue+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括:医院挂号,退号,缴费,退费,检查申请单开立,科室管理,医生开单,挂号级别,检验项目开立,检查项目开立,医生接诊 ...

  9. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

  10. SpringBoot+MySQL+MyBatis+Shiro+AdminLTE

    SpringBoot+MySQL+MyBatis+Shiro+AdminLTE 转载于:https://www.cnblogs.com/ddwk/p/11595682.html

最新文章

  1. python中将HTTP头部中的GMT时间转换成datetime时间格式
  2. The project cannot be built until build path errors are resolved的解决方法
  3. JetBrains DataGrip工具配置数据库过程详解
  4. windows10下使用virtualenv虚拟技术,管理多个python版本,多个项目包环境
  5. Ruby中的多行注释?
  6. 过去一个月发生了什么,C++再次真香了吗?
  7. 伍哥原创之安装nginx,mysql,php-fpm,redis
  8. A piecture of J2EE Core Patterns
  9. C# 使用 quartz.net 做定时任务
  10. 直线插补算法---matlab仿真程序
  11. 写给2017年报名海风的同学
  12. 游戏私服频繁被DDOS攻击怎么办
  13. 陈臣java_小菜学设计模式——享元模式
  14. 我们是怎么看中国企业服务的​
  15. 8086寻址方式图解
  16. 512mb内存linux,linux 内存详解
  17. 大数据时代的信息茧房问题
  18. 当 AI 邂逅绘画艺术,能迸发出怎样的火花?
  19. AKG K420 耳机线的维修
  20. 20句黑客经典语录,一个黑客的内心独白

热门文章

  1. 读史鉴今:女人的12种结局
  2. [JZOJ4274] 终章-剑之魂
  3. COGS 613 火车站饭店
  4. cym : BaseQuickAdapter.setOnItemChildClickListener失效点击没反应
  5. java计算机毕业设计糖果销售管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  6. 51单片机调整时钟Proteus仿真
  7. Pxe +ks+ cobbler+ cobbler-web 实现centos6.7,centos7.2无人值守全自动化网络安装系统。
  8. BAPI_PO_CREATE1--单价增大10倍问题
  9. 发现贝叶斯的乐高积木
  10. http协议文字加图解