- 博客(26)
- 收藏
- 关注
原创 策略+ 工厂模式 优化 if else
背景我现在有一个请求,需要根据请求中的类型来决定调用哪一层Service, @Autowired private A a; @Autowired private B b; @Autowired private C c; if( x == 1){ a.doXXX(); }else if(a == 2){ // b.doXXX(); }else if(
2020-07-28 14:43:51
359
原创 Idea2020 Lombok报错,无法引入jar包
背景刚更新 idea2020.lombok等插件未更新。项目手动打包发布后,发现jar包内所依赖的别的模块代码为老代码,排查后发现是依赖模块未Install,mvn打包时会使用老的依赖包。Install后即发现Lombok依赖发生错误,无法导入相应Jar包。解决网上解决办法是去手动更新插件点我,我更新后依然提示不能引入Jar包,折腾了一个小时。突然想起maven貌似 因为已有Jar包的情况下maven不会更新Jar包。遂找到本地仓库删除 Lombok相关文件。 回Idea更新依赖。 即可。
2020-07-11 14:13:43
1211
原创 ReentrantLock 分析
关于 RentrantLockjdk1.6 之前synchronized 关键字是一把重量级锁(不论如何都会调用操作系统方法实现的) ReentrantLock 产生于此时,它在串行/单线程时候 java层就能实现锁,性能远远优于synchronized,jdk1.6 sun公司对synchronized进行了大优化,目前这两个锁的性能相差不多。首先 ReentrantLock 默认实现...
2019-12-30 22:51:26
563
原创 配置文件决定调用接口的不同实现方法
People: 接口类Man ,Woman 实现类。ConfigInterface:配置类。@ConditionalOnProperty(name = “”, havingValue = “”)通过其两个属性name以及havingValue来实现的,其中name用来从application.properties**中读取某个属性值。如果该值为空,则返回false;如果值不为...
2019-11-28 17:26:17
726
原创 RocketMQ 消息丢失问题。
依赖: <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.2.0</vers...
2019-11-28 17:21:38
730
原创 RocketMQ搭建
虚拟机中安装rocketMQ :rocketMQ安装参考: https://blog.youkuaiyun.com/wangmx1993328/article/details/81536168注意:1.卸载openjdk2.就算环境变量设置对了 也得在要运行的.sh 文件中 添加JAVA_HOME 路径。(所有要启动.sh均要添加)export JAVA_HOME=/home/jdk1.8.0_2...
2019-11-26 16:10:56
353
原创 Shiro搭建
所需依赖: <!--shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version&...
2019-10-22 17:46:01
190
原创 pagehelper,同时执行多条sql报错,数据丢失。
@pagehelper 分页: pagehelper 实现了ThreadLocal,在开始分页的时候,将分页的信息绑定到线程A,当要执行查询语句的时候,interceptor拦截器拦截下当前 sql 并将其分解成两条 sql1.查询数量,(总数不为0才执行分页sql)2.拼接分页的sql(查询结果)查询结果缓存在线程中。最后在拦截器的finally中移除绑定到线程A中的分页信息。...
2019-09-23 21:54:23
2005
原创 一对多查询, pagehelper一对多分页
《collection 》标签子查询select 属性绑定一条sqlproperty 属性绑定结果名, 映射到 resultMap中对应的变量。结果:
2019-09-18 21:32:21
1358
原创 支付宝API接入,网页支付接口。
官方文档说的很清楚,但是不懂要做什么的话看着就会很迷。https://docs.open.alipay.com/270/105899/稍微整理一下头绪:要做什么:根据你的需求 调用支付宝接口,生成一个支付页面 生成一个收费用的二维码。知道了要做什么 接口会返回什么后面就简单了。流程:1 根据你的逻辑计算出你要的金额,用于生产二维码金额。2 你的单号便于查询到这条交易的详情,de...
2019-08-08 14:01:03
3440
原创 自定义注解实现权限白名单
思路: 在拦截器中获取所将要执行的方法是否含有 自定义注解。若含有则直接放行。拦截器:if (handler instanceof HandlerMethod) {HandlerMethod handlerMethod = (HandlerMethod) handler;WhiteList whiteList = handlerMethod.getMethod().getAnnotatio...
2019-08-02 14:47:50
898
原创 Git提交文件,提示显示修改了整个文件,实际只操作了几行。
git 自动换行问题。于 C:\Users\"用户名"\.gitconfig中 添加 [core] autocrlf = false filemode = false safecrlf = true另还可以修改 Idea 的换行形式。切换到 LF形式
2019-08-02 14:43:56
6400
2
原创 通过注解方式限制输入参数,以及自定义注解。
参数需存在于实体类中,一般专门写一个专门用于接收前端参数的实体类(与数据库实体类一致)Controller层中@Valid 注解开启验证copyPeoperties方法复制值到数据库实体类中。常见注解@Pattern 内容限制 regexp 限制条件的正则表达式。...
2019-08-01 10:00:49
4625
原创 error: utf8mb4_0900_ai_ci
数据库转存时 报错utf8mb4_0900_ai_cinavicat 中显示的字符集和排序规则打开sql 文件查看字符集和 排序规则 发现变成了。临时解决方法:修改.sql中 utf8mb4_0900_ai_ci 为 utf8_general_ci且 utf8mb4改为 utf8。...
2019-07-30 14:35:14
4323
原创 navicat 中设置的 int(11)和vchar(11) 中11长度的含义。
vchar(11)vchar(11) 是限制长度 11 只能存储 长度为11 的字符串 超过则无法存入。int(11)并不是指 只能存储0-11长度的数字。(设置0时自动转为11,不设置时自动转为默认的11)int的范围在-2147483648 - 2147483648(即-2³¹-1~2³¹-1)其内的数值都可以存储。要说设置int(m)的作用 可在设置 ZEROFILL 属性后...
2019-07-17 16:51:01
1656
原创 拦截器方法报错无法获取值,service/Contreoller层的方法无法调用。
此处注入时当使用注解注入,而不能通过new 的方式。否则将不纳入 Spring 的管理中, 你再通过注解的方式期望调用Service/Contreoller的方法均会出现错误....
2019-07-15 22:36:32
369
原创 request 获取不到 Cookie
首先了解一个概念。不是所有request中都会携带 Cookie.若你在 set Cookie的时候没有设置路径那么Cookie会默认是你访问这个Contreoller的路径。比如说 你在url /user/login 中 set 了Cookie而没有设置路径。那么你之后的 访问 只会当你访问 /user/*的时候 request才会携带 Cookie原: Coo...
2019-07-15 22:32:08
5302
原创 拦截器实现权限验证。Cookie + Redis
如何实现:将url 独立成一个个权限,存放于数据库中,一个url 就是一个权限,用户可以有多个权限,存放于一个集合中,再缓存与Redis中,利用cookie或Session作为标识获取Redis中的权限集合,拦截器获取当前访问的Url 再与权限集合中的url逐个比较,若相等则放行,不等则拦截。表结构大致如下:具体实现:登录成功后调用 redisTemplate.opsForList(...
2019-07-15 22:14:48
612
原创 java web 非对称加密。RSA算法加密。
首先解释一下 web 中的流程:前端会有专门的方法利用对应的公/私钥 对需要加密的内容进行加密,后台得到加密后的内容后 利用对应的公/私钥 进行解密 或相应操作。非对称性加密:解决浏览器传输过程中 明文传输易被窃取的情况。算法生成两个密匙 公钥 -私钥; 公钥是的可以对外公开的,私钥是自己保留的。避免频繁交换秘钥带来的不便。RSA算法一次生成 一对秘钥,用其中一个加密 则可以使用...
2019-07-11 14:52:43
679
原创 java 后台生成验证码图片(验证码缓存与Redis中).
效果如下图:springBoot 中添加 Redishttps://blog.youkuaiyun.com/qq_36308742/article/details/95178698文件目录结构如下:部分文件不做展示。不能完全复现 自行变通。LonginContreoller.javapackage com.haylion.springboot.controller;import co...
2019-07-09 11:59:09
3705
3
原创 springboot 添加Redis.
如何构建一个springBoot项目就不再赘述https://mp.youkuaiyun.com/postedit/88866362只说说如何在已有的项目中添加 Redis中间件缓存。首先添加pom.xml 中的依赖; <dependency> <groupId>org.springframework.boot</groupId&...
2019-07-09 11:34:59
1253
原创 手动打jar包,利用GilLab CI/CD流水线(.gitLab-ci.yml文件)自动打jar并放到服务器运行。
手动jar包1 首先在pom.xml钟添加依赖: <build> // 指定jar包名。 <finalName>mengpeng</finalName> <plugins> <plugin> <groupId>org.spri...
2019-07-09 11:18:17
4982
原创 mvn clean package -pl 参数 -am -Dmaven.test.skip=true :Could not find the selected project in the reac
mvn 打包时 -pl 参数 指定打包的项目,我只有一个项目时打包报错报错如下:删除 '-pl 参数' 即可。mvn常见参数:https://www.jianshu.com/p/25aff2bf6e56
2019-07-08 15:59:38
25683
4
原创 springboot + jpa IDEA下 demo
正在学习jpa+springboot。jpa的优势是快捷开发。实体类的注解会帮助你自动生成表。jpa自带的方法使你不用写sql.大多地方我都加了注释。我也正在学习所以存在诸多不足请见谅。工程内有一些是次日要用到的文件夹 没截图的就是与本次demo 无关的内容。最后希望能帮到你。步骤如下:1.创建一个 基础的springBoot项目。不添加任何依赖,手...
2019-07-04 17:15:23
230
原创 Git 杂记
git:帮助我们进行版本控制的软件;github:基于git的远程仓库;git安装好之后 有很多可视化工具可供选用,本文只简介git的基本用法.git remote -v : 查看已有分支,主机名 git add(文件名):添加指定变 git status :查看当前变更文件 git add . :添加所有变更(. 可以替换为文件夹, 文件) git commi...
2019-07-04 16:17:20
211
原创 IDEA从零搭建 springboot+mybatis 以及网页简单验证下交互。
首先我们新建一个项目。选择Spring Initializr 基本配置,选择jdk。配置包名。随意。下一步 注意添加依赖:观察右边的选择项 共五个依赖(用于pom.xml自动导入依赖配置项,自动下载maven需要的包)next 进入idea主界面如图配置自己的maven仓库 (自己预先下载好你需要的版本,版本问题不可忽视。)如果没有的话也可以使用idea自...
2019-03-28 13:23:26
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人