随笔
文章平均质量分 92
梦梦梦i
这个作者很懒,什么都没留下…
展开
-
策略+ 工厂模式 优化 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 · 348 阅读 · 0 评论 -
Idea2020 Lombok报错,无法引入jar包
背景刚更新 idea2020.lombok等插件未更新。项目手动打包发布后,发现jar包内所依赖的别的模块代码为老代码,排查后发现是依赖模块未Install,mvn打包时会使用老的依赖包。Install后即发现Lombok依赖发生错误,无法导入相应Jar包。解决网上解决办法是去手动更新插件点我,我更新后依然提示不能引入Jar包,折腾了一个小时。突然想起maven貌似 因为已有Jar包的情况下maven不会更新Jar包。遂找到本地仓库删除 Lombok相关文件。 回Idea更新依赖。 即可。原创 2020-07-11 14:13:43 · 1180 阅读 · 0 评论 -
ReentrantLock 分析
关于 RentrantLockjdk1.6 之前synchronized 关键字是一把重量级锁(不论如何都会调用操作系统方法实现的) ReentrantLock 产生于此时,它在串行/单线程时候 java层就能实现锁,性能远远优于synchronized,jdk1.6 sun公司对synchronized进行了大优化,目前这两个锁的性能相差不多。首先 ReentrantLock 默认实现...原创 2019-12-30 22:51:26 · 543 阅读 · 0 评论 -
配置文件决定调用接口的不同实现方法
People: 接口类Man ,Woman 实现类。ConfigInterface:配置类。@ConditionalOnProperty(name = “”, havingValue = “”)通过其两个属性name以及havingValue来实现的,其中name用来从application.properties**中读取某个属性值。如果该值为空,则返回false;如果值不为...原创 2019-11-28 17:26:17 · 705 阅读 · 0 评论 -
RocketMQ 消息丢失问题。
依赖: <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.2.0</vers...原创 2019-11-28 17:21:38 · 701 阅读 · 0 评论 -
RocketMQ搭建
虚拟机中安装rocketMQ :rocketMQ安装参考: https://blog.csdn.net/wangmx1993328/article/details/81536168注意:1.卸载openjdk2.就算环境变量设置对了 也得在要运行的.sh 文件中 添加JAVA_HOME 路径。(所有要启动.sh均要添加)export JAVA_HOME=/home/jdk1.8.0_2...原创 2019-11-26 16:10:56 · 336 阅读 · 0 评论 -
Shiro搭建
所需依赖: <!--shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version&...原创 2019-10-22 17:46:01 · 183 阅读 · 0 评论 -
支付宝API接入,网页支付接口。
官方文档说的很清楚,但是不懂要做什么的话看着就会很迷。https://docs.open.alipay.com/270/105899/稍微整理一下头绪:要做什么:根据你的需求 调用支付宝接口,生成一个支付页面 生成一个收费用的二维码。知道了要做什么 接口会返回什么后面就简单了。流程:1 根据你的逻辑计算出你要的金额,用于生产二维码金额。2 你的单号便于查询到这条交易的详情,de...原创 2019-08-08 14:01:03 · 3256 阅读 · 0 评论 -
Git提交文件,提示显示修改了整个文件,实际只操作了几行。
git 自动换行问题。于 C:\Users\"用户名"\.gitconfig中 添加 [core] autocrlf = false filemode = false safecrlf = true另还可以修改 Idea 的换行形式。切换到 LF形式原创 2019-08-02 14:43:56 · 6291 阅读 · 2 评论 -
自定义注解实现权限白名单
思路: 在拦截器中获取所将要执行的方法是否含有 自定义注解。若含有则直接放行。拦截器:if (handler instanceof HandlerMethod) {HandlerMethod handlerMethod = (HandlerMethod) handler;WhiteList whiteList = handlerMethod.getMethod().getAnnotatio...原创 2019-08-02 14:47:50 · 868 阅读 · 0 评论 -
一对多查询, pagehelper一对多分页
《collection 》标签子查询select 属性绑定一条sqlproperty 属性绑定结果名, 映射到 resultMap中对应的变量。结果:原创 2019-09-18 21:32:21 · 1344 阅读 · 0 评论 -
pagehelper,同时执行多条sql报错,数据丢失。
@pagehelper 分页: pagehelper 实现了ThreadLocal,在开始分页的时候,将分页的信息绑定到线程A,当要执行查询语句的时候,interceptor拦截器拦截下当前 sql 并将其分解成两条 sql1.查询数量,(总数不为0才执行分页sql)2.拼接分页的sql(查询结果)查询结果缓存在线程中。最后在拦截器的finally中移除绑定到线程A中的分页信息。...原创 2019-09-23 21:54:23 · 1966 阅读 · 0 评论 -
通过注解方式限制输入参数,以及自定义注解。
参数需存在于实体类中,一般专门写一个专门用于接收前端参数的实体类(与数据库实体类一致)Controller层中@Valid 注解开启验证copyPeoperties方法复制值到数据库实体类中。常见注解@Pattern 内容限制 regexp 限制条件的正则表达式。...原创 2019-08-01 10:00:49 · 4569 阅读 · 0 评论 -
手动打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 · 4814 阅读 · 0 评论 -
springboot 添加Redis.
如何构建一个springBoot项目就不再赘述https://mp.csdn.net/postedit/88866362只说说如何在已有的项目中添加 Redis中间件缓存。首先添加pom.xml 中的依赖; <dependency> <groupId>org.springframework.boot</groupId&...原创 2019-07-09 11:34:59 · 1245 阅读 · 0 评论 -
java 后台生成验证码图片(验证码缓存与Redis中).
效果如下图:springBoot 中添加 Redishttps://blog.csdn.net/qq_36308742/article/details/95178698文件目录结构如下:部分文件不做展示。不能完全复现 自行变通。LonginContreoller.javapackage com.haylion.springboot.controller;import co...原创 2019-07-09 11:59:09 · 3675 阅读 · 3 评论 -
Git 杂记
git:帮助我们进行版本控制的软件;github:基于git的远程仓库;git安装好之后 有很多可视化工具可供选用,本文只简介git的基本用法.git remote -v : 查看已有分支,主机名 git add(文件名):添加指定变 git status :查看当前变更文件 git add . :添加所有变更(. 可以替换为文件夹, 文件) git commi...原创 2019-07-04 16:17:20 · 200 阅读 · 0 评论 -
springboot + jpa IDEA下 demo
正在学习jpa+springboot。jpa的优势是快捷开发。实体类的注解会帮助你自动生成表。jpa自带的方法使你不用写sql.大多地方我都加了注释。我也正在学习所以存在诸多不足请见谅。工程内有一些是次日要用到的文件夹 没截图的就是与本次demo 无关的内容。最后希望能帮到你。步骤如下:1.创建一个 基础的springBoot项目。不添加任何依赖,手...原创 2019-07-04 17:15:23 · 215 阅读 · 0 评论 -
java web 非对称加密。RSA算法加密。
首先解释一下 web 中的流程:前端会有专门的方法利用对应的公/私钥 对需要加密的内容进行加密,后台得到加密后的内容后 利用对应的公/私钥 进行解密 或相应操作。非对称性加密:解决浏览器传输过程中 明文传输易被窃取的情况。算法生成两个密匙 公钥 -私钥; 公钥是的可以对外公开的,私钥是自己保留的。避免频繁交换秘钥带来的不便。RSA算法一次生成 一对秘钥,用其中一个加密 则可以使用...原创 2019-07-11 14:52:43 · 659 阅读 · 0 评论 -
拦截器实现权限验证。Cookie + Redis
如何实现:将url 独立成一个个权限,存放于数据库中,一个url 就是一个权限,用户可以有多个权限,存放于一个集合中,再缓存与Redis中,利用cookie或Session作为标识获取Redis中的权限集合,拦截器获取当前访问的Url 再与权限集合中的url逐个比较,若相等则放行,不等则拦截。表结构大致如下:具体实现:登录成功后调用 redisTemplate.opsForList(...原创 2019-07-15 22:14:48 · 599 阅读 · 0 评论 -
request 获取不到 Cookie
首先了解一个概念。不是所有request中都会携带 Cookie.若你在 set Cookie的时候没有设置路径那么Cookie会默认是你访问这个Contreoller的路径。比如说 你在url /user/login 中 set 了Cookie而没有设置路径。那么你之后的 访问 只会当你访问 /user/*的时候 request才会携带 Cookie原: Coo...原创 2019-07-15 22:32:08 · 5200 阅读 · 0 评论 -
拦截器方法报错无法获取值,service/Contreoller层的方法无法调用。
此处注入时当使用注解注入,而不能通过new 的方式。否则将不纳入 Spring 的管理中, 你再通过注解的方式期望调用Service/Contreoller的方法均会出现错误....原创 2019-07-15 22:36:32 · 360 阅读 · 0 评论 -
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 · 1609 阅读 · 0 评论 -
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 · 4302 阅读 · 0 评论 -
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 · 25554 阅读 · 4 评论