Java Reflection - 谁影响了我?

背景

反射获取方法参数

当在AspectJ的切面中,需要获取切面方法的参数名信息时,可以怎么做?

自 JDK 1.8 之后,开始引入 java.lang.reflect.Parameter 类,用于对参数名称的支持,通过使用“-parameters”编译器标志,开发者在编译时可以保留方法参数的名称信息。

StandardReflectionParameterNameDiscoverer 则是Spring封装的,使用 JDK 8 的反射工具,内省方法参数名的工具类,在 Spring MVC 中有大量使用该类获取参数信息。

Arthas

什么是 Arthas 可以参考 官网介绍

简单来说,作为一个 Java 开发,遇到线上问题时才发现由于 日志不齐全、无法debug 等原因无法定位问题时,怎么办?有Arthas就可以处理了。我们能用Arthas来做什么官网也有介绍:

Arthas 能给我们带来什么能力?

Homelab - HPE Gen10 Plus 概述

简介

HPE MicroServer 系列是 HPE ProLiant 推出的面向家庭、小型办公室的微型服务器产品,有着体积小、外观漂亮、噪音低等优点。

由于购买较早,开箱图找不到嘞,因此详细的外观、服务器的内部结构等信息,可以参考下面的文章:

Portainer - Docker 可视化管理工具

简介

Portainer 是一个轻量级的 Container 可视化管理工具,支持管理 docker, k8s

安装

docker 安装 portainer

借助docker,可以快速搭建 portainer。

这里使用docker-compose来配置服务。(需要替换下列配置中的 domain 为自己需要设置的域名)

使用mybatis-plus-generator初始化项目

简介

MyBatis Plus 是一个MyBatis的增强工具,内置通用mapper,提供了基本的curd操作,简化了MyBatis的开发使用工作。 它提供了一个代码生成器工具,可以根据数据库表来自动生成entity、mapper、mapper xml、service、controller等模块的代码,简化项目的初始化工作。

Traefik 静态文件代理

先说问题:Traefik 本身是不支持代理静态文件的。原因参考: issue 4240

为什么

这里简单说一下为什么吧,因为它的设计原则是:Separation of Concerns。所以traefik并没有提供代理以外的功能,而静态文件需要一个静态文件服务器。

Hexo迁移Hugo

安装

首先需要安装Hugo。Hugo的安装很简单,官方安装教程:Install Hugo。 Mac下安装可以直接选择Homebrew。

1
brew install hugo

Hugo程序安装以后,需要初始化博客目录。比如要创建一个目录名为Blog的博客目录

Switch的优化方式

背景

switch/case 是Java的一个流程控制语法,作为多if/else条件判断的替代语法,平常用的还是很多的,毕竟比起看起来就很繁琐、难以阅读的if/else,switch/case更便于阅读理解一段代码的逻辑。

Windows10迁移以及UEFI引导修复

海康威视c2000 pro太香了,双十二没忍住剁了个1t的。在此记录一下win10的迁移步骤以及碰到的问题。

迁移工具选择

  • AOMEI Backupper
  • 分区助手

其实这俩都可以,因为它们都有一个功能:克隆硬盘。

Java 集合源码 - AbstractCollection

介绍

AbstractCollection是Java集合实现类的根抽象实现类,它实现了Collection接口,而集合的三个分支(List,Set,Queue)都是继承这个类然后各自实现扩展:AbstractSet, AbstractList, AbstractQueue