![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 62
大江大河大12138
这个作者很懒,什么都没留下…
展开
-
springmvc 拦截器不生效可能是addPathPatterns导致的!
spingmvc 拦截器的生效原理原创 2022-11-07 09:30:14 · 4191 阅读 · 0 评论 -
Mybatis批量插入并且返回对应的ID
mybatis批量返回主键原创 2022-06-14 11:43:05 · 4735 阅读 · 0 评论 -
Netty池化内存理解:Recycler
我们上几篇文章分析了池化内存的使用:PoolChunk和PoolSubPage我们通过代码看到了池化内存后将一些信息都记录到了ByteBuf的实现类上。在allocat()方法之前都会调用newByteBuf()返回一个实例,那个在这个过程干了什么呢,我们需要也了解下。PooledDirectByteBuf.newInstance(maxCapacity)我们还是以PooledDirectByteBuf为例:static PooledDirectByteBuf newInstance(int max原创 2021-11-03 14:50:08 · 284 阅读 · 0 评论 -
Netty池化内存理解:PoolArea
日常推荐:Netty PoolArea原理探究我们继续带着问题去看这部分。PoolArea在netty中是如何使用的1.PooledByteBufAllocator在PooledByteBufAllocator类中有对应的PoolArena数组,此数组时与线程数相关的,目的是为了减少在多线程分配内存时线程竞争。public static final PooledByteBufAllocator DEFAULT = new PooledByteBufAllocator(Pl原创 2021-10-31 22:49:52 · 362 阅读 · 0 评论 -
Netty池化内存理解:PoolChunk和PoolSubPage
日常推荐:Netty PoolArea原理探究Netty PoolChunk原理探究这两篇文章我觉得可以很好的帮助理解池化内存一些相关内容。这个池化内存我们是如何使用的呢?1.首先来到NioSocketChannle 读取数据部分:if ((readyOps & (SelectionKey.OP_READ | SelectionKey.OP_ACCEPT)) != 0 || readyOps == 0) { unsafe.read(); }//NioByteUn原创 2021-10-31 20:19:28 · 191 阅读 · 0 评论 -
Synchronized膨胀为重量级锁之后的抢锁过程
当我们了解到synchronized的重量级锁之后,是不是会有疑问:当一个线程释放锁之后,阻塞的线程是如何去获取到锁呢?是否还存在自旋等待锁呢???这里依旧推荐两篇,我觉得不错的文章:monitor对象结构底层实现Synchronized底层实现看完这两篇文章,相信你心里的疑惑可能已经解开了。下面开始我的表演了。在我们使用synchronize的后,我们都是在对应的字节码看到两个字节码指令:对应的字节码具体逻辑可以在推荐文章到有展示,也可以自己搜下完整实现。我们再看下object Monit原创 2021-08-05 20:49:19 · 399 阅读 · 0 评论 -
代码演示synchronize锁的变化过程
synchronize 涉及的锁:偏向锁,轻量级锁,重量级锁的相关概念和总结的文章已经很多了,这里推荐两篇我觉得不错的:锁状态锁的升级我把这个变换过程通过代码一起展示下:public static void main(String[] args) throws InterruptedException { Thread.sleep(5000); System.out.println(ByteOrder.nativeOrder()); Test a = new Test(); Sys原创 2021-08-04 16:16:23 · 101 阅读 · 0 评论 -
不简单的单例模式
写出最适合的单例1懒汉模式(lazy init)public class Singleton { private Singleton singleton; // 构造函数是private,防止外部实例化 private Singleton() {} // 静态方法获取实例 public static Singleton getInstance() { if (singleton == null) { s原创 2021-04-16 19:31:17 · 101 阅读 · 0 评论 -
java 导出Excel文件
厌倦了之前项目中导出excel时要写一堆代码,而且感觉学习成本还比较高。使用了下hutool这个工具类,导出execl真是太清爽了。@RequestMapping(value = "downLoadEexcel") @ResponseBody public void downLoadEexecl(ResourceAnalysisListInput input, @RequestAttribute(value = "scope", required = false) String scope,原创 2021-04-02 19:14:45 · 277 阅读 · 1 评论 -
springboot初始化Tomcat容器并加载关键servlet
不要迷失在源码中!这个初始化过程我分析了13步。希望你可以有收获~1 springboot 运行run方法1.跟踪run方法进入到代码:/** * Run the Spring application, creating and refreshing a new * {@link ApplicationContext}. * @param args the application arguments (usually passed from a Java main method)原创 2021-02-20 17:07:37 · 351 阅读 · 0 评论 -
springboot https 生产环境实战
背景公司提供的证书、密钥 .crt 和.key文件,都是通过k8s挂载的方式使用。在springboot如何进行使用呢1 尝试在springboot中是否可以直接使用.crt 等文件呢,做了一些尝试,一些异常。这条路被堵死。一些文章,说tomcat支持的是pem jks的相关的证书密钥,也就是java自己的格式。好吧,只能按照老路子生成 java的证书密钥库。2 指令1 openssl pkcs12 -export -in /etc/service.crt -inkey /etc/service.原创 2020-08-14 12:23:58 · 214 阅读 · 0 评论 -
java项目在linux中打包部署
本以为在服务器上打包和本地一样easy。踩坑无数。1.编写Makefilebuild: mvn install -Dmaven.test.skip=trueREGISTRY ?= "registry.cn-beijing.aliyuncs.com/XXX"VERSION ?= $(shell git describe --exact-match 2> /dev/null || \ git describe --match=$(git rev-parse -原创 2020-05-28 21:06:16 · 370 阅读 · 0 评论 -
idea 中格式化项目代码-缩进方式
如果缩进方式不统一,github查看代码时,会导致代码错乱,影响展示效果对于idea中项目代码的格式化操作:由于idea中使用了goole-java-formate 和save actions代码格式插件,所以要对相关插件配置进行调整1 设置code style2 save actions 配置调整更改save actions的配置信息:一定要勾选reformate file 否...原创 2020-03-04 18:20:50 · 3715 阅读 · 0 评论 -
log4j、logback等日志配置文件日志文件输出位置
对配置文件中文件制定为相对路径为例以log4j和logback为例log4j在SSM框架,跑在Tomcat中#RollingFilelog4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender#相对路径logs/appcore_cmdb.loglog4j.appender.RollingFile.File=l...原创 2020-02-28 12:59:16 · 531 阅读 · 0 评论 -
idea中配置tomcat进行热部署开发
1.配置tomcat的Deploymentexplded的方式区别与war的方式:war的方式,只能通过打新的war,使更改生效。2.配置ServerUpdate action选项选择:update classes and resources这个选项可以使更改java和jsp时,在调试模式下可以立即生效。ps:如果Deployment选项中,选择的是war,此时下拉列表中可能只有Re...原创 2020-01-08 15:51:38 · 341 阅读 · 0 评论 -
Nexus配置可以匿名访问
一张图:Ok!!原创 2019-12-31 19:18:40 · 4435 阅读 · 1 评论 -
centos中jdk的安装
centos中jdk的安装yum方式安装yum search java | grep jdk2.yum install java-1.8.0-openjdk等待完成即可其他方式,尝试后补充原创 2019-12-21 11:22:45 · 70 阅读 · 0 评论 -
@PostConstruct不被调用的原因
如果在配置文件中配置使用,延迟加载的话,如图:被@Service等注解的类,需要在注入使用的时候,才会被初始化.如果TableInit类只是被定义而没有在其他地方引用的话,@PostConstrut注释的方法是不会执行的....原创 2019-11-14 14:37:39 · 3910 阅读 · 0 评论