自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

最强架构师的博客

会逐步对java、架构师等经验分享

  • 博客(10)
  • 收藏
  • 关注

原创 IDEA点击download source 报错:Caused by: java.rmi.ConnectException: Connection refused to host: 127.0.0.1

idea点击Download sources 报错:Caused by: java.rmi.ConnectException: Connection refused to host: 127.0.0.1如何解决:第一步:删除project 目录下的 .idea文件夹。第二步:在IDEA中的maven,重新reload一下。第三步:再次点击download source即可。...

2022-01-26 01:55:03 1028

原创 spring boot war包(非嵌入式容器)启动原理

非嵌入式方式启动spring boot应用需要继承SpringBootServletInitializer并重写configure方法,执行SpringApplication.sources方法,参数为SpringBoot应用的主程序。后面分析为啥需要这一步。spring boot非嵌入式容器启动原理从大的方面只有一个:Servlet3.0提供的规范:javax.servlet.ServletContainerInitializer具体实现如下: Spring在spring-web ja

2021-12-31 22:15:45 686

原创 NIO2(AIO)-实现原理源码分析---初稿(后面完善)

本文主要分析以下内容什么是AIO,AIO的特征有哪些?应用场景? jdk是如何实现的,分别分析window、linux 线程模型 源码分析创建异步通道、其他IO操作 前提概要不管是非阻塞还是异步的实现,都要基于应用启动一个线程(线程池)来轮训调用OS API,比如Select.select(或者ServerSocketChannel的accpet)方法,外层都要使用while循环来调用。AIO也一样,也需要开启线程循环调用某个API来处理逻辑。AIO以来两个MAP将各个操作.

2021-04-28 06:18:42 551

原创 Tomcat分析--(一)从架构角度看Tomcat 对应用层协议的支持和底层socket的读写的支持的高内聚低耦合设计

Tomcat分析系列针对于Tomcat版本:9.0.38本文目标:从整体了解Tomcat源码包结构,Tomcat对各个模块如何解耦的,及其各模块怎么组装的,也就是高内聚低耦合。知道各个模块对上层模块提供获取数据的接口APITomcat源码包结构自下而上分析包功能,主要3大模块:tomcat.util.net包:封装底层对Socket的网络连接和数据传输,封装了对底层Socket的数据的读、写。Java实现IO进行网络数据传输的方式有3种方式:BIO:同步...

2020-11-03 22:50:58 502 2

原创 Spring5 BeanDefinition 中Supplier<?> instanceSupplier属性的应用场景

在Spring5中对AbstractBeandefinition 添加了如下属性:@Nullableprivate Supplier<?> instanceSupplier;/** * Specify a callback for creating an instance of the bean, * as an alternative to a declaratively specified factory method. * <p>If such

2020-10-22 17:03:12 3049 2

原创 Spring AOP实现之从接口设计来思考AOP联盟接口规范设计

学习一个模块的设计主要是看接口设计,通过接口设计我们就能够从整体知道模块怎么实现的,具体实现就是组装这些接口来进行实现的,知道了模块接口设计,实现也就变得很简单了。 本文主要从aop背景出发点,来自己去想需要哪些接口,就能够描述一个模块的功能设计规则。AOP产生背景 使用面向对象编程 ( OOP )有一些弊端,当需要为多个不具有继承关系的对象引人同一个公共行为时,例如日志、安全检测等,我们只有在每个对象里引用公共行为,这样程序中就产生了大量的重复代码,程...

2020-10-22 05:00:57 550 4

原创 Spring 依赖注入问题深入讨论和研究

单例bean注入原型bean问题在上面这篇文章中我讲了一些解决方案,但漏了几个方案,比如@Lazy、使用@Scope注解的proxyMode属性,这个属性也能解决注入原型bean问题,之所以没有讲,是因为使用这个会完与你的预期完全不符合,最好不要使用这个属性。下面分别讨论其实现原理。列个大纲: 图1本文讨论的点是注入原型bean无效问题,下面说的无效都是指的是每次通过单例bean获取原型bean都是获取同一个对象。先做个总结,根据...

2020-10-21 00:41:02 1104

原创 spring注解@Lookup使用原理和注意点以及其他替换实现方案

假设场景假设我们有这样一个场景,为了保证线程安全的使用一个类的方法,我们需要在每个线程中都需要创建该类(这里记作B类)的实例,这个时候我们又是在单例bean(这里记作A类)通过@Autowired注解注入的,这个时候每次获取A类的实例并不是每次都是不同的,而是相同的,这就违背了我们的意愿了,那么在spring中有哪些解决方案呢?Spring解决方案这里我给出了3个方案方案1:使用注解@Lookup方案2:由于注解@Lookup不能与@Bean协作,使用注解@Autowired..

2020-10-17 01:02:24 4876 6

转载 intellij 创建springboot失败 Initialization failed Cannot download 'https://start.spring.io': Status: 403

转载网址:https://blog.csdn.net/cndir/article/details/79308831

2018-05-26 08:38:16 1886

原创 java基础------switch

switch语句支持的类型switch语句后的表达式只能是:byte、short、char、intjava7版本增加:stringJDK1.5后增加:枚举类型注意 break陷进switch会先求出expression的值,然后拿这个表达式和case中的值比较,一旦遇到相等的值,程序就开始执行这个case标签后的代码,不再判断与后面case、default标签的条件是否匹配,除非遇到break,才...

2018-04-24 15:03:36 123

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除