- 博客(33)
- 资源 (11)
- 收藏
- 关注
原创 记一次feign调用序列化的问题
测试环境出现页面报错,经调试和查看日志发现是A服务调用B服务之间出了问题。报错如下:feign.codec.EncodeException: Error converting request body at org.springframework.cloud.openfeign.support.SpringEncoder.encode(SpringEncoder.java:112) at feign.form.FormEncoder.encode(FormEncoder.
2021-11-05 18:45:01
5149
2
转载 springboot 之 @ConfigurationProperties注解的使用
前言最近在思考使用java config的方式进行配置,java config是指基于java配置的spring。传统的Spring一般都是基本xml配置的,后来spring3.0新增了许多java config的注解,特别是spring boot,基本都是清一色的java config。Spring配置方式第一阶段:xml配置 在spring 1.x时代,使用spring开发满眼都是xml配置的bean,随着项目的扩大,我们需要把xml配置文件分放到不同的配置文件中,那时候需要频繁地在开发
2021-10-15 16:47:40
416
转载 springboot 之 自定义异常,实现业务逻辑错误提示
为了解决把系统里的业务提示与代码错误和系统错误提示区分开,需要有统一的异常提示机制,所以用自定义异常来解决此问题一、首先定义异常类ServiceException,里面重载了三个构造方法,可以适用不同场景的异常提示问题@Getterpublic class ServiceException extends RuntimeException{ private Integer code; /** * 使用已有的错误类型 * @param type 枚举类中的错误类型
2021-10-09 14:36:15
1222
原创 springboot 之aop实现日志记录
一、首先自定义注解类SysLogAnnotation/** * @date 2019/2/1 操作日志注解 */@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface SysLogAnnotation { /** * 描述 * @return {String} */ String value();}二、添加切面类SysLogAspect,实现同一
2021-10-09 10:40:14
3089
2
原创 mybatis之generator代码自动生成
使用generator自动生成mapper,entity,xml文件减少手动编写工作,并且生成的实体自动添加中文注释1、引入maven jar包 <!--mysql连接和generator相关包--> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core<
2021-09-29 15:12:33
158
翻译 springboot之整合slf4j
1 引入依赖 <!-- 日志 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.5</version> <scope>compil
2021-09-29 14:39:35
914
原创 idea好用的插件
添加插件路径:settings===>plugins搜索插件名称,然后点击install,重启idea后生效1、Free Mybatis pluginmapper文件跳转到sql的插件2、maven Helpermaven查看jar包冲突插件3、SonarLint代码格式,魔法值等检测...
2021-06-04 14:55:41
138
原创 springcloud动态配置不同环境logback日志 配置
1、首先在bootstrap.yml文件添加如下配置:logging.config: classpath:logback-spring.xml //配置各个环境使用的log配置文件logback.path: /home/work/logs //配置相应的环境log打印路径2、不同环境动态配置日志路径和级别动态配置日志打印路径:使用springProperty属性,source配置对应的yml文件的配置<springProperty scope="context" na
2021-05-21 17:12:15
3853
原创 springcloud接入knife4j在线api文档
1、引入Maven依赖jar包<!--knife4j-micro-包含swagger2依赖--> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-micro-spring-boot-starter</artifactId> <version>
2021-05-21 17:06:24
655
转载 Springboot 整合Retry 实现重试机制
重试,在项目需求中是非常常见的,例如遇到网络波动等,要求某个接口或者是方法可以最多/最少调用几次;实现重试机制,非得用Retry这个重试框架吗?那肯定不是,相信很多伙伴手写一下控制流程的逻辑也可以达到重试的目的。那么用Retry的好处是什么? 简单来说,就是优雅。Retry重试框架,支持AOP切入的方式使用,而且能使用注解;想想,重试次数、重试延迟、重试触发条件、重试的回调方法等等我们都能很轻松结合注解以一种类似配置参数的方式去实现,优雅无疑。那么,我们接下来就来一起使用Springboot整合这个
2021-05-08 15:30:18
279
转载 zookeeper实现服务注册的原理
本文介绍基于ZooKeeper的Dubbo服务注册中心的原理。1.ZooKeeper中的节点ZooKeeper是一个树形结构的目录服务,支持变更推送,因此非常适合作为Dubbo服务的注册中心。注:在ZooKeeper中,节点分为两类,第一类是指构成集群的机器,我们称之为机器节点;第二类是指数据模型中的数据单元,称之为数据节点ZNode。ZooKeeper将所有数据存储在内存中,数据模型是一棵树(ZNode Tree),由斜杠(/)进行分割的路径,就是一个ZNode,例如/foo/path1。每个ZNo
2021-03-29 18:02:24
1390
原创 记一次maven jar包引入问题
项目场景:SpringBoot集成EasyExcel,在导入Excel进行解析处理时,执行到doReadSync()时报错,提示java.lang.IncompatibleClassChangeError或者net.sf.cglib.beans.beanMapnot found。本地却没有问题问题描述:报错日志com.alibaba.excel.exception.ExcelAnalysisException: java.lang.IncompatibleClassChangeError: c
2021-03-18 11:17:07
427
转载 30道Redis面试题
1、什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Re
2021-03-17 16:38:53
84
原创 springboot 之 项目启动后执行某方法
由于在工作中需要缓存省市区信息,并且还要定时的去更新,所以写了个定时任务去定时更新缓存的省市区信息,但是当服务器重启后缓存是为空的,这时使用会有问题,所以想到在项目启动是去初始化缓存信息,下面讲到的方法就是基于此而来。第一个想到的是使用ApplicationRunner和CommandLineRunner,下面讲讲这两个实现方式1、实现ApplicationRunner接口ApplicationRunner 源码如下 :public interface ApplicationRunner {.
2021-03-11 15:04:33
1077
转载 请使用线程池创建线程,而勿手动创建线程
在中大型项目中,不可避免地需要执行异步任务,而异步任务的执行则是通过线程而执行的,因此掌握线程是如何创建的则是执行异步任务的第一步。我们知道,常见的创建线程的方式有:继承Thread类,重写run()方法实现Runnable接口,重写run()方法使用线程池创建线程一、继承Thread类public class ThreadOne extends Thread { @Override public void run() { System.out.printl
2021-03-10 16:56:28
3493
转载 Redis 之 过期策略及内存淘汰机制
Redis的用途非常广泛。作为一个高性能的内存数据库,它经常被用于缓存的业务场景。所谓缓存,即在第一次获取到数据的时候,把它暂存在内存中。这样下次需要这个数据的时候,就直接从内存中取,不用再去查询数据库或调用远程接口,这样可以极大地提高应用程序的性能。如果缓存中的数据永久存在,那占用的内存就会变得越来越大。而内存是有限的,所以缓存系统需要在需要的时候删除一些不必要的缓存数据以节约内存空间。Redis提供了两种机制配合来达到上述目的:过期策略和内存淘汰机制。过期策略使用过Redis的同学应该知道,我
2021-03-10 13:56:35
94
转载 SpringBoot 之 @Configuration注解
从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的,作用为:配置spring容器(应用上下文)@Confi.
2021-03-10 10:28:39
552
转载 spring 之 @Import注解的三种使用方式
spring注解之@Import注解的三种使用方式目录1、@Import注解须知2、@Import的三种用法2.1、第一种用法:直接填class数组2.2、第二种用法:ImportSelector方式【重点】2.3、第三种用法:ImportBeanDefinitionRegistrar方式3、@Import注解的三种使用方式总结1、@Import注解须知1、@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加入spring的IOC容器中2、加入IOC容器的方式有很
2021-03-09 19:09:41
174
转载 Spring 之 @bean注解
1、Spring注解分类从广义上Spring注解可以分为两类:一类注解是用于注册Bean假如IOC容器就是一间空屋子,首先这间空屋子啥都没有,我们要吃大餐,我们就要从外部搬运食材和餐具进来。这里把某一样食材或者某一样餐具搬进空屋子的操作就相当于每个注册Bean的注解作用类似。注册Bean的注解作用就是往IOC容器中放(注册)东西!用于注册Bean的注解: 比如@Component , @Repository , @ Controller , @Service ,@Configration这些注解
2021-03-09 18:48:28
112
原创 Spring Boot 之 @Async实现异步调用
什么是“异步调用”?“异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序。同步调用下面通过一个简单示例来直观的理解什么是同步调用:定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内)@Componentpublic class Task { public static Random random =
2021-03-08 18:11:42
546
原创 spring boot 之拦截器Interceptor
https://blog.csdn.net/reggergdsg/article/details/52962774
2021-03-04 16:58:53
271
1
原创 spring boot 之 过滤器Filter
示例:https://blog.csdn.net/testcs_dn/article/details/80265196
2021-03-04 16:17:11
481
1
原创 Spring Boot 之 session监听器
session存在服务端,session监听器可以用来跟踪session的生命周期。spring-boot项目越来越流行,我就记录下spring boot项目中使用session监听器的过程,以便以后参考。spring boot使用监听器非常方便,使用这2个注解就可自动加载注册了:@WebListener和@ServletComponentScan为了加深理解,使用在线百度翻译了下:当使用嵌入式容器时,可以通过使用@ServletComponentScan启用@WebServlet、@WebFilter
2021-03-04 15:37:58
2179
2
原创 screw-core生成数据库文档
screw-core生成数据库文档1、打开https://toscode.gitee.com/leshalv/screw下载zip代码然后解压2、创建一个srpingboot项目,或者在已有的springboot项目的pom文件中引入screw模块在项目的pom.xml中加上引用 cn.smallbun.screw screw-core ${lastVersion} 注意:${lastVersion}改为当前最新版本,目前为 1.0.53、在项目中添加运行的类,运
2021-01-26 11:19:11
1599
原创 mysql获取某个字段以逗号和分号隔开
为方便使用A表中的某个字段去查询B表包含该字段的数据,写的一个获取逗号和分号隔开字段的sqlSELECT CONCAT('''',field_name,'''',',') FROM tableName limit 1000 ;
2019-11-09 10:16:06
1448
转载 事务的隔离级别详解
文章引用出处:https://www.toutiao.com/i6733032238771864067/什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额...
2019-09-23 11:13:10
235
原创 linux下mysql-5.7.26安装
前面已经安装了jdk,现在安装mysqlmysql-5.7.26安装与前面的版本不同,这里记录下安装过程参考文献:https://segmentfault.com/a/1190000012703513?utm_source=tag-newesthttps://blog.csdn.net/Love_XO/article/details/815025031、下载mysql-5.7.26,...
2019-07-06 18:18:26
339
原创 mybatis中collection通过两个参数确定关联的写法
mybatis中collection的column传入多个参数值项目中在使用association和collection实现一对一和一对多关系时需要对关系中结果集进行筛选,如果使用懒加载模式,即联合使用select标签时,主sql和关系映射里的sql是分开的,查询参数传递成为问题。propertydescriptioncolumn数据库的列名或者列标签别名。与传递给res...
2019-07-04 20:58:24
3777
原创 git使用记录
记录git使用git设置忽略已提交过但本地已修改的文件git代码回退版本git设置忽略已提交过但本地已修改的文件如何在git提交时忽略已提交过但本地已修改的文件git update-index –assume-unchanged [file-path]如果需要恢复提交,使用:git update-index –no-assume-unchanged [file-path]git代码回退...
2019-07-04 19:50:45
341
原创 java stream流操作记录
1、把List<String>转换为id字符串例:List<String> contractIds = new ArrayList<>(Arrays.asList("1-5H4SR6", "1-5UFLJ0", "1-644HEY"));String ids = "'"+contractIds.stream().collect(Collectors.joi...
2019-07-04 19:49:59
1237
原创 Linux 操作命令记录
1、lunix基本命令1)、例如查看 reids安装目录首先: ps -ef|grep redis得到了进程号 xxxx然后: ls -l /proc/xxxx/cwd2)、top 查看cup占用情况 用3)、jps 列出本机所有java进程的pid4)、vi /etc/hosts 配置的文件域名映射2、查看启动服务: ps -ef | grep redisps 命令用于查看...
2019-07-04 19:42:47
185
2023idea设置,个性化配置,还有插件下载不了的问题都能解决
2023-07-21
格式化数据为想要的in条件的数据
2020-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人