![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
白小白的小白
你知道的越多,你不知道的越多!
展开
-
Sharding-JDBC执行原理
Sharding-JDBC的执行步骤1. sql解析2. sql路由(标准路由:根据分片算法+分片键=分片策略来找到对应的库。 迪卡尔路由:垂直分表和水平分片混合到一起查询, 全库路由:根据广播的方式来查询所有表)3. sql改写4. 结果归并(流式归并:分而治之,每个sql先排序,然后再比较。 内存归并:将所有结果集都放到内存中,再经过统一的分组 排序等操作返回。 装饰者归并:在对所有的结果归并后再执行,如sum集合,先用流式归并后再执行sum)...原创 2021-08-30 09:37:04 · 190 阅读 · 0 评论 -
sping boot mybatis Sharding-JDBC实现分库分表
Sharding-JDBC单库分表和多库分表其他都一样,就是在application.yml配置中设置下分库就可以了,单库分表链接application.yml:# 框架设置spring: # 读取配置文件 profiles: active: dev #开发环境 # active: pro #正式环境# mybatismybatis: mapper-locations: classpath:mapper/*Mapper.xml configuration:原创 2021-08-27 14:01:50 · 152 阅读 · 0 评论 -
sping boot mybatis Sharding-JDBC实现单库分表
mybatis官网 shardingSphere官网对于一些数据量较大的数据我们就需要分表,而java的框架不像python的框架资源那么少,已经有封装好的数据库中间件,比如Sharding-jdbc,sharding的分片策略有五种,我们这里使用的是行表达式分片策略如: t_user_$->{u_id % 8} 表示t_user表根据u_id模8,而分成8张表,表名称为t_user_0到t_user_7,这里为了方便,就分了两个表。表目录结构:在navicat建立的表:dao层:.原创 2021-08-27 12:11:41 · 366 阅读 · 0 评论 -
spring boot 中异步Async的使用
在项目中,我们一般会和第三方去交互,比如发送短信验证码,比如发送邮件,那么,在请求这些第三方时,有可能就会造成等待,那么对用户的体验是非常不好的,那么就需要我们异步去执行这些浪费时间的操作,而不需要一直等待堵塞到那里,那在spring boot 里面是如何实现的那?利用Async在启动项中开启异步@EnableAsync(proxyTargetClass=true)server层import org.springframework.scheduling.annotation.Async;pu.原创 2021-08-10 17:18:41 · 658 阅读 · 0 评论 -
spring boot 发送邮箱
一般我们邮箱的选择最多的是 qq邮箱 网易邮箱,如何申请使用第三方发送邮件,都要得到授权码才可以:qq邮箱:网易云邮箱:拿到授权码后,就可以使用spring boot 开发了,建议使用qq邮箱,因为使用网易云邮箱发送时,网易云很容易把邮件当成垃圾邮件不让发送,报554,必须要抄送给自己一份或者直接发送给自己,抄送给其他用户才可以,极其不稳定,所以建议使用qq邮箱来发送pom中:<!-- 邮箱 --><dependency> <groupId&g.原创 2021-08-10 16:09:14 · 250 阅读 · 0 评论 -
spring boot 生成图片验证码
第一种方法:使用hutool生成图片验证码: 1.1 引入jar包:<!-- 糊涂工具包 --> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.13</version> </dependency> 1.2 在代码中生成图片原创 2021-07-19 17:50:32 · 1094 阅读 · 0 评论 -
spring boot封装全局异常
在springboot中常用的用于参数校验的注解如下@AssertFalse 所注解的元素必须是Boolean类型,且值为false@AssertTrue 所注解的元素必须是Boolean类型,且值为true@DecimalMax 所注解的元素必须是数字,且值小于等于给定的值@DecimalMin 所注解的元素必须是数字,且值大于等于给定的值@Digits 所注解的元素必须是数字,且值必须是指定的位数@Future 所注解的元素必须是将来某个日期@Max 所注解的元素必须是数字,且值小于等于给原创 2021-06-28 16:41:58 · 334 阅读 · 0 评论 -
spring boot 连接redis的多个库
在spring boot连接redis中,默认连接的是0号库,但是在业务中,为了便于区分管理,需要连接多个库pom.xml <!--redis 配置--> <!--redis默认使用的Lettuce客户端--> <dependency> <groupId>org.springframework.boot</groupId> <artifa原创 2021-06-23 17:25:31 · 1340 阅读 · 0 评论 -
spring boot自定义封装返回code
在项目中, 我们一般会自定义code和消息去返回给前端,那么在sping boot 中如何封装那?jar包: <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.13</version> &l原创 2021-06-23 11:41:34 · 656 阅读 · 0 评论 -
Spring Boot MyBatis分页
在pom.xml中的配置: <!-- 分页 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version>原创 2021-06-21 21:09:07 · 192 阅读 · 0 评论 -
spring boot log4j2 配置日志
在pom.xml中:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--移除自带的日志, 使用log4j2--> <exclusions> <exclusion>原创 2021-06-21 16:15:06 · 254 阅读 · 0 评论 -
Spring Boot整合MyBatis连接数据库
当我们项目启动起来后,就要开始整合mybatis来连接数据数据库:目录在application.yml中的配置# 数据库设置spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://xxx.xxx.xx.xx:3306/imageserver?serverTimezone=GMT%2B8 username: root password: root原创 2021-06-09 15:42:06 · 383 阅读 · 0 评论 -
spring boot的定时器
转载地址:地址转载 2021-06-01 17:08:54 · 46 阅读 · 0 评论 -
java中spring boot启动配置
在pom.xml中的配置<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.10.RELEASE</version> <relativePath/> &l.原创 2021-06-01 10:26:40 · 225 阅读 · 1 评论