![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 79
单手入天象
这个作者很懒,什么都没留下…
展开
-
IDEA 开发一个简单的 web service 项目,并打包部署到 Tomcat
IDEA 开发一个简单的 web service 项目,并打包部署到 Tomcat原创 2023-02-21 16:13:15 · 6994 阅读 · 1 评论 -
将项目从 SVN 迁移到 GIT
项目开发中,项目原本是用的SVN,已经用了一年了,现在公司要抛弃SVN用Git,要求把SVN的代码直接搬过去Git,并保留之前的历史提交记录。原创 2023-02-20 09:49:40 · 1725 阅读 · 0 评论 -
Tomcat 配置IPV6
在server.xml配置文件的里面加上 address=”[::]” ,这样其实已经给tomcat同时开启ipv4和ipv6了原创 2023-02-15 09:36:10 · 4399 阅读 · 0 评论 -
JConsole远程连接 与 JMX远程连接
通过JConsole,我们可以查看JVM的内存等使用情况,也可以查看MBean信息,我们一般是源码运行项目,然后直接用JConsole访问本地的java程序,这种情况是不需要做任何改动的,可以直接连接本地java程序。但是如果想JConsole远程连接,就需要添加启动参数,开启远程访问。欢迎指出我的错误!原创 2023-02-08 09:36:33 · 2174 阅读 · 0 评论 -
Tomcat集群应用同步 —— 源码分析
相信大家对Tomcat的集群部署都不陌生,以往,我们手动搭建一个Tomcat的集群环境,然后手动部署每个Tomcat上面的应用,保证他们都是相同的应用程序包,以便负载均衡的时候不会出现问题但是问题来了,如果我们项目源码修改了,重新打包,这时候就要给每个Tomcat单独替换里面的war包,相当麻烦!Tomcat给我们提供了一种十分简单的解决方案:应用同步欢迎指出我的错误!原创 2023-01-11 16:15:37 · 1258 阅读 · 0 评论 -
Tomcat架构分析—— Engine
tomcat的核心模块原创 2022-12-27 22:15:34 · 1266 阅读 · 1 评论 -
IDEA远程断点调试jar包项目
点击 Edit Configurations选择 Remote原创 2022-06-29 11:54:42 · 3775 阅读 · 0 评论 -
JMX、MBean、MXBean、MBeanServer 入门
通俗点说:JMX 是一个 JDK 提供的框架,用来管理检测 Java 程序,提供了对 Java 应用程序和 JVM 的监控和管理功能。JMX 通过 MBean、MXBean、MBeanServer 来实现对 java 程序的管理原创 2022-06-01 18:31:45 · 1841 阅读 · 0 评论 -
Runtime.getRuntime().gc() 和 Runtime.getRuntime().runFinalization() 的区别
文章目录前言一、Runtime.getRuntime().gc()1.与System.gc() 对比2.官方说明二、Runtime.getRuntime().runFinalization()1.与System.runFinalization() 对比2.官方说明3.为什么不推荐使用finalize()三、测试GC1.查看当前jvm占用内存总结前言很多小伙伴可能没用过甚至没见过这两个方法,但作为一名 java 开发仔,你肯定见过 System.gc();带着这个想法,我们接着往下看一、Runti原创 2022-05-31 18:12:32 · 1433 阅读 · 0 评论 -
maven自定义依赖并推送到远程仓库
文章目录前言一、maven配置二、项目准备及修改配置三、推送到maven仓库总结前言本教程是在 IDEA 开发工具下操作的一、maven配置我们目的是将自己编写的项目,通过 maven 打包成 jar,然后推送到远程的 maven 仓库,既然涉及到推送,那肯定需要配置用户名和密码,还有我们指定的远程仓库地址。修改 maven 安装目录下的 conf 目录下的 settings.xml 配置文件:注意:<server> 里面的 id 可以是任意值,但是后面要跟这个值对应上mir原创 2022-05-12 16:13:06 · 6865 阅读 · 0 评论 -
idea 导出第三方 jar 包 (基于 tomcat8.5-redis-session-manager 编译打包成 jar)
文章目录前言一、准备工作二、操作过程1. 编译 class 文件2. 移动 class 文件3. 编译打包 jar总结前言相信搞 java 的都用过第三方的 jar 包,例如 log4j、jedis 等等。但大家都有自己动手编译打包过一个 jar 吗?过程中是否有遇到过这样一个问题:打包的 class 文件里面引入了另一个第三方的包,而并没有引入将要打包的 jar,这时候编译时报错的。一、准备工作这篇文章我将用 tomcat8.5-redis-session-manager 来编译打包成 j原创 2022-03-30 17:54:57 · 1798 阅读 · 0 评论 -
windows 下编译 tomcat native
文章目录一、环境准备二、源码包下载三、操作过程1. 解压2. 构建apr库3. 构建openssl库4. 构建Tomcat Native库(dll文件)5. 编译6. 抽取关键文件7. 压缩打包总结本文主要参考 tomcat 官方文档 https://cwiki.apache.org/confluence/display/TOMCAT/Building+the+Tomcat+Native+Connector+binaries+for+Windows一、环境准备本篇文章是在 windows 环境原创 2022-03-28 16:31:12 · 1502 阅读 · 0 评论 -
linux 下编译 tomcat native
文章目录一、tomcat native 是什么?二、tomcat 运行的三种模式三、使用过程1. 环境准备2. tomcat-native 安装编译3. 指向本地库文件四、验证总结一、tomcat native 是什么?Tomcat Native 是一个利用 APR 来提升Tomcat性能的本地API,底层是用 JNI 的原理来实现的。他是一个可选的库,默认是不使用的,可以通过编译构建出库文件,在tomcat的配置指向库文件,从而提升Tomcat性能。二、tomcat 运行的三种模式很多人不清楚原创 2022-03-28 15:33:00 · 1693 阅读 · 1 评论 -
JNI(Java Native Interface)入门篇
文章目录前言一、JNI是什么?二、环境准备三、操作过程1. Java声明native方法2. 编译生成 class 文件3. 编译生成 .h 文件4. 手动编写 c 文件5. 编译生成 .o 文件6. 编译生成 dll 文件总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、JNI是什么?百度百科:JNI 是Java Native Interface的缩写,通过使用 Ja原创 2022-03-17 17:36:56 · 1266 阅读 · 0 评论 -
linux、win版本下的filebeat入门示例(参考官方例子)
前序:Logstash和Filebeat有啥不同Logstash是用java开发的,性能非常差Filebeat性能极佳,内存占用几乎忽略不计,但是缺少类似过滤器等东西ELK ? 我反正用 EFK!下面例子亲自试验可行,不行直接找我用法(官方文档的例子):下载安装包: https://www.elastic.co/cn/downloads/beats/filebeat1. 解压Linux:tar -zxvf filebeat-7.13.2-linux-x...原创 2021-06-23 15:09:08 · 445 阅读 · 1 评论 -
java8 中获取对象的属性,对象却为null的问题解决
实际开发中,我们经常遇到这样一种情况:我们需要获取 user 对象中的 age 属性,但是我们上面查询返回的 user 对象可能为 null一般新手的操作会是这样:Integer age;if(user == null){ age = null;}else{ age = user.getAge();} 但是这只是获取一个属性,当我们要获取多个属性,不可能每个属性都做这样几行判断,直接就暴露我们的代码水平了,如何做到更高端?java8 给我们提供了Option...原创 2021-03-02 11:55:24 · 3055 阅读 · 0 评论 -
微信扫网址的二维码,却只显示链接地址,无法跳转到网页的解决办法
期望效果:微信扫描二维码,用微信自带的浏览器打开指定的网页如果你生成的微信二维码,里面的地址内容是 www.baidu.com 微信扫码就会出现下面这个页面我记得以前的微信这样的地址是会自动打开网页的,但现在不行了,得加上前缀 http:// 或 https://当你微信二维码里面的地址为 http://www.baidu.com 再用微信扫码,出现下面问题解决...原创 2021-03-01 10:22:15 · 8687 阅读 · 1 评论 -
webFlux 中使用 openFeign 实现远程调用遇到的问题
先沾上一段报错的控制台信息:feign.FeignException$MethodNotAllowed: status 405 reading UserFeignService#getByUserName(String) at feign.FeignException.clientErrorStatus(FeignException.java:167) ~[feign-core-10.4.0.jar:na] Suppressed: reactor.core.publisher.FluxOnAsse原创 2020-11-01 23:46:26 · 3474 阅读 · 2 评论 -
启动RocketMq命令
win端的RocketMq,进如bin目录下的cmdmqnamesrv.cmd -n localhost:9876mqbroker.cmd -n localhost:9876原创 2020-10-27 00:29:16 · 393 阅读 · 0 评论 -
maven的三种工程pom、jar、war的区别
pom工程用在父级工程或聚合工程中,可以用来做jar包的版本控制。在面向服务编程中需要有一个最外层,他是整个项目的父工程,它是一个pom工程。用来做整个项目的版本控制,也就是项目中所有要使用到的jar包的版本都集中由父工程管理。这样你在写其他工程pom文件中maven依赖时就不需要写版本号了。当然所有的项目都要先继承它才行。war工程我们一般的单体项目,或者微服务开发中的项目项目可以打包成war包的形式,这些项目都是要部署在服务器上的,需要依赖外部的容器(例如tomcat、jetty)原创 2020-09-16 11:30:01 · 150 阅读 · 0 评论 -
实现各个微服务间限制IP访问 的三种方式
方式一:防火墙拦截例如项目部署在linux下,修改防火墙,先拦截所有ip的访问,然后再开放我们服务调用使用的ip和端口的白名单,就可以实现拦截除了我们的服务外的所有ip的请求。#阻止所有IP访问iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j DROP#然后再添加白名单iptables -A INPUT -s 1.2.3.4 -p tcp --dport 80 -j ACCEPT###############或者###########原创 2020-07-06 17:53:29 · 1524 阅读 · 0 评论 -
java的常见算法
冒泡排序依次比较相邻的两个数,将小的放在前面,大的放在后面。即在第一趟,首先比较第1个数和第2个数,小的放在前面,大的放在后面,然后比较第2个数和第3个数,小的放在前面,大的放在后面,如此继续,直至比较完最后两个数,这样外层循环结束一次,已经将最大的数放在了最后。后面按照这个规律执行外层循环的剩余次数,每次选出最大的,直至结束。 // 冒泡排序 时间复杂度 O(n²) public void bubbleSort(int[] arr) { for (int i =原创 2020-06-21 14:11:51 · 196 阅读 · 0 评论 -
java 的 过滤器(Filter)和拦截器(Interceptor)的区别 , 以及过滤器与拦截器在 springboot 中的使用
主要区别拦截器是基于java的反射机制的,而过滤器是基于函数回调 拦截器不依赖于servlet容器,过滤器依赖于servlet容器 过滤器Filter是只在请求(Servlet启动)的前后起作用;而拦截器能够深入到各个方法前后、异常抛出前后等 过滤器可以修改request的值,而拦截器不能 在请求中,拦截器可以通过反射机制多次被调用,而过滤器只能在容器初始化时被调用一次 拦截器是要注册进spring的,而过滤器是依赖servlet,要注册到web.xml里,所以拦截器可以获取IOC容器中的各个原创 2020-06-18 17:49:01 · 331 阅读 · 0 评论 -
线程池 ThreadPoolExecutor 的详细讲解
线程池的使用场景高并发、任务执行时间短的业务,线程池线程数可以设置为CPU核数+1,减少线程上下文的切换 并发不高、任务执行时间长的业务要区分开看:假如是业务时间长集中在IO操作上,也就是IO密集型的任务,因为IO操作并不占用CPU,所以不要让所有的CPU闲下来,可以加大线程池中的线程数目,让CPU处理更多的业务 假如是业务时间长集中在计算操作上,也就是计算密集型任务,这个就没办法了,和(1)一样吧,线程池中的线程数设置得少一些,减少线程上下文的切换并发高、业务执行时间长,解决这种类型任务的关键原创 2020-06-17 23:01:59 · 325 阅读 · 0 评论 -
常见的java面试题
这是我整理网上的帖子,总结出来的常见面试题,做个记录1.常见的运行时异常ClassCastException(类转换异常)IndexOutOfBoundsException(数组越界异常)NullPointerException(空指针异常)ArrayStoreException(数据存储异常,操作数组时类型不一致)BufferOverflowException(还有IO操...原创 2020-02-23 00:48:20 · 648 阅读 · 0 评论 -
Java实现动态代理的两种方式
https://www.cnblogs.com/xifengxiaoma/p/9377261.html转载 2020-02-08 10:23:49 · 100 阅读 · 0 评论