自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Jackson自定义序列化与反序列化注解

Jackson自定义序列化与反序列化注解

2022-07-28 15:07:05 2516 1

原创 获取泛型的实际类型

获取泛型的实际类型

2022-07-12 12:18:58 3389

原创 SkyWalking监控告警

SkyWalking监控告警实现

2022-07-05 15:39:24 768 1

原创 策略模式在项目中的使用

策略模式在项目中的使用

2022-07-04 10:38:19 279

原创 SpringCloudGateway基于Nacos实现动态路由优化

SpringCloudGateway基于Nacos实现动态路由优化

2022-06-28 15:56:20 558

原创 SpringCloudGateway自定义Filter

SpringCloudGateway自定义Filter

2022-06-28 15:53:51 2277

原创 SpringCloudGateway整合ribbon实现路由

SpringCloudGateway整合ribbon实现路由

2022-06-28 10:43:11 1468

原创 使用maven-shade-plugin relocation解决包冲突

项目中使用了org.springframework.cglib.beans.BeanCopier进行JavaBean的复制操作,此操作不会进行类型转换操作,及类型不一致时,属性无法赋值,包括基本类型和包装类型,需要使用Converter进行类型转换。查看Converter时发现没有参数名的描述,于是在github上查询Spring-core的源码,发现源码与Jar中文件差异很大spring-core.jarspring-core源码许多jar中的class文件在源码中不存在,怀疑为打包时进行了某

2021-11-24 15:13:59 2122 1

原创 AbstractRoutingDataSource实现动态数据源切换

AbstractRoutingDataSourcespring-jdbc的包中,提供了AbstractRoutingDataSource用于数据源路由操作public abstract class AbstractRoutingDataSource extends AbstractDataSource implements InitializingBean {该类实现了InitializingBean接口,说明初始化时会调用afterPropertiesSet方法@Overridepublic

2021-11-24 13:39:57 1301 1

原创 RedisTemplate使用Jackson序列化及反序列化

@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate(); this.initDomainRedisTemplate(redisTemplate, redisConnectionFact

2021-11-22 23:52:24 1912

原创 Redis数据类型及使用场景

一共有8中数据类型,常用的是5种StringString字符串Int整数Float字符串常用操作命令set young 2673 [EX 过期时间(秒)| PX 过期时间 毫秒] [NX key 不存在操作才能成功| XX 只有Key存在的时候才能成功]mset young 2673 hui 666 批量setmget young hui 批量getstrlen young value长度append young good 给value后面追加getrange young 0 8 返回

2021-11-22 23:45:56 545

原创 redis java客户端

https://redis.io/clients#java星标为推荐客户端Jedishttps://github.com/xetorthio/jedis<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version></dependency>

2021-11-22 23:40:12 609

原创 CentOS 7 安装redis 6

安装1、下载redishttp://download.redis.io/releases比如把Redis安装到/usr/local/soft/cd /app/toolswget http://download.redis.io/releases/redis-6.2.6.tar.gz2、解压压缩包tar -zxvf redis-6.2.6.tar.gz3、安装gcc依赖Redis是C语言编写的,编译需要yum install gcc4、编译安装cd /app/tools/redi

2021-11-22 23:36:21 359

原创 SpEL表达式的使用

Spring Expression LanguageSpEL是Spring提供的一种的表达式语言,支持在运行时查询和操作对象。SpEL并不直接与Spring相关联,可以独立使用。SpEL解析器SpEL提供了对应的解析器SpelExpressionParser用于解析SpEL表达式EvaluationContextEvaluationContext用于计算表达式以解析属性、方法、字段,并帮助执行类型转换。Spring提供了两个实现SimpleEvaluationContext和StandardE

2021-11-21 18:16:07 6772 2

原创 Nginx防盗链配置

作用放置其他人盗用系统静态资源正常访问location ~* .\(png|gif|png)${ root /usr/static;}此时可以通过浏览器可以正常访问到静态资源也可以通过命令行访问curl --referer http://baidu.com -| http://192.168.12.120/logo.png在curl通过–referer选项来指定我们是从哪里跳转的 -|参数则只显示 http response的头信息表示是通过baidu.com来访问这个地址的加防

2021-11-20 14:43:39 752

原创 nginx跨域配置

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域当前页面url被请求页面url是否跨域原因http://www.test.com/http://www.test.com/index.html否同源(协议、域名、端口号相同)http://www.test.com/https://www.test.com/index.html跨域协议不同(http/https)http://www.test.com/http://www.baid

2021-11-20 14:31:11 1015

原创 Nginx动静分离

server{ listen 80; server_name local_host; location /{ proxy_pass http://127.0.0.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_fo

2021-11-20 14:28:54 884

原创 Nginx负载均衡配置

网络负载均衡的大致原理是利用一定的分配策略将网络负载平衡地分摊到网络集群的各个操作单元上,使得单个负载任务能够分担到多个单元上并行处理,使得大量并发访问或者数据流量分担到多个单元上分别处理,从而减少用户的等待响应时间upstream是nginx的http Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡upstream与server同级# 负载均衡配置upstream yhsblog { # 列举负载均衡的服务器列表 server 127.0

2021-11-20 14:27:41 539

原创 Nginx反向代理

概念正向代理:是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。(类似于访问谷歌,请求代理服务器,代理服务器请求谷歌,谷歌响应到代理服务器,代理服务器返回给浏览器)。客户是知道代理服务器和原始服务器的存在的反向代理:位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获取目标服务器的资源。同时,客户不需要知道目标服务器的地

2021-11-20 14:24:59 859

原创 Nginx location匹配规则

location会尝试根据用户请求中的URI来匹配上面的uri表达式,如果可以匹配,就会选择location{}块中的配置来处理用户请求。匹配方式是多样的。location[=||*] /uri/ {​ …}~ 波浪写表示执行一个正则匹配,区分大小写~* 表示执行一个正则匹配,不区分大小写= 进行普通字符精确匹配URI匹配模式location的指令分为两种匹配模式普通字符串匹配:以=开头或者没有带正则引导符号(~)规则location /uri 普通匹配前缀匹配匹配采用最长匹

2021-11-20 14:22:38 1055

原创 SpringBoot基于Redis使用SpringCahe

Spring Cache 官方文档注解@Cacheable作用于方法或者类上。作用于类上表示该类中所有方法都会走缓存操作cacheNames/value缓存名称,可配置多个,调用方法前,会检查是否有命中的缓存,如果有命中至少一个缓存,则返回缓存值,不执行方法操作。更新缓存时,value中所有的缓存名称对应的缓存都会更新。@Cacheable(value={"a","b"})public String a(){.....}@Cacheable(value="b")public Stri

2021-11-18 13:16:21 872

原创 CentOS 7 搭建mysql 5.7

下载mysql源安装包wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm安装mysql源yum localinstall mysql57-community-release-el7-8.noarch.rpm安装mysqlyum -y install mysql-community-server启动mysql服务systemctl start mysqld查看mysql状态..

2021-11-18 13:12:53 543

原创 Nginx配置文件说明

nginx.conf组成main块 配置错误日志、进程及权限等信息设置worker进程的归属 用户 用户组#user nobody;指定worker进程的数量worker_processes 1;错误日志路径 后面是日志级别 debug info notice warn error crit#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info

2021-11-18 13:08:34 437

原创 CentOS 7 安装Nginx

安装gccyum install gcc-c++安装 PCRE pcre-develyum install -y pcre pcre-devel安装zlibyum install -y zlib zlib-devel安装OpenSSLyum install -y openssl openssl-devel下载nginx安装包,地址: https://nginx.org/en/download.htmlwget https://nginx.org/downlo..

2021-11-18 12:15:52 180

原创 SpringBoot上传文件限制

项目中需要控制上传文件的大小,采用了SpringBoot中的配置进行配置,并添加了相关的异常拦截处理。application.yamlspring: servlet: multipart: max-file-size: 5MB # 文件上传大小限制为5MB max-request-size: 5MB # 请求大小限制为5MB全局异常配置@RestControllerAdvicepublic class CustomExceptionHand

2021-11-17 20:38:17 2038

原创 Spring AOP

注解开启AOP@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)proxyTargetClass默认值为false,表示默认使用JDK动态代理,未实现接口的类使用CGLIB,为true表示默认使用CGLIB代理exposeProxy默认值为false,为true表示通过aop框架暴露该代理对象,aopContext能够访问相关注解@Aspect声明切面bean,加在类上,配合@Component使用,否则Sp

2021-11-17 20:33:09 661 1

原创 基于freemarker生成pdf

java8字符集GBK。

2021-11-17 11:31:03 4456 1

原创 SpringBoot Mybatis多数据源配置

生产环境数据源配置为jndi,故代码中的多数据源配置基于jndiJndi数据源配置类public class JndiDataSourceConfig { /** * 自定义全局mybatis配置 */ @Autowired private MybatisConfig mybatisConfig; /** * 创建数据源 * @param jndiDataSouceProperties 数据源配置配 * @return *

2021-11-17 00:29:54 242

原创 CentOS 7安装NodeJs

安装nodejs通过国内镜像地址下载NodeJscd /app/toolswget https://npm.taobao.org/mirrors/node/v16.13.0/node-v16.13.0-linux-x64.tar.xz解压压缩包xz -d node-v16.13.0-linux-x64.tar.xztar -xvf node-v16.13.0-linux-x64.tar进入bin目录cd /app/tools/node-v16.13.0-linux-x64/bin此时

2021-11-17 00:27:09 972

原创 自定义注解的基本操作

编写自定义注解需要一定的反射相关知识元注解作用在其他注解上的注解@Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。@Documented - 标记这些注解是否包含在用户文档中。@Target - 标记这个注解应该是哪种 Java 成员。@Inherited - 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)@Repeatable - Java 8 开始支持,标识某注解可以在同一个声明上使用多次。其中@

2021-11-17 00:08:59 151

原创 Java反射的基础使用

java.lang.reflect的包中,提供了反射相关的类,常用的为Field:字段,Method:方法,Annotation:注解,Constructor:构造器,我们平常最常见到的Class类则在java.lang目录下。Field,Method,Constructor都与Class相关,可以通过Class获取到Class常用获取方式class常用的获取方式有3种类型.class对象的getClass方法()Class.forName(className),使用此方法需传入对

2021-11-17 00:03:20 274

原创 NacosConfig配置中心手动添加监听

使用Nacos做注册中心,会遇到如html,json,txt这类数据的监听,或者需要对数据进行特殊处理的情况,此时需要采用通过手动获取配置中心的数据初始化并且添加监听手动添加Nacos监听public void addNacosListener(String dataId, String group) { try { Properties properties = new Properties(); // gatewayConfig为配置的需要监听的参数 // nacos地址

2021-11-16 13:30:46 3025

原创 ElasticSearch基于Oracle数据库动态更新IK分词器词库

环境系统:CentOSElasticsearch:7.6.2IK:7.6.2DB:Oracle步骤下载指定版本IK的source code ,地址:https://github.com/medcl/elasticsearch-analysis-ik/releases在config目录下增加jdbc-reload.propertiesjdbc.url=jdbc:oracle:thin:@10.10.200.42:1521:orcljdbc.user=credit_lawjdbc.pas

2021-11-15 21:41:39 1981

原创 Java根据属性排序时的null值处理

@Datapublic static class ProjectFileType { private String value; private String name; private Integer order;}针对ProjectFileType这个类,在返回给前端时需要通过order进行排序处理考虑到order字段可能为空,使用了nullsLast处理List<ProjectFileType> list;list.sort(Comparator.null

2021-11-15 19:35:12 3052 1

原创 LogBack配置

logback配置

2021-11-15 16:54:42 1913

原创 nginx配置ssl及http强制转发https

查看nginx是否有ssl模块sh /usr/local/nginx/sbin/nginx -Vnginx version: nginx/1.21.3built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) configure arguments:进入nginx.tar.gz解压后的目录cd /app/tools/nginx-1.21.3添加ssl模块./configure --prefix=/usr/local/nginx ..

2021-11-15 13:21:16 1455

原创 脚本管理工具-DBDeploy

环境搭建1.基本环境Java、Maven、数据库2.初始化控制表创建CHANGELOG表create table CHANGELOG( CHANGE_NUMBER NUMBER(22) not null, COMPLETE_DT TIMESTAMP(6) not null, APPLIED_BY VARCHAR2(100) not null, DESCRIPTION VARCHAR2(500) not null)/alter table CHANGELOG

2021-11-15 10:40:56 1498

原创 使用supervisor进行进程管理

环境:ContOS 7 ,python 2.7安装安装环境yum -y install epel-release安装supervisoryum install -y supervisor启动supervisord服务systemctl start supervisord设置开机自启systemctl enable supervisord检查supervisord进程ps -ef|grep supervisord配置vim /etc/supervisord.conf在最

2021-11-14 18:24:05 148

原创 使用Cglib的BeanCopier复制对象失败

使用BeanCopier进行对象属性的复制,在对某一部分代码进行重构之后发现一部分POJO使用BeanCopier进行属性赋值失败。进行资料查找,发现Cglib中通过Introspector获取BeanInfo,再获取对应的getter和setter方法,其中获取setter方法时,只会获取返回类型为void的setter方法 else if (argCount == 1) { if (int.class.equals(argTypes[0]) && name.startsWit

2021-11-14 15:59:11 1543

原创 利用无头浏览器phantomjs生成echarts图

场景后端生成报告中需要插入与前端相同的echarts图,请求不由前端触发,故无法传入前端生成好的echarts图网上提供解决方案:phantomjs无头浏览器+echarts-convert.js环境搭建参考: https://www.cnblogs.com/yestreenstars/p/5511212.html1.安装依赖软件yum -y install wget fontconfig2.下载PhantomJSwget -P /tmp/ https://bitbucket.org/ar

2021-11-11 13:28:25 1150

空空如也

空空如也

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

TA关注的人

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