摘要: 最近有个老项目想逐步将新业务的数据放到新的数据库,以前的业务还得连接以前的数据库,于是需要整合多数据源 。 多数据源实际上是继承了AbstractRoutingDataSource类,这个类最终实现了DataSource接口,DataSource里只有一个getConnection方法,数据库每次访 阅读全文
posted @ 2020-07-03 17:35 william_zhao 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 最近做的项目,需要操作日志记录功能,于是想到了自定义注解+AOP+多线程 这是项目结构: 首先自定义注解: import java.lang.annotation.*;/** * 日志注解 用于记录日志 */@Inherited@Retention(RetentionPolicy.RUNTIME)@ 阅读全文
posted @ 2020-07-03 15:48 william_zhao 阅读(3316) 评论(2) 推荐(0) 编辑
摘要: 以用户登录日志表为例,取用户最近登录的设备 1 SET NAMES utf8mb4; 2 SET FOREIGN_KEY_CHECKS = 0; 3 4 -- 5 -- Table structure for t_login_log 6 -- 7 DROP TABLE IF EXISTS `t_lo 阅读全文
posted @ 2020-07-01 17:42 william_zhao 阅读(1975) 评论(0) 推荐(0) 编辑
摘要: springboot 项目 ,突然在@Component注解下@Autowired的类为null的情况,也就是没注入成功,或者说是此类在bean加载之前就被调用了。 以下是解决办法: 编写工具类实现ApplicationContextAware接口,重写setApplicationContext方法 阅读全文
posted @ 2020-07-01 11:01 william_zhao 阅读(8743) 评论(0) 推荐(0) 编辑
摘要: 项目里有个远程升级的需求,需要用到ftp服务器,Linux下搭建麻烦,所以采用docker,后期直接考就行,搞这个也是踩了半天的坑,特来记录下爬坑的过程 1.docker拉取ftp镜像 docker pull fauria/vsftpd 2.启动ftp服务器 启动ftp服务器docker run - 阅读全文
posted @ 2020-06-09 18:01 william_zhao 阅读(2873) 评论(0) 推荐(1) 编辑
摘要: <!--poi--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org 阅读全文
posted @ 2020-06-04 18:08 william_zhao 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 引入依赖 <!-- httpclient--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> 工具类 package com.zd 阅读全文
posted @ 2020-06-04 18:06 william_zhao 阅读(421) 评论(0) 推荐(0) 编辑
摘要: List分组--对象List分组--MapList分组 List里面的对象元素,以某个属性来分组,例如,以id分组,将id相同的放在一起 //List 以ID分组 Map<Integer,List<Apple>> Map<Integer, List<Apple>> groupBy = appleLi 阅读全文
posted @ 2020-06-04 17:53 william_zhao 阅读(20829) 评论(0) 推荐(1) 编辑
摘要: 简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 官方网站https://mp.baomidou.com/ 本人使用Mybatis-plus也有两年了,从最早的1版本到现在都出3版本了,确实很好用 阅读全文
posted @ 2020-06-03 15:35 william_zhao 阅读(958) 评论(0) 推荐(0) 编辑
摘要: 项目登录流程如下 用户进入前端登录界面,输入账号密码等,输入完成之后前端发送请求到后端(拦截器不会拦截登录请求),后端验证账号密码等成功之后生成Token并存储到数据库,数据库中包含该Token过期时间,然后返回生成的Token到前端。 前端收到Token,表示登录成功,把这个Token存储本地。然 阅读全文
posted @ 2020-06-03 14:55 william_zhao 阅读(370) 评论(0) 推荐(0) 编辑