0%

SpringAop浅析(二)

介绍

​ 接两年前的旧文SpringAop浅析,时隔两年再一次对SpringAop相关源码进行分析,只能说之前阅读的不够透彻,理解的不扎实,再加上工作上常年忙于业务的处理,现在已经少有看源码的时间,不过最近不知道是因为什么打了鸡血,还是想再沉淀沉淀。

阅读全文 »

Filter无法进入全局异常捕获

问题

​ 我接手的一个服务没有依赖于公司建设项目一体化体系中的认证中心,导致这个服务自身需要支持认证授权模块,由于需求上只需要一个简单的登录模块,所以引入了spring-security模块来进行认证授权相关处理。早上收到一个测试提出的bug,服务在使用一段时间不使用后,再操作,会出现警告异常提示。定位问题发现是由于token失效导致后端校验报错,由于这个校验是在filter中处理,导致全局异常无法捕获,前端获取的异常结构与标准结构(约定异常体结构<msg,code,info>等)不符,导致前端也无法解析具体异常信息,所以界面上显示的是直接抛出的异常信息。

阅读全文 »

nginx之proxy_pass

proxy_passnginx中常见的反向代理指令。

格式:proxy_pass {传输协议}{主机名}{URI}

  • 传输协议:http://或者https://
  • 主机名:IP:PORT
  • URI:具体的访问地址
阅读全文 »

java参数命令

java启动命令中-D和–的区别

两种方式都可以直接覆盖yaml或者properties配置中的同名配置项。

  • -D(包括-X)表示添加的参数是jvm虚拟机变量。java应用中通过System.getProperties("")获取。
  • --表示添加的参数是操作系统的环境变量。java应用中通过System.getEnv("")获取。

-D参数要放置在-jar命令之前,--参数要放置在-jar命令之后。

java -Dserver.port=8080 -Xms128m -jar –server.name=myApp

可通过jps命令查看java应用具体的参数值。

  • jps -v:可以查看-D-X参数

示例:1 jar -Djava.util.Arrays.useLegacyMergeSort=true -Djava.security.egd=file:/dev/./urandom -Xms128m -Xmx512m

  • jps -m:可以查看--参数

示例:1 jar --spring.profiles.active=dev --logging.config=logback-spring.xml

crf反编译工具

http://www.benf.org/other/cfr/

RabbitMQ消息投递确认

背景

​ 在项目中引入了RabbitMQ用于服务间一些解耦操作,在运行了一段时间之后,突然在某个环境中出现了一些异常情况。

阅读全文 »

maven插件整理

​ 常用maven插件整理,maven本质上是一个插件框架,它的核心并不具备执行任何构建任务的能力,所有的任务都是交由插件完成。

阅读全文 »

spring-statemachine入门

介绍

spring-statemachinespring设计于处理状态的变化,以及定义状态之间的转换规则。

阅读全文 »

Rancher入门(一)

简介

​ 公司内网的服务是通过Rancher进行编排,RancherV1V2两个版本,都是提供容器调度与编排,在V1版本中可选不同的编排模式,比如cattleswarmkubernetes。所以V1时代,它给自己的定位是各种编排工具的上层,通过它去管理编排工具。由于k8s后来发展势不可挡,所以V2版本诞生,移除了其他类型的编排工具,只剩下k8s,所以Rancher的底层是采用k8s编排,并对其功能进行了一些扩展和提供一些便捷工具,包括执行命令行,管理多个k8s集群等。

阅读全文 »