1. springboot如何整合mybatis
1.引入依赖
<!-- mybatis依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency>2.创建实体类
@Data public class User {private Integer id;private String name;private String password; }3.创建dao接口
//为该接口生成代理实现类 @Mapper public interface UserDao {public User findById(Integer id); }4.映射文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.dao.UserDao"><select id="findById" resultType="com.example.demo.entity.User">select * from user where id=#{id}</select> </mapper>5.配置文件
spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql:///company?serverTimezone=Asia/Shanghai #指定mybatis映射文件所在的路径 mybatis.mapper-locations=classpath:mapper/*.xml
2. springboot如何整合pageHelper
1.依赖
<!-- pageHelper依赖--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.2</version></dependency>#日志 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl2.测试
@Test public void test02(){PageHelper.startPage(1,2);List<User> all = userDao.findAll();PageInfo<User> pageInfo=new PageInfo<>(all);System.out.println("总条数"+pageInfo.getTotal());System.out.println("总页码"+pageInfo.getPages());System.out.println(pageInfo.getList()); }
3. 为何要使用swagger2
在平时开发中,一个好的API文档可以减少大量的沟通成本,还可以帮助新加入项目的同事快速上手业务。大家都知道平时开发时,接口变化总是很多,有了变化就要去维护,也是一件比较头大的事情。尤其是现在前后端分离情况,更容易造成文档和代码不一致。这时,我们可以通过Swagger2来使接口规范,方便维护。
Swagger是一款Restful接口的文档在线自动生成和功能测试功能软件。
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化Restful风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
4. springboot如何整合swagger2
1.依赖
<!-- 引入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.9.6</version></dependency>2.创建 Swagger配置类
@Configuration public class SwaggerConfig {//swagger所有功能都集中在Docket类中,该方法作用获取Docket对象并交予spring管理@Beanpublic Docket docket(){Docket docket=new Docket(DocumentationType.SWAGGER_2);return docket;}}3.开启Swagger2的注解
@SpringBootApplication @EnableScheduling//开启定时任务注解 @EnableSwagger2//开启Swagger2的注解 public class Demo001Application {public static void main(String[] args) {SpringApplication.run(Demo001Application.class, args);}}4.测试
http://localhost:8080/swagger-ui.html
@Configuration public class SwaggerConfig {//swagger所有功能都集中在Docket类中,该方法作用获取Docket对象并交予spring管理@Beanpublic Docket docket(){Docket docket=new Docket(DocumentationType.SWAGGER_2).groupName("ghx").apiInfo(getInfo()).select().apis(RequestHandlerSelectors.basePackage("com.ghx.demo001.controller")).build();return docket;}//接口文档的描述private ApiInfo getInfo(){Contact DEFAULT_CONTACT = new Contact("陆", "http://www.dy.com", "110@qq.com");ApiInfo DEFAULT = new ApiInfo("ghx的系统", "ghx的系统", "1.0", "http://www.baidu.com",DEFAULT_CONTACT, "AAA 2.0", "http://www.aaa.com", new ArrayList<VendorExtension>());return DEFAULT;} }
常用注解
@Api(tags = "说明") 加载在controller类上@ApiOperation(value = "查询所有用户信息") 接口方法上@ApiImplicitParams(value = {@ApiImplicitParam(value = "学生编号",name = "xs"),@ApiImplicitParam(value = "姓名",name = "n") }) 接口方法上,对所有参数的概述@ApiModel(value = "用户实体类") 实体类上@ApiModelProperty("用户id") 实体类属性上
5. 什么是定时器
在规定的某个时间,执行相应的业务代码
应用
1.取消订单
2.oss文件上传 定时删除冗余文件
3.新用户注册后,7天发送问候短信
1.依赖
<!-- 引入QUARTZ定时器依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency>2.创建一个定时任务类
@Component public class QuarzConfig {@Autowiredprivate UserDao userDao;//每一秒执行查询所有用户@Scheduled(cron = "0/1 * * * * ?")public void task(){List<User> all = userDao.findAll();System.out.println(all);} }3.EnableScheduling
@SpringBootApplication @EnableScheduling//开启定时任务注解 public class Demo001Application {public static void main(String[] args) {SpringApplication.run(Demo001Application.class, args);}}
springboot3整合
1.整合mybatis
依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis和springboot整合的依赖。starter 启动依赖。spring-boot-starter-XXXX: 内部依赖XXX-spring-boot-starter: 外部依赖-需要添加版本号 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.4</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency>
如果这里有dao接口需要添加@Mapper注解,可以如下
2.整合pageHelper
依赖 <!-- springboot是3.0以上,分页需要2.0以上--> <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>2.1.0</version> </dependency>配置文件
#设置PageHelper分页合理化 pagehelper.reasonable=true
3.整合定时器
1.引入Quartz依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId> </dependency>
2.定义事务
@Component public class QuartzConfig {@Scheduled(cron = "0/5 * * * * ? ")public void task(){System.out.println("aaa你好");} }
3.开启任务注解驱动
4.整合swagger3
依赖
<!--swagger3--> <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.1.0</version> </dependency>
配置文件
#开启swagger3接口 springdoc.api-docs.enabled=true #为指定包下的类生成文档 springdoc.packages-to-scan=com.ghx.controller
常用注解
@Tag(name="") 放在Controller类上,对该类加以说明
@Operation(summary="")放在接口方法上,对接口方法的说明
@Paramters({
@Paramter(name="",description="",require="") 对单个参数的说明
})
@Schema(name = "id",description = "用户id") 对实体类以及属性的说明