自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 dubbo源码阅读ContextFilter&ConsumerContextFilter的消费者和提供者简单传递Attachment

例如当前我们的消费者Customer为Controller,需要通过登录者主键去访问后台信息,但是我们的登陆者信息单点登录现在是存在消费者这一端,那我们可以使用Dubbo的setAttachMents去存储我们所需要的信息,提供者就通过getAttachMents后获取我们所需要的附件信息,调用我们在后面会提供方法实例:消费者Customerpublic class DubboConsumerParamsFilter implements Filter { @Override

2020-05-24 23:04:56 633

原创 Spring事务失效的 8 大原因

1、数据库引擎不支持事务这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。根据 MySQL 的官方文档:mysql官方文档从 MySQL 5.5.5 开始的默认存储引擎是:InnoDB,之前默认的都是:MyISAM,所以这点要值得注意,底层引擎不支持事务再怎么搞都是白搭。2、没有被 Spri...

2020-02-22 02:06:43 397

原创 redis各种数据类型的应用场景

差集:SDIFF set1 set2 set3  { a } 「备注:set1和(set2 and set3和)得差集」并集:SUNION set1 set2 set3  { a,b,c,d,e }交集:SINTER set1 set2 set3  { c }关注了MacTalk,备胎说车等大V。筛选出安卓系统intel、8G。

2023-12-18 20:33:31 923

原创 一文了解java中volatile关键字

上面讲了两个看起来跟我们的主角volatile关系不大的知识点,但其实是非常重要的知识点。首先,通过Java内存模型的理解,现在知道为什么会出现线程对变量的修改其他线程未立即可知的原因了吧?线程修改变量之后,可能并不会立即写回主内存,而其他线程,在主内存数据更新后,也并不会立即去主内存获取最新的数据。这也是问题所在。每次使用数据都必须去主内存中获取;每次修改完数据都必须马上同步到主内存。这样就实现了每个线程都可以立即收到该变量的修改信息。不会出现读取脏数据旧数据的情况。第二个作用是禁止指令重排。

2023-12-14 20:11:16 985

原创 Mysql查询某个节点下的所有子节点

创建表CREATE TABLE `dynamic_dict` ( `id` int(11) NOT NULL AUTO_INCREMENT, `company_id` int(11) NOT NULL, `dict_code` varchar(100) NOT NULL, `item_code` varchar(100) NOT NULL, `parent_item_code` varchar(100) DEFAULT NULL COMMENT '级联父级节点', `item_

2021-08-10 12:14:17 1239

原创 Swagger2系列三 常用注解

Swagger常用到的注解有:@Api@ApiModel@ApiModelProperty@ApiOperation@ApiIgnore@ApiParam@ApiResponse@ApiResponses@ResponseHeader1. @ApiApi 用在类上,说明该类的作用。可以标记一个Controller类做为swagger 文档资源,使用方式:@Api(value =“测试", tags = {“测试"})与Controller注解并列使用。 属性配置.

2021-04-23 16:30:45 533

原创 Swagger2系列二 多模块分工开发时配置

核心配置每个模块调用此配置分别命名和分组,下文会举例说明:import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;import com.google.common.base.Function;import com.google.common.base.Optional;import com.google.common.base.Predicate;import org.sp...

2021-04-23 15:59:12 1214

原创 Swagger2系列一 配置篇

最近开发项目需要和前端人员提供接口文档,文档十分繁琐,索性使用了最近看的这个swagger2,感觉还是不错的,虽然有一定的侵入性,但无伤大雅,如果只是单纯的使用,看此篇和第三篇就可以了,第二篇是为了多模块使用。swagger2有很多版本,本人踩坑了访问ui404 doc404、登录密码不可使用等诸多问题,最终使用的2.9.2这个版本,还是非常好的体验的pom文件引入依赖:<!-- swagger-ui --><dependency> <groupId&.

2021-04-23 15:46:42 802

原创 MySQL 批量插入,如何不插入重复数据

1、insert ignore into当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如:INSERT IGNORE INTO user (name) VALUES ('telami') 这种方法很简便,但是有一种可能,就是插入不是因为重复数据报错,而是因为其他原因报错的,也同样被忽略了~2、on duplicate key update当primary或者unique重复时,则执行update语句,如up

2021-04-07 16:16:21 483

原创 454. 四数相加 II

给定四个包含整数的数组列表A , B , C , D ,计算有多少个元组 (i, j, k, l),使得A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过231 - 1 。例如:输入:A = [ 1, 2]B = [-2,-1]C = [-1, 2]D = [ 0, 2]输出:2解释:两个元组...

2020-11-27 19:36:58 124

原创 452. 用最少数量的箭引爆气球

452. 用最少数量的箭引爆气球难度中等301收藏分享切换为英文接收动态反馈在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为xstart,xend,且满足 xstart≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限...

2020-11-24 14:27:37 107

原创 973. 最接近原点的 K 个点

我们有一个由平面上的点组成的列表 points。需要从中找出 K 个距离原点 (0, 0) 最近的点。(这里,平面上两点之间的距离是欧几里德距离。)你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。示例 1:输入:points = [[1,3],[-2,2]], K = 1输出:[[-2,2]]解释:(1, 3) 和原点之间的距离为 sqrt(10),(-2, 2) 和原点之间的距离为 sqrt(8),由于 sqrt(8) < sqrt(10),(-2..

2020-11-10 09:56:44 204 1

转载 127. 单词接龙(java)

给定两个单词(beginWord和 endWord)和一个字典,找到从beginWord 到endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例1:输入:beginWord = "hit",endWor...

2020-11-05 19:49:17 354

原创 941. 有效的山脉数组

给定一个整数数组A,如果它是有效的山脉数组就返回true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在0 < i< A.length - 1条件下,存在i使得:A[0] < A[1] < ... A[i-1] < A[i]A[i] > A[i+1] > ... > A[A.length - 1]示例 1:输入:[2,1]输出:false示...

2020-11-03 21:09:30 141

原创 463. 岛屿的周长

给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例 :输入:[[0,1,0,0],[1,1,1,0],[0,1,0,0],[1,1,0,0...

2020-10-31 10:54:10 115

原创 129. 求根到叶子节点数字之和(java)

给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点路径 1->3 代表数字 13.因此,数字总和 = 12 + 13 = 2...

2020-10-30 20:19:13 193

转载 学习RabbitMQ案例系列,从认识到高级特性

GitHub地址没用过消息队列?一文带你体验RabbitMQ收发消息刚体验完RabbitMQ?一文带你SpringBoot+RabbitMQ方式收发消息上手了RabbitMQ?再来看看它的交换机(Exchange)吧RabbitMQ高级之如何保证消息可靠性?RabbitMQ高级之消息限流与延时队列注:本人在学习是看到一篇mq教学 从认知到高级特性,受益匪浅,记录一下,防止走丢,如有侵权请告知来自掘金 和耳朵...

2020-09-22 20:44:27 94

原创 Mybatis注解开发逆向工程MybatisAnnotationTools

由于近期参与项目用到的是Mybatis的注解开发,不涉及到Xml文件,为了图省事,想到以前的Mybatis的逆向工程MyBatis Generator实现MySQL分页插件, Mybaties-plus之AutoGenerator 代码生成器,重复的劳动何必反复去做呢?,就各种百度git,找到了MybatisAnnotationTools,这里对于别人的代码做了优化和增加功能,可能还不是很完善,如果有侵权或者建议,请及时反馈或者及时改正,文章后会给出具体参考链接这里简单介绍下我是怎么实现的,具体配置

2020-09-15 21:16:01 288

转载 mybatis generator自动生成代码时 只生成了insert 而没有其他的

mybatis generator自动生成代码时 只生成了insert 而没有其他的转载来源:来源mybatis框架提供了非常好用的逆向工程插件,但是在使用过程中会有很多问题。我在使用中就遇到了只生成insert和insertSeletive方法,而不生成其他根据primary key查询更新删除的方法。解决方案:1.检查数据库中的表是否有主键,如果没有主键是不会生成类似selectByPrimaryKey之类的方法的。2.检查generatorConfig.xml配置文件中的tab

2020-09-10 17:59:05 1681

原创 Java8中的Steam测试案例

public class TestFilter { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("two2"); list.add("one"); list.add("three"); list.add("three"); //默认 .

2020-08-26 16:45:05 214

原创 工作中遇到的sql优化中的and和or

先来列举两个sqlselect * from am_base_info a, am_talent_info t where a.id_num = t.id_num and t.talent_level = '1' and (t.highend_type = '1' or t.highend_type = '3' or t.highend_type = '4') or a.region_code in (110001)通过oracle中的explain查看执行计

2020-08-10 15:06:48 868

原创 通过反射校验实体类中属性值是否符合要求

业务逻辑中通常对于保存或者导入的信息需要进行校验,这时候我们如果通过后台校验可能需要大量的ifelse去判断,那不如通过一个反射写一个通用的校验,请看代码--》import org.apache.commons.lang3.ObjectUtils;import java.lang.reflect.Field;import java.util.*;/** * @Author: yitianRen * @Date: 14:30 2020/8/1 * @Description: * @.

2020-08-01 17:35:23 414

原创 接收HttpServletRequest参数转参工具类

根据项目需要统一转换参数方法,key是String,value也可以写成String类型,这里处理是Object/** *@Author: yitianRen *@Date: 17:21 2020/5/24 *@Description: Mapper操作需要传递类型过多 *@Version v1.0 */ public static Map<String, Object> getParamMapObject(HttpServletRequest request) {

2020-05-28 17:11:59 442

原创 js比较日期大小(年月日、月日)

let nowMonthDay = tool.getNowMonthDay();let _nowMonthDay = new Date(nowMonthDay.replace(/-/g, "/"));var MayStart = new Date('05-15'.replace(/-/g, "/"));var MayEnd = new Date('05-30'.replace(/-/g, "/"));var NovStart = new Date('11-15'.replace(/-/g, "/".

2020-05-24 22:10:42 3405

原创 使用axios.post后台获取不到params(参数)/bodyParam

正常情况如果使用axios.postaxios post请求Content-Type默认为 application/x-www-form-urlencoded,我们传递参数的时,params里面的参数(简单的对象,通过 "{}" 或者 "new Object" 创建的)会被以&拼接的方式拼接到请求地址的后面,data里面的参数(简单的对象,通过 "{}" 或者 "new...

2020-04-09 16:29:24 2485

原创 HashMap

Java集合之一—HashMap文章的三个问题:为何HashMap的数组长度一定是2的次幂?中总结一下(博主查浏览了很多前辈们的文章,感觉这篇也很简单明了,给出了添加和扩容的源码HashMap初始容量为什么是2的n次幂及扩容为什么是2倍的形式):散列均匀减少Hash碰撞 查询高效 减少空间浪费...

2020-03-26 11:32:31 127

原创 Intellij IDEA 通过数据库表逆向生成带注释的实体类文件(Generate POJOs.groovy)(hibernate逆向工程)

大道始,损有余而补不足由于业务增加,需要新增表,项目框架又是Hibernate,如果手写表感觉到在做无用功,而且很容易出错,这里就巴拉巴拉了前辈们的代码和博客,参考着写了个逆向生成实体类方法,生成Mybaties实体工具请参考博主分类Mybaties系列文章逆向生成实体类的前提是你已经通过idea连接了oracle数据库,博主已经写好了一篇,仅供参考,传送门:idea连接远程Oracle数...

2020-03-24 14:19:21 1433 1

原创 idea连接远程Oracle数据库生成实体或者使用操作sql

道可道非常道 天道酬勤前提配置:(其中hibernate-entitymanager是为了生成实体类,ojdbc是连接oracle的驱动)<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactI...

2020-03-24 10:03:30 607

转载 Idea使用@Setter @Getter 注解依旧为红色

亲测有效

2020-03-24 08:20:08 767

原创 java项目构建基础:统一结果

Java项目构建基础:统一结果,统一异常,统一日志(好文推荐)/** * 接口响应状态码 */public enum ResponseCodeStatus { SUCCESS("0","成功"), FAIL("1","失败"), OVERTIME("2","超时"), WARNING("3","警告"), UNAUTHENTICATED("4"...

2020-03-20 10:27:37 268

原创 由于找不到VCRUNTIME140.dll,无法继续执行代码问题解决

看了好多修复手段,安装2015修复2017都没有效果,找了好久直接下载安装链接: https://pan.baidu.com/s/1PZPQC2zjZ6FBW3i76nc65A 提取码: 4ya7

2020-03-06 13:52:46 5801 3

原创 EnumUtil通过枚举类型和相应的值返回枚举And转换枚举到JSONArray

public interface BaseEnum <E extends Enum<?>,T> { E getValueByCode(String code); T getCode(); String getMessage();}/** * 性别 * @Param: * @Return: * @update: yitianRen2...

2020-03-03 01:11:57 451

原创 java类库之Enum

Enum还是挺有意思的,类库中的方法不是很常用,不过对于常见的分类还是比较友好的,例如性别举例:/** * @Date 2020/1/3 9:23 * @Version 1.0 */public interface BaseEnum <E extends Enum<?>,T> { E getValueByCode(String code); ...

2020-03-03 00:35:24 180

原创 java类库之Boolean

/**yitianRen**/public class testBoolean { public static void main(String[] args) { Boolean testBoolean1=true; Boolean testBoolean2=true; Boolean testBoolean3=false; ...

2020-03-03 00:07:36 187

原创 java8在线Api英文中文文档

英文中文

2020-03-02 23:33:14 1458 1

原创 Mysql常见函数

常用数值函数和聚合函数 摘录自微信文档--// 内置函数 ------------ 数值函数abs(x) -- 绝对值 abs(-10.9) = 10format(x, d) -- 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46ceil(x) -- 向上取整 ceil(10.1) = 11flo...

2020-02-22 01:38:28 128

原创 Mybatis和Oracle模糊查询

链接,亲测有效

2020-02-19 16:06:31 297

原创 数据库历史多条记录变更通过反射回写主表案例

/** *@Author: yitianRen *@Date: 13:56 2020/2/12 *@Description: 回写主表 根据idNum *@Version v1.0 */ private void writeBackeAmBaseInfo(String idNum,List<AmBaseInfoChgItem&gt...

2020-02-13 16:54:54 200

原创 IDEA新建Java类有注释

附模板:/** *@Author: ${User} *@Date: ${TIME} ${DATE} *@Description: *@Version v1.0 */

2020-02-06 20:55:53 484

原创 Idea注释模板 Java

双引号表示默认这个值,输入后enter键结束附:方法注释:/** * @Author: $user$ * @Description: * @Date: $time$ $date$ * @Param: $params$ * @Return: $return$ * @Version $version$ */类注释:/** *@Author...

2020-02-06 20:49:20 175

taotao商城源码

淘淘商城源码,涵盖基础ssm项目需求和分布式项目需求,

2018-12-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除