技术积累
Mr`王
这个作者很懒,什么都没留下…
展开
-
关于处理Json字符串筛选技术选型
Snack3中的JsonPath,支持宽松的Json查询,兼容性比较强.性能参考原创 2022-01-07 16:22:09 · 224 阅读 · 0 评论 -
记录一次feign进行远程调用传入 @RequestBody List list请求错误问题
其实问题很简单,feign中集成了一个httpclient,不过好像里面某些东西不太对,不支持.但是对象和字符串的请求是可以的所以可以重新引入pom:<!--okhttp--> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId> </d原创 2021-04-07 14:20:18 · 1846 阅读 · 0 评论 -
记录一次MQ在线上使用的一次bug.
线上使用rabbitmq的时候,在某一次更新迭代后出现了一个奇怪的现象,消费了以后没有进行后续正确的操作,导致某些功能一直无效.但是后台操作又可以成功出现原因:在发送MQ了以后,由于本次方法事物没于提交,后面还有一个记录的操作.结果某些主要数据没有入库.mq便已经接收并且消费掉了.解决方法:把MQ的发送放到最后.前面做自己的逻辑处理.提示:在某些if判断中 尽量还是打上info级别的日志,否则出现问题真的很难找到.虽然很弱智的问题,但是一时半会真的想不起来....原创 2021-04-07 14:01:05 · 160 阅读 · 0 评论 -
如何使用hibernate的Validation来优雅的判断代码.
以下为方法的功能注解.@AssertTrue //用于boolean字段,该字段只能为true @AssertFalse //该字段的值只能为false @CreditCardNumber //对信用卡号进行一个大致的验证 @DecimalMax //只能小于或等于该值 @DecimalMin //只能大于或等于该值 @Digits (integer= 2 ,fraction= 20 ) //检查是否是一种数字的整数、分数,小数位数的数字。 @Email //检查是原创 2020-11-05 11:13:51 · 248 阅读 · 0 评论 -
分布式项目中需要考虑哪些内容
前言该文章为简单的浅显记录,程序详情所需,未来可能会不定时更新分布式项目基本配置所需大部分都已阿里巴巴开源框架为主,博主算的上是阿里巴巴的死忠粉,技术水平不算太高,大佬勿喷,仅供参考所需模块:1.注册中心/动态配置-- Nacos2.网关-- gateway3.熔断器(服务保护)-- sentinel4.链路追踪-- Sleuth+zipkin5.Canal-- Mysql增量订阅binlog日志开源项目,为数据库改变,即使改变缓存数据作处理.6.ORM-- Mybatis-Plus7原创 2020-06-10 22:16:39 · 655 阅读 · 0 评论 -
如何通过docker启动Java的jar包
1.下载JDK的容器docker pull java2.运行Java的jar包.运行的步骤将jar包和配置文件放到统一一个文件夹内(配置文件指的是application.yml等这类的配置文件.如果不使用外部文件的话,可以无视)通过docker启动jar包.启动规则为docker run -d -p 外部端口:你的配置文件中的端口 -v /project(你的jar包和配置文件的所...原创 2019-03-15 13:40:40 · 10110 阅读 · 0 评论 -
关于如何解耦if-else(待修改)
https://www.imooc.com/article/37987原创 2019-02-08 17:07:10 · 560 阅读 · 0 评论 -
关于如何配置携程的阿波罗统一配置中心
携程的阿波罗需要依赖Java的JDK.下载JDKJDK安装参考该文章下载携程的阿波罗上传至服务器,解压后,修改其demo.sh文件给上账号和密码.数据库需要预创建,sql文件在文件夹sql中其余的配置不需要变动,在数据库无误启动后启动阿波罗./demo.sh start出现了最后一行表示可以访问,启动已经成功...原创 2019-02-22 12:36:34 · 302 阅读 · 0 评论 -
CentOS如何安装JDK1.8
下载JDK上传JDK到服务器并且解压修改文件vi /etc/profile vi /etc/profile在最底部添加代码JAVA_HOME=/java/jdk1.8.0_201 //根据你的安装路径写 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CL...原创 2019-02-22 12:40:34 · 120 阅读 · 0 评论 -
如何让Linux服务器启动程序进入后台运行
nohup 你的程序 &准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&“来将命令同时放入后台运行,也可用”>filename 2>&1"来更改缺省的重定向文件名。...原创 2019-02-13 16:57:20 · 1956 阅读 · 0 评论 -
Nginx安装
1.安装编译工具库以及文件yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel2.安装PCRE 为了让他支持Rewrite 功能.功能目的是为了在文件中匹配正则下载: wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcr...原创 2019-01-25 20:54:12 · 693 阅读 · 0 评论 -
CentOs安装unzip
yum install zip unzip原创 2019-01-15 10:33:29 · 3950 阅读 · 0 评论 -
CentOs 安装rz,sz
yum install lrzsz原创 2019-01-15 10:32:42 · 469 阅读 · 0 评论 -
Linux命令之持续查看文件日志输出情况
tail -f 文件名 可以持续性观察文件日志的增长改变原创 2019-01-15 10:31:33 · 10143 阅读 · 0 评论 -
关于Xshell隧道代理异常断开后无法连接的问题
在异常断开R->L方向的端口后,会导致无法再次连接该端口,因为服务器并没有与本地进行断开.解决办法:netstat -anp|grep 你的链接端口号.比如8088 在这样的情况下会有一条或者多条数据,找到httpd内容的pid,kill掉,就可以重新连接了....原创 2019-01-15 10:28:27 · 1783 阅读 · 0 评论 -
程序中防止Xss攻击
pom地址:&lt;dependency&gt; &lt;groupId&gt;org.apache.commons&lt;/groupId&gt; &lt;artifactId&gt;commons-text&lt;/artifactId&gt; &l原创 2019-01-12 14:11:01 · 238 阅读 · 0 评论 -
在SpringBoot框架中,异常错误全局拦截以及判断手动抛出异常的代码格式
在程序中需要自己定义自己的异常信息,进行前端提醒以及抛出使用方式如下:首先定义一个自己的异常类public class BaseException extends RuntimeException { private String code; public BaseException(final String code) { this.code = co...原创 2019-01-12 14:04:11 · 1562 阅读 · 0 评论 -
关于如何使用Kafka向elk发送消息
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </dependency> <dependency>原创 2019-02-13 17:12:40 · 372 阅读 · 0 评论 -
配置Logstash消费kafka消息
input{ kafka { topics => "my-log-topic" //这里要和你Java中logback.xml中的<topic></topic>一致 type => "kafka" bootstrap_servers => "192.168.80.112:9092,1...原创 2019-02-13 17:26:53 · 5478 阅读 · 0 评论 -
基于Docker构建ELK以及集成SpringBoot+Kafka发送日志完整流程
本文所用系统环境:CentOS7docker安装不在阐述elk所有版本全部基于6.5.1安装到集成一共三个大步骤:一.安装ELK二.安装kafka三.SpringBoot集成kafka传输日志一.安装ELK1.kibana直接执行以下代码,会自动执行安装以及启动全部过程docker run -d -p 5601:5601 --name kibana --restart=alwa...原创 2019-09-19 14:34:50 · 853 阅读 · 0 评论 -
Java在自定义注解的时候,如何使用SpEL表达式获取注解中的动态值
注:本篇文章转自GitHub里面的代码有略微轻微的改动 /** * 参数命名好麻烦,我就随便了,只是演示下用法 * @author liuxg * @date 2016年4月13日 */ @Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @int...转载 2019-08-14 15:56:49 · 3179 阅读 · 0 评论 -
在SpringBoot中通过拦截器链进行拦截器加载
覆写WebMvcConfigurationSupport接口在类上添加注解@Configuration@Override public void addInterceptors(InterceptorRegistry registry) { // 有多个拦截器可以多次add组成拦截器链 registry.addInterceptor(new Han...原创 2019-04-17 11:20:39 · 689 阅读 · 0 评论 -
覆写SpringMVC接口HandlerInterceptor来进行拦截器实现
HandlerInterceptor中有三个方法:preHandle/postHandle/afterCompletionpreHandle方法作用为在程序访问的时候.进行拦截处理postHandle为进入Controller程序执行完毕后执行afterCompletion则是视图渲染完成后,进行执行.在前后分离的时候这个一般不写...原创 2019-04-17 11:18:28 · 478 阅读 · 0 评论 -
Spring接口ApplicationContextAware
作用:当一个类实现了这个接口(ApplicationContextAware)之后,Aware接口的Bean在被初始之后,可以取得一些相对应的资源,这个类可以直接获取spring 配置文件中 所有引用(注入)到的bean对象。用法:参考文章...原创 2019-04-09 17:33:31 · 246 阅读 · 0 评论 -
日常开发中,使用工厂模式的实战
代码如下:@Componentpublic class PayFactory implements ApplicationContextAware { private static Map<String, PaymentService> payBeanMap; @Override public void setApplicationContext(App...原创 2019-04-09 17:27:02 · 385 阅读 · 2 评论 -
使用FeignClient注解,进行远程http第三方调用
推荐使用okhttp. <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId> </dependency>在yml文件中配置:fei...原创 2019-04-08 15:28:08 · 8803 阅读 · 0 评论 -
java弃用一个方法的注解
在方法上加上注解:@Deprecated原创 2019-04-11 10:52:07 · 2635 阅读 · 0 评论 -
关于如何使用Docker启动consul以及将consul集成到SpringBoot中的步骤
1.docker启动consul下载安装docker以后运行如下代码:docker run -d -p 8500:8500/tcp --name consul consul agent -server -ui -bootstrap-expect=1 -client=0.0.0.0如果启动无效,关闭你的防火墙或者开放端口.2.和SpringBoot集成<dependency&g...原创 2019-03-16 09:33:42 · 4028 阅读 · 1 评论 -
SpringBoot配置Mybatis多数据源配置
注:SpringBoot会自动装备bean名为dataSource在我们知道了SpringBoot会自动装配bean名为dataSource的时候,最基础的但数据源配置文件装配的形式就变成了@Configurationpublic class DataSourceConfig {@Bean(name = &quot;dataSource&quot;) public DataSource dataSou...原创 2019-03-01 22:55:38 · 329 阅读 · 0 评论 -
xxl-job的安装过程
xxl-job是一个分布式的定时框架,本章内容介绍的分两点.第一点是在非docker下的安装.第二点则是docker安装第一步下载xxl-job的源码第二步在mysql中新建数据库,库名为xxl-job,执行tables_xxl_job.sql文件。配置可视调度中心xxl-job-admin,参数项如下### webserver.port=8080server.context-pa...原创 2019-03-01 17:47:10 · 1136 阅读 · 0 评论 -
Spring接口InitializingBean和DisposableBean
日常开发中总是有一种情况,需要先进行链接.让后使用完毕之后再对其进行释放,这种写法总是给人一种很不方便和不优雅的感觉,为了提升代码可读性(装逼分数).我们采用另一种方式继承接口InitializingBean, DisposableBeanInitializingBean中的afterPropertiesSet会在程序调用的时候,先调用该方法DisposableBean中的destroy会在...原创 2019-01-12 13:26:25 · 420 阅读 · 1 评论 -
在CentOS 7上利用systemctl添加自定义系统服务
centos 7中采用了systemd控制系统服务,更加简单,以前启动服务需要 service xxxx start|stop等。现在需要的是systemctl start|stop xxx。比如我配置的启动tomcat,systemctl start tomcat。十分方便。以前是在,现在直接在/usr/lib/systemd/system里面新建一个tomcat.service,内容如下:[...转载 2019-01-03 16:09:49 · 189 阅读 · 0 评论 -
关于CentOS7中,/etc/rc.d/rc.local失效问题
在CentOS7中,官方将/etc/rc.d/rc.local 的开机自启的权限禁止掉了,他为了兼容性,设置了这个,但是并不默认启动.如果需要的话.执行以下代码 chmod +x /etc/rc.d/rc.local将文件授权,这样他就可以开机自启了.官方在新版上推荐使用systemcd进行自启动.在rc.local文件中,注释中有这么一段话创建自己的systemd服务或udev规则...原创 2019-01-03 15:57:16 · 8629 阅读 · 0 评论 -
Linux中,怎么找到安装的程序配置文件
在Linux系统中,我们用yum源安装了一些软件以后,会发现自己找不到这个程序的配置文件了.这对于自己想修改某些配置的时候很不友好.寻找办法:whereis 软件名称例子:whereis nginxnginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx如果你安装了这个程序的话,他会显示出来这类的内容,whereis...原创 2018-10-13 09:53:54 · 5563 阅读 · 0 评论 -
Nginx配置端口转发
话不多说,直接上代码:worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $r...原创 2018-10-13 09:45:46 · 716 阅读 · 0 评论 -
关于Java使用JRebel进行tomcat的远程热部署
Java使用JRebel进行远程代码热部署使用方法:1.下载JRebel插件,将插件解压至IDEA的根目录plugins文件夹下.重启IDEA会发现在右上角有三朵绿色的小云彩,代表安装成功2.下载反代工具,对JRebel进行破解.这一步网上有教程,记得使用的地址为本地ip/GUID 在破解结束之后,将IDEA设置成离线模式.否则将很快就会失效,这个时候就已经可以使用JRebel在本地进行热部署...原创 2018-09-28 10:25:28 · 699 阅读 · 0 评论 -
Linux防火墙ping包登录
一:配置防火墙策越@记录到日志:iptables -t filter -A INPUT -p icmp --icmp-type echo-request -m length --length 1078 -j LOG --log-prefix “SSHOPEN”@1078的ping包 将源IP记录到表sshopen中iptables -t filter -A INPUT -p icmp --...原创 2018-09-21 10:33:20 · 510 阅读 · 0 评论 -
Mysql开放对外权限
GRANT ALL PRIVILEGES ON . TO ‘bd’@’%’ IDENTIFIED BY ‘bdpw’ WITH GRANT OPTION; //开放授权flush privileges;//刷新原创 2018-09-21 10:29:16 · 2944 阅读 · 0 评论 -
Mysql跨库链表查询
关于跨数据库连表处理数据解决方案:解决方式:使用federated引擎进行数据表映射1.查看federated引擎是否开启输入指令:show engines;federated如果有.但是为No.则是可以使用,但是未开启.需要开启.开启方法:在my.ini或者my.cof的[mysqld]下面添加federated重启数据库.再次查询.开启成功2.建立映射表. 映射表的字段需要...原创 2018-09-21 10:24:23 · 1374 阅读 · 0 评论 -
Linux中yum源失效解决方案
在Linux正常更新过程中 有可能会突然出现某些加速插件启动,但是下面却又一些莫名其妙的内容,内容并非是错误提示. 比如:File contains no section headers. file: file:///etc/yum.repos.d/convirt.repo, line: 1 ‘\n’解决办法:把/etc/yum.repos.d下的文件全部删除,再重新下载对应操作系统版本的即...原创 2018-09-21 10:23:45 · 4894 阅读 · 0 评论