自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 收藏
  • 关注

转载 @MappedSuperclass的用法

这个注解表示在父类上面的,用来标识父类。基于代码复用和模型分离的思想,在项目开发中使用JPA的@MappedSuperclass注解将实体类的多个属性分别封装到不同的非实体类中。例如,数据库表中都需要id来表示编号,id是这些映射实体类的通用的属性,交给jpa统一生成主键id编号,那么使用一个父类来封装这些通用属性,并用@MappedSuperclas标识。注意:1.标注为@MappedSuperclass的类将不是一个完整的实体类,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字

2021-09-26 17:40:28 63

转载 实体继承与@Builder注解共存

在面向对象的设计里,继承是非常必要的,我们会把共有的属性和方法抽象到父类中,由它统一去实现,而在进行lombok时代之后,更多的打法是使用@Builder来进行对象赋值,我们直接在类上加@Builder之后,我们的继承就被无情的屏蔽了,这主要是由于构造方法与父类冲突的问题导致的,事实上,我们可以把@Builder注解加到子类的全参构造方法上就可以了!下面做一个Jpa实体的例子一个基类它一般有统一的id,createdOn,updatedOn等字段 ,在基类中统一去维护。注意:父类中的属

2021-09-26 17:38:34 232

转载 mysql 快速导入大SQL文件

进入mysqlmysql -u root -p创建数据库CREATE DATABASE 数据库名;设置参数set sql_log_bin=OFF;//关闭日志set autocommit=0;//关闭autocommit自动提交模式使用数据库use 数据库名;开启事务START TRANSACTION;引入SQL文件source 文件的路径;成功后事务提交COMMIT; ...

2021-08-26 20:02:43 290

转载 SpringBoot普通类获取spring容器中bean的方法

前言在spring框架中,是无法在普通类中通过注解注入实例的,因为sping框架在启动的时候,就会将标明交给spring容器管理的类进行实例化,并梳理他们彼此的依赖关系,进行注入,没有交给spring容器管理的普通类,是不会进行注入的,即使你使用了注入的相关注解。这个时候,如果我们需要在普通类中获取spring容器中的实例,就需要一些特定的方法,这里将整理一下如何在springboot中实现这样的方法。创建springboot工程demo项目结构图示项目结构说明service包下为demo接

2021-08-04 11:24:54 472

转载 springboot自定义接受参数

在JavaWeb程序的开发过程中,接口是前后端对接的主要窗口,而接口参数的接收有时候是一个令人头疼的事情,这其中最困扰程序猿的,应该是时间参数的接收。比如:设置一个用户的过期时间,前端到底以什么格式传递参数呢?时间戳?还是2019-12-01 22:13:00这种格式?还是其他格式?今天我就来总结一下SpringBoot Web应用接口接收时间类型参数的问题解决方案。注:目前我对Spring源码的掌握还不是很好,所以这一篇仅仅总结一下解决方法,后面感悟多了会重写一下!????示例代码请前往:

2021-07-21 09:49:15 230

转载 vue之修改v-model页面不渲染

在created 里给变量input框赋值后 页面没有任何改变,v-model bug了么打了断点 发现修改input框 其实this 已经拿到值了至于页面刷新的问题有2种解决方案this.$set(this.form,‘data’,2); 推荐//this.form为在data中声明的数组名,‘data’是要改变的数组下的指定字段名,2是要变化的值this.$forceUpdate() 强制刷新...

2021-06-29 16:13:01 1177

转载 Java中找出缺失的数字

给定一组连续的整数,例如:10,11,12,……,20,但其中缺失一个数字,试找出缺失的数字 1 import java.util.*; 2 3 public class Main { 4 public static void main(String[] args) { 5 // 构造从start到end的序列: 6 final int start = 10; 7 final int end = 20; 8 Li...

2021-06-24 17:37:21 1213

转载 sql排序后去重

场景有一张得分表(score),记录了用户每次的得分,同一个人可能有多个得分。id name score 1 tom 45 2 jack 78 3 tom 34 . . . 需求:找出分数最高的前5个人。SQL1首先我们写个最简单的sql: select id, name, score from score order by score des

2021-06-24 17:10:10 1183

转载 Nginx负载均衡配置

原文链接:http://blog.csdn.net/xyang81/article/details/51702900Nginx安装请参考:《Nginx源码安装》负载均衡的目的是为了解决单个节点压力过大,造成Web服务响应过慢,严重的情况下导致服务瘫痪,无法正常提供服务。春节期间在12306网站上买过火车票的朋友应该深有体会,有时查询一张火车票都会很慢,甚至整个网页都卡住不动了。通常一个访问量非常大的Web网站(比如:淘宝、京东、12306等),由于一个Web服务同时能处理的用户并发请求的...

2021-03-19 16:33:04 114

转载 2pc和3pc的优缺点比较(同步阻塞、单点故障、数据不一致)

1.2pc2pc(Two Phase Commitment Protocol)当一个事务操作需要跨越多个分布式节点的时候,为了保持事务处理的 ACID特性,就需要引入一个“协调者”(TM)来统一调度所有分布式节点的执行逻辑,这些被调度的分布式节点被称为 AP。TM 负责调度 AP 的行为,并最终决定这些 AP 是否要把事务真正进行提交;因为整个事务是分为两个阶段提交,所以叫 2pc二阶段提交协议将事务提交分为两个阶段来进行处理,其执行流程过程如下:阶段一:提交事务请求 事务询问 协调者向

2021-03-18 09:29:55 988 1

转载 分布式事务处理方案(CAP、Base、2PC、3PC、TCC、Saga)

一、CAP:一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。一致性:在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)。可用性:在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)。分区容忍性:以实际效果而言,分区相当于对通信的时限要求。系统如果...

2021-03-17 17:38:18 266

原创 Google Guava学习 -Guava cache

谷歌Guava缓存Guava介绍Guava是Google guava中的一个内存缓存模块,用于将数据缓存到JVM内存中。实际项目开发中经常将一些公共或者常用的数据缓存起来方便快速访问。Guava Cache是单个应用运行时的本地缓存。它不把数据存放到文件或外部服务器。如果不符合需求,可以选择Memcached、Redis等工具。@Componentpublic class LocalCache { private Cache<String,Object> ...

2021-03-15 17:49:29 64

转载 Google Guava学习 -Guava Range类

1.功能:数据范围处理2.代码:package com.example.google.guava.demo.clazz; import com.google.common.collect.ContiguousSet;import com.google.common.collect.DiscreteDomain;import com.google.common.collect.Range;import com.google.common.primitives.Ints; /** *

2021-03-15 16:35:32 95

转载 redis缓存同步

以前自己在学校学习redis的时候还真没想到这么多,上班后看公司的项目代码,发现都是先更新DB,然后删除缓存,而且更新DB后不会立马将DB数据放入缓存,然而我以前不管是查询还是update都是操作完DB后立马放入缓存。。。扯远了,回到重点,为什么先更新DB后删除缓存呢?听我慢慢道来~提出问题问题场景:当数据出现变化的时候,DB和redis的一致性就显得非常重要!并发的情况下,主要是看场景,和代价,进行选择。目前主要有两种策略:先删除缓存后更新DB(用的少,容易产生大量的脏数据)结论:

2021-03-08 09:23:10 490

转载 IDEA中MyBatis的mapper文件 实体类名报红 Cannot resolve symbol ‘XXX‘

问题描述使用IDEA,Spring Boot整合MyBatis开发时,写Mapper文件时,实体类名报红其实我已经在Spring Boot的配置文件application.yaml中配置了MyBatis对于实体类别名应该去找的路径,mybatis: # 这样就可以在mapperXML中用简单的Account代替冗长的com.sapi.entity.Account type-aliases-package: com.sapi.entity并且运行项目也没有任何error,证明项目

2021-03-08 09:18:28 3262 2

转载 《大话处理器》Cache一致性协议之MESI

Cache一致性协议之MESI 处理器上有一套完整的协议,来保证Cache一致性。比较经典的Cache一致性协议当属MESI协议,奔腾处理器有使用它,很多其他的处理器都是使用它的变种。单核Cache中每个Cache line有2个标志:dirty和valid标志,它们很好的描述了Cache和Memory(内存)之间的数据关系(数据是否有效,数据是否被修改),而在多核处理器中,多个核会共享一些数据,MESI协议就包含了描述共享的状态。 在MESI协议中,每个Ca...

2021-02-19 14:02:49 102

转载 MyBatis-Plus入门,看这一篇就足够了

一、Mybatis-Plus简介MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。我们的愿景是成为 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Se...

2021-02-19 12:14:56 523

原创 mybatis-plus实现逻辑删除

逻辑删除:在数据库中没有被移除,而是通过一个变量来让他失效!delete=0 => delete=1 ,需要在实体类中添加注释实体类中添加注释 /** 删除标志(0代表存在 2代表删除) */ @TableLogic(value = "0",delval = "2") private String delFlag;@TableLogic注解的使用方法调用删除方法sysUserMapper.deleteById(6L);实际执行sql==...

2021-02-10 11:33:28 372

原创 mybatis plus 获取插入后自增id

解决办法就是关掉mybatis自增长,在实体映射类里更改相关注解即可: /** 用户ID */ @TableId(value = "user_id",type = IdType.AUTO) //设置id自增,才能在插入后返回id,设置type才能显示正常的自增id,不设置type插入id会很大 private Long userId;...

2021-02-10 10:32:51 4012 1

原创 Springboot 多模块集成mybatis提示:Invalid bound statement (not found),classpath和classpath*区别

1、第一步:检查提示错误信息接口namespace 文件是否对应:MyBatis 文件Mapper 接口定义与Mapper.xml 文件定义一致。2、整体项目结构截图如下:从项目结构来看:包含两个子模块包含MyBatis 的mapper 文件。application.yml 关于mybatis 配置文件(错误配置如下):mybatis: type-aliases-package: com.zzg.author.model.domain;com.zzg.quartz.

2021-02-09 10:06:14 315

转载 layui表格单元格中插入下拉框

这个实现采用了layui 社区一位大神的代码,在此感谢大神的分享,我自己做个记录,也给使用layui 的小伙伴们做一个分享。思路是这样的可以使用自定义模板返回select节点然后在done回调中form.render(‘select’);然后还有一个需要注意的是默认td 超出是不显示的,所以你会发现form渲染之后select出来了,但是点击下拉的菜单会看不到,需要处理一下。代码也贴出来<!DOCTYPE html><html><head>

2021-02-04 16:41:55 3905 3

转载 spring aop两种动态代理方式及其区别(代理模式)

什么是动态代理?假如我有一个user对象,该对象里面有4个方法,增、删、改、查,外界能直接调用这4个方法吗?拿百度来说,你能随便对百度上的内容进行增、删、改、查操作吗?你最多能执行查的操作,增、删、改的操作是不能执行的,你必须要加一个权限操作,应该看看你是否有权限执行这个操作。同理,谁操作了这个东西,你需要给我留下记录,免得我不知道是谁做的。所以,我应该在每一个方法的前面加权限校验,在每一个方法的后面加日志记录。该怎么做呢?有人说,很简单,直接在user对象的实现类里面去改,在增、删、改查前面加

2021-01-18 09:34:36 3127

转载 Mybatis:动态sql中For input string: “要判断的值“的问题(一般出现在判断语句中)

报错原因mybatis是用OGNL表达式来解析的,在OGNL的表达式中,'1'会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析,需要将'1'改为"1",或者加 .toString() 来转换。报错点:我这里像依据性别进行查询错误的写法:<select id="getStudentByCondition" parameterType="string" resultType="com.ctbu.stusys.dom.

2021-01-14 09:50:42 311

转载 SpringBoot用实体接收Get请求传递过来的多个参数(绝对可用)

一、Controller层不带任何注解接收参数第一种方法是最简单的,严重怀疑以前怎么没有用,谁知道呢。。不过这次是真的管用了,最简单的方式就是Controller接口入参不加任何注解!!!SpringBoot自动做了处理。代码如下:/** * @author zhangzhixiang * @since v1.0.0 */@RestController@RequestMapping(path = "/ui/institution")public class InstitutionMan

2020-12-31 12:00:21 3719 1

原创 MySQL分组统计各种条件的个数

select count(*) as 总数, sum(1) as 所有条数,sum(a=2) as 符合条件的条数,sum(a=1) as 符合条件的条数 from 表 group by 字段

2020-12-30 15:28:34 2230

原创 java list 深度克隆

public static <T> List<T> deepCopy(List<T> src) throws IOException, ClassNotFoundException { ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(byteOut); out..

2020-12-25 15:43:11 466

转载 spring boot gateway 过滤器的执行顺序

前言学习官方文档,发现对于过滤器有分为三类默认过滤器 自定义过滤 全局过滤器于是就有一个疑问,关于这些过滤器的访问顺序是怎样的,今天就以一个demo来进行测试准备阶段过滤器工厂类以此为模板,复制出几份就可以了,注意打印信息,可区分就行public class ExampleGatewayFilterFactory extends AbstractGatewayFilterFactory { /** * 创造出的过滤器的顺序 */ priv

2020-12-24 16:06:24 505 2

转载 /var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录

0 du -hs /var/lib/docker/ 命令查看磁盘使用情况。linlf@dacent:~$ sudo du -hs /var/lib/docker/237G /var/lib/docker/1 docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:linlf@dacent:~$ docker system dfTYPE TOTAL ACTIVE SI

2020-12-21 10:03:02 605

原创 查看centos目录文件大小

通过强大的【du】命令,可以帮助我们快捷的查看目录的大小,非常实用。du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh【du】常用的选项:  -h:以人类可读的方式显示  -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小  -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小1. CentOS7/RHEL6中,查看单一指定目录大小例如:查看home目录的大小,使用命令 du -sh /home2.Ce.

2020-12-21 09:33:29 3378 1

转载 spring cloud gateway全局过滤器 向request header中放数据

exchange.getRequest().getHeaders().set(); 是不能向 headers中放文件的这时配置一个gateway全局过滤器 filter中 做了向 header放数据 @Componentpublic class AuthSignatureFilter implements GlobalFilter, Ordered { static Logger logger = LoggerFactory.getLogger(AuthSignatureFil..

2020-12-18 12:08:51 2764

转载 @FeignClient注解 中属性 contextId使用

如果我们使用Feign定义了两个接口,但是目标服务是同一个,那么在SpringBoot启动时就会遇到一个问题:Description:The bean 'optimization-user.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.Action

2020-12-17 17:55:57 2292

转载 内存溢出+CPU占用过高:问题排查+解决方案+复盘(超详细分析教程)

前言最近刚上线了一款社交项目,运行十多天后(运营持续每天推量),发现问题:系统OOM(资源不能被释放)导致服务器频繁且长时间FGC导致服务器CPU持续飚高 日志中内存溢出:java.lang.OutOfMemoryError: Java heap space 程序十分卡顿,严重影响用户使用从以下方面,为大家分享此次问题解决流程问题出现现象 临时解决方案 复现问题 定位问题发生原因 优化代码 优化后进行压测,上线 复盘学完本博文,你的收获排查内存溢出的思路 排查内存

2020-12-08 10:57:23 534

转载 JVM夺命连环10问

这是面试专题系列第五篇JVM篇。这一篇可能稍微比较长,没有耐心的同学建议直接拖到最后。说说JVM的内存布局?Java虚拟机主要包含几个区域:堆:堆Java虚拟机中最大的一块内存,是线程共享的内存区域,基本上所有的对象实例数组都是在堆上分配空间。堆区细分为Yound区年轻代和Old区老年代,其中年轻代又分为Eden、S0、S1 3个部分,他们默认的比例是8:1:1的大小。栈:栈是线程私有的内存区域,每个方法执行的时候都会在栈创建一个栈帧,方法的调用过程就对应着栈的入栈和出栈的过程。每个栈帧

2020-11-24 11:10:08 67

转载 阿里、腾讯、美团等P7岗位面试题

来自朋友最近阿里、腾讯、美团等P7岗位面试题程序员小灰昨天以下文章来源于艾小仙,作者艾小仙艾小仙2本学渣,阿里P7,9年码龄,纵观半生,产品运营,开发测试,app游戏,大厂小厂,雨露均沾,创过业,亏过钱,沉下心,从头淦。来自年初和最近朋友的大厂面试题。阿里巴巴 对象如何进行深拷贝,除了clone happen-before原则 jvm调优的实践 单例对象会被jvm的gc时回收吗 redis如果list较大,怎么优化 tc..

2020-11-24 11:09:11 1074

转载 Java的开源快速开发框架

作者:HPioneer链接:https://www.zhihu.com/question/51117504/answer/1373939385来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1、若依 ruoyi,全代码开源的,可免费使用。官网地址:https://ruoyi.vip/体验地址:登录若依系统如果你想了解,不妨看下下面2个文章,深入了解下若依:HPioneer:专题:快速开发那点事儿 | 无代码开发?? RUOYI框架教程(一)ht.

2020-11-24 10:52:26 1298

转载 12 款做Java后台管理系统的项目,超级无敌好用!

1.D2admin文档地址:https://d2.pub/zh/doc/d2-admin/效果预览:https://d2.pub/d2-admin/preview/#/index开源协议:MIT2.vue-element-admin文档地址:https://panjiachen.github.io/vue-element-admin-site/zh/效果预览:https://d2.pub/d2-admin/preview/#/index开源协议:MIT3.JEECG-

2020-11-24 10:48:32 671

转载 @Inherited注解的作用

看到很多注解都被@Inherited进行了修饰,但是这个@Inherited有什么作用呢?查看@Inherited代码描述:Indicates that an annotation type is automatically inherited. If an Inherited meta-annotation is present on an annotation type declaration, and the user queries the annotation type on a clas

2020-11-23 17:09:57 649 1

转载 JAVA-简单实现文本相似度计算-余弦相似度

计算文本相似度方法文本的相似度计算方法可以分为两大类:基于深度学习的方法和基于非深度学习的方法。虽然小的我在自然语言处理与交互部,但我只是个开发,不是算法,所以这里采用简单的非深度学习的方法。常用的几个计算方法:余弦相似度、最小编辑距离。。。。。由于场景比较简单,所以并没有对文本进行分词,如果有需要,可以用jieba,hanlp等等余弦相似度private static double getSimilarity(String doc1, String doc2) { if (Stri

2020-11-23 11:27:36 1110

原创 SpringBoot事务不生效可能存在的原因

1.mysql表必须支持事务:引擎为INNODB2.SpringBoot启动事务@EnableTransactionManagement3.方法上加注解@Transactional//默认只对RuntimeException起作用,可修改4.方法必须为public修饰5.同类中事务的方法不能嵌套在其他方法中, QQQ类中A方法调用B方法,B方法开启事务注解,B方法中事务不会生效。 将A方法放到其他类中,B方法为QQQ类中的一级方法并加注解,事务就会生效。==============.

2020-11-11 17:36:16 1788

转载 Spring使用注解@Transactional事物手动回滚

手动回滚:方法1:在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常(现在项目的做法)方法2:例如service层处理事务,那么service中的方法中不做异常捕获,或者在catch语句中最后增加throw new RuntimeException()语句,以便让aop捕获异常再去回滚,并且在service上层(webser.

2020-11-11 17:29:18 533

空空如也

空空如也

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

TA关注的人

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