java
文章平均质量分 50
who7708
这个作者很懒,什么都没留下…
展开
-
使用 dom4j 比较两个xml文件内容,并输出结果
private Map<String, Element> removeDuplication(String filepath1, String filepath2, String rootName, String attrName) throws Exception { // 读取第一个xml Map<String, Element> map1 = readXml(filepath1, rootName, attrName); Set&原创 2021-02-10 10:31:53 · 541 阅读 · 4 评论 -
使用redis或雪花算法生成全局id
雪花算法/** * 优点: * 性能好,低延时, 能满足Twitter每秒上万条请求 * 独立部署, 稳定性高 * 可根据自身业务分配bit位, 灵活性好 * 缺点: * 强依赖机器时间, 如果机器上时间回拨,会导致发号重复或者服务会处于不可用状态。 * * Twitter_Snowflake<br> * SnowFlake的结构如下(每部分用-分开):<br> * 0 - 0000000000 0000000000 0000000000 0000000000原创 2021-02-03 16:01:08 · 1239 阅读 · 0 评论 -
利用 LinkedBlockingQueue 实现一个阻塞限制队列 LimitQueue
利用 LinkedBlockingQueue 实现一个阻塞限制队列 LimitQueue需求多线程执行任务时, 如果在线程队列中,如果满了,则等待线程池中的任务完成之后,再放入任务. 而不是抛出异常或抛弃其他任务.实现import javax.validation.constraints.NotNull;import java.util.concurrent.LinkedBlockingQueue;/** * 当线程池满了的时候,线程池阻塞队列, 而不是抛出异常或抛弃其他任务. * *原创 2021-02-03 00:41:37 · 417 阅读 · 1 评论 -
java类映射转换框架MapStrcut
类之间转换框架 mapStructmaven 中引用 jar<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${org.projectlombok.version}</version></dependency><dependency>原创 2021-02-02 23:52:35 · 320 阅读 · 2 评论 -
如何使用 bytebuddy并以javaagent方式为http请求增加header信息
需求为每个http请求响应时增加header信息是哪个controller中的哪个方法返回的. 如下图:提供demo根据start.spring.io 创建一个spring-boot项目. 编写两个controller,如下图:com.example.demo.web.controller.IndexController 内容如下@GetMapping("")public String hello(HttpServletRequest request, HttpServletRespon原创 2021-01-26 18:49:14 · 1816 阅读 · 2 评论 -
maven 常用插件及使用
maven常用插件及使用1. 代码格式检查<artifactId>maven-checkstyle-plugin</artifactId>使用<plugin> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> <configurati原创 2021-01-25 15:53:11 · 463 阅读 · 0 评论 -
如何使用 idea 调试 skywalking
下载 skywalking 源码git clone https://github.com/apache/skywalking修改相关pom,仅保留必要的内容修改主要是为了更快的编译/打包/测试. 也更节省时间, 时间多的可以忽略此步,直接下一步.apm/pom.xml 修改maven-checkstyle-plugin 去除profiles 仅保留 <id>agent</id>, 其他的profile全部注释掉, 修改成如下图apm/apm-sniffer/p原创 2021-01-23 14:20:39 · 1733 阅读 · 0 评论 -
java项目使用docker运行并集成arthas
maven 打包配置本文是项目 spring-boot 项目. 使用 spring-start 生成的事例项目修改 maven 中的 build 节点, 增加 antrun 插件, 如下:<build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.spring原创 2021-01-21 18:06:33 · 888 阅读 · 0 评论 -
Mac中在Docker容器中访问宿主中的mysql
Docker For Mac 没有 docker0 网桥在使用 Docker 时,要注意平台之间实现的差异性,如 Docker For Mac 的实现和标准 Docker 规范有区别,Docker For Mac 的 Docker Daemon 是运行于虚拟机 (xhyve) 中的,而不是像 Linux 上那样作为进程运行于宿主机,因此 Docker For Mac 没有 docker0 网桥,不能实现 host 网络模式,host 模式会使 Container 复用 Daemon 的网络栈 (在 xhy转载 2021-01-19 16:35:49 · 975 阅读 · 0 评论 -
gradle下载时 dists中的目录如何生成的?
简介我们在使用gradle 时, gradle自动下载时的目录是如何生成的? 如果知道目录生成的规则, 那我们就可以手动下载, 加快速度生成规则其实gradle下载目录生成就是使用 md5 把gradle的下载的url进行hash, 然后再转换成36进制字符串得到了. 代码如下: private String getHash(String string) { try { MessageDigest messageDigest = MessageDiges原创 2021-01-16 16:25:36 · 623 阅读 · 0 评论 -
java hex转换输出(可以打印字节码.class文件内容)
不依赖于任何jar包. 打印 .class 文件内容.```public class HexDump { /** 十六进制的组成元素 */ private final static char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; public static String dumpHexString(byte[] ar原创 2021-01-14 19:20:48 · 943 阅读 · 0 评论 -
使用IDEA调试Arthas
使用IDEA调试Arthas准备工作准备调试使用的代码debug运行配置远程调试 arthas准备工作准备调试使用的代码写一做供我们调试使用的代码. 或者直接使用arthas源码里的 demo.MathGame 也可以.debug运行java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar arthas-demo.jar配置远程调试 arthas打开idea配置注: 端口号与debug运原创 2021-01-04 14:47:10 · 3468 阅读 · 0 评论 -
工作中某 java 项目中打印日志原则
•打印日志原则•整个团队对打印日志的格式要有明确的规范,目前好房内部运维已经规范了一套,请大家按OP规范•定义好整个团队记录INFO、DEBUG(或TRACE)日志规范,保证每个开发记录的日志格式统一•整个团队(包括开发,运维)定期对记录的日志内容进行Review,通过查问题的过程来不断优化日志记录•绝不打无效的日志,防止无效日志过度淹没重要日志信息•对系统间Rpc调用一定要l...原创 2020-06-24 23:06:05 · 693 阅读 · 0 评论 -
spring aop 使用
@Slf4j@Aspect@Componentpublic class ConfigAop { @Pointcut("execution(..............*(..))") public void configPoint() { } @Before(value = "configPoint()") public void before...原创 2020-06-24 22:57:51 · 103 阅读 · 0 评论 -
docker 运行并使用 arthas 的方式
docker 运行并使用 arthas 的方式docker run --initFROM openjdk:8-jdk-alpine# copy arthasCOPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthasENV LOG_PATH=/opt/logs \ LOG_HOME=/opt/logs/backu...原创 2020-03-13 19:31:58 · 2190 阅读 · 0 评论 -
docker 容器中: jstack on alpine:Unable to get pid of LinuxThreads manager thread
添加 tiniFROM openjdk:8-jdk-alpineRUN apk add --no-cache tiniENTRYPOINT ["/sbin/tini", "--", "java -jar xxxx"]使用已安装 tini 的镜像FROM hengyunabc/arthasENTRYPOINT ["java -jar xxxx"]docker 运行时间添加...原创 2020-03-13 09:50:17 · 2255 阅读 · 0 评论 -
java 单例模式实现的几种方式
饱汉模式import java.util.Objects;/** * 线程安全的单例模式(饱汉) * * @author Chris * @date 2020/02/28 23:37 * @since 1.0.0 */public class Singleton1 { private static volatile Singleton1 ourInstance; ...原创 2020-02-29 00:10:16 · 106 阅读 · 0 评论 -
Mybatis 注解 @Many 实现 递归菜单获取
Mybatis 注解 @Many 实现 递归菜单获取import org.apache.ibatis.annotations.*;import java.util.List;@Mapperpublic interface MenuMapper { @Select("select * from menu where parentid=0") @Results(...原创 2020-06-24 23:02:07 · 549 阅读 · 0 评论 -
Springboot2.x之Mongodb多数据源配置
Springboot2.x之Mongodb多数据源配置,具体如下:1.repository一定要放到对应包里才能生效2.需要在Main类上增加配置:@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, MongoDataAutoConfiguration.class})3.数据源配置...原创 2019-09-19 15:28:37 · 1943 阅读 · 3 评论 -
JedisCluster 使用方法
JedisCluster使用方法https://www.cnblogs.com/c-xiaohai/p/8376364.html @Bean JedisCluster jedisCluster() { // 添加集群的服务节点Set集合 Set<HostAndPort> hostAndPortsSet = new HashSet...原创 2020-06-24 23:07:17 · 3966 阅读 · 0 评论 -
SpringBoot项目非web方式启动
1、springboot 1.x中以非web方式启动@SpringBootApplication public class Application implements ApplicationRunner{ public static void main(String[] args) { new SpringApplicationBuilder() ...原创 2020-06-24 22:56:51 · 2366 阅读 · 0 评论 -
Orika 使用方法
加入依赖:ma.glasnost.orika/** * 测试属性复制功能: * - [x] 同名属性 * - [x] 非同名属性 * - [x] 导航属性,List,Map也可导航list[0],map['a'] * - [x] List & Array * - [x] 集合泛型 * - [x] 递归 * - [x] 类型转换 * - [x] 排除 * =...原创 2020-06-24 23:01:19 · 1492 阅读 · 0 评论 -
JDK1.8中关于HashMap的红黑树讲解
一,首先需要了解以下几个问题:1.为什么要引入红黑数(特殊的平衡二叉树)数据结构2.引入红黑树HashMap做了哪些改造3. 红黑树的特性4.红黑树的具体实现方式二,逐一解释以上三个问题1.1为什么要引入红黑数(特殊的平衡二叉树)数据结构由于在JDK1.7之前,HashMap的数据结构为:数组 + 链表。数组相当于日常中永到的数据结构Array. 用来确定key-v...转载 2019-07-24 18:06:49 · 3209 阅读 · 0 评论