自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

明洋的专栏

好记性不如烂笔头,内存虽快,但不持久

  • 博客(16)
  • 资源 (4)
  • 论坛 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 死磕源码系列【springboot内嵌tomcat如何启用ServletContextInitializer的onStartup方法进行初始化Servlet\Filiter\EventListener

参考:死磕源码系列springboot之ServletContextInitializerBeans如何将Filter、Servlet、EventListener注册到ServletContext中源码解在springboot的jar包中有一个TomcatStarter类,是ServletContainerInitializer的子类,会对ServletContextInitializer的相关实现类及包装类进行初始化;TomcatStarter源码如下:class TomcatStarter imp

2020-12-15 19:13:25 268

原创 死磕源码系列【springboot之ServletContextInitializerBeans如何将Filter、Servlet、EventListener注册到ServletContext中源码解

ServletContextInitializerBeans类表示从ListableBeanFactory容器中获取到的ServletContextInitializer实例集合,包括所有的ServletContextInitializer beans,并且也包含Servlet、Filter、EventListener beans集合。这些beans会被排序,按照Servlet->Filter->EventListener->ServletContextInitializer的顺序排列。

2020-12-12 13:06:52 138

原创 死磕源码系列【springboot之ServletContextInitializer接口源码解析】

springboot提供在Servlet 3.0+环境中用于编码方式配置ServletContext的接口,此接口(ServletContextInitializer)主要被RegistrationBean抽象类实现用于往ServletContext容器中注册Servlet、Filter或者Listener。这些实现了此接口的Bean的生命周期将会交给Spring容器管理,而不会交给Servlet容器。1.ServletContextInitializer接口源码:@FunctionalInterf.

2020-12-10 19:35:30 285 1

原创 死磕源码系列【spring之WebApplicationInitializer源码解析】

死磕源码系列【spring之WebApplicationInitializer源码解析】WebApplicationInitializer是在Servlet3.0+环境中实现的接口,以便以编程方式配置ServletContext,而不是传统的基于web.xml方式。SpringServletContainerInitializer的SPI实现将由其自身检测,它本身由任何servlet3.0容器自动引导,有关这种引导机制的详细信息,请参考SpringServletContainerInitializer的

2020-12-10 19:34:33 58 1

原创 死磕源码系列【springcloud之RetryConfiguration重试策略源码解析】

RetryConfiguration配置是ConsulAutoConfiguration自动化配置的内部类,其作用是将AopAutoConfiguration、RetryProperties加入到IOC容器之中,并且实例化一个RetryOperationsInterceptor重试拦截器加入到IOC容器之中;1.RetryConfiguration配置类源码 //启用retry重试功能 //AopAutoConfiguration类加入IOC容器 //RetryProperties加入.

2020-12-08 18:25:44 132

原创 死磕源码系列【springcloud之BootstrapImportSelector将BootstrapConfiguration配置加载到容器源码分析】

在BootstrapApplicationListener监听器中会将BootstrapImportSelectorConfiguration配置类注入到IOC容器,配置类上有一个@Import注解将BootstrapImportSelector类注入容器并获取spring.factories配置中key为org.springframework.cloud.bootstrap.BootstrapConfiguration的配置组件;@Configuration(proxyBeanMethods = fal

2020-12-08 18:24:55 336

原创 死磕源码系列【springcloud之BootstrapApplicationListener初始化bootstrap上下文及bootstrap.properties配置文件源码解析】

BootstrapApplicationListener是ApplicationListener监听器接口的子类,其主要作用是初始化parent上下文、bootstrap.properties配置文件及应用程序上下文设置父上下文;BootstrapApplicationListener监听器源码public class BootstrapApplicationListener implements ApplicationListener<ApplicationEnvironmentPrep.

2020-12-08 18:23:44 207

原创 死磕源码系列【springcloud之@EnableDiscoveryClient More than one implementation及加不加@EnableDiscoveryClient注解都可

最近做consul作为注册中心主方法main上添加与不添加@EnableDiscoveryClient启用服务发现注解都可以正常的使用服务发现及注册功能,这点上有些疑惑,所以就扒拉扒拉源码,看看实现原理到底是什么;1.看下注解@EnableDiscoveryClient源码@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Import(EnableDiscoveryClientImp

2020-12-08 18:22:38 239 2

原创 死磕源码系列【springboot之内部类解析processMemberClasses源码分析】

在将配置类解析为ConfigurationClass配置类时经常会遇到内部配置类的情况,遇到这种情况是如何解析的呢?本文对这一块进行一一解释;ConfigurationClassParser#processMemberClasses方法解析内部类//注册配置类成员嵌套类private void processMemberClasses(ConfigurationClass configClass, SourceClass sourceClass, Predicate<String>

2020-12-08 18:21:08 148

原创 死磕源码系列【spring之MetadataReaderFactory工厂方法源码解析】

MetadataReader是用于访问类的元数据的门面模式读取器类,其实通过MetadataReaderFactory工厂方法获取,允许为每个原始资源缓存元数据读取器;public interface MetadataReaderFactory { /** * 根据类名获取MetadataReader对象 */ MetadataReader getMetadataReader(String className) throws IOException; /** * 通过给定的Resou

2020-12-04 19:29:14 276

原创 死磕源码系列【springboot之ConditionEvaluator#shouldSkip条件注解评估类判定是否应该跳过指定注解】

条件判定接口org.springframework.context.annotation.Condition是一个函数是接口,只有一个matchs方法用来判定是否符合指定的条件,结合@Conditional注解一起使用@FunctionalInterfacepublic interface Condition { /** * 判定条件是否匹配 * @param context 条件上下文 * @param metadata 类或者方法的元数据对象 */ boolean matche

2020-12-04 19:28:25 263

原创 死磕源码系列【springboot之AutoConfigurationImportSelector#getExclusionFilter过滤器方法使用源码分析】

AutoConfigurationImportSelector类是通过@EnableAutoConfiguration注解引入的,主要作用就是将自动化配置类加载到内存之中,除了这些还有一个强大的功能就是过滤掉不符合条件注解配置类;其中自动化配置类的过滤原理及流程已经分析过了,请参考:死磕源码系列【springboot之OnClassCondition、OnBeanCondition、OnWebApplicationCondition条件注解源码解析】,本文只讲解基于AutoConfigurationImpo

2020-12-04 19:27:18 135

原创 死磕源码系列【springboot之OnClassCondition、OnBeanCondition、OnWebApplicationCondition条件注解源码解析】

在spring-boot-autoconfigurejar包中的spring.factories配置文件中有一个org.springframework.boot.autoconfigure.AutoConfigurationImportFilter自动化配置import过滤器,配置如下:# Auto Configuration Import Filtersorg.springframework.boot.autoconfigure.AutoConfigurationImportFilter=\org.

2020-12-03 19:29:48 497

原创 死磕源码系列【springboot之ConditionEvaluationReport记录报告和日志条件评估详情源码解析】

ConditionEvaluationReport用来记录自动化配置过程中条件匹配的详细信息及日志信息;1.ConditionOutcome类输出条件匹配及日志信息public class ConditionOutcome { //是否匹配 private final boolean match; //日志信息 private final ConditionMessage message; }2.Condition函数是接口定义一个class必须匹配给定的条件后才可以定义为BeanDe.

2020-12-03 19:28:32 427

原创 死磕源码系列【springboot自动化配置类加载顺序源码详解AutoConfigureBefore、AutoConfigureAfter、AutoConfigureOrder】

springboot的自动化配置类默认的加载及初始化顺序是按照字母顺序来的,当然也可以通过AutoConfigureBefore、AutoConfigureAfter、AutoConfigureOrder三个注解类来控制,下面我们就看一下底层源码是如何实现的;1.查看自动化配置类加载顺序源码AutoConfigurationImportSelector.AutoConfigurationGroup#sortAutoConfigurations //autoConfigurationMetadata.

2020-12-01 19:27:10 420

原创 死磕源码系列【AutoConfigurationMetadataLoader之加载自动化配置元数据源码详解】

spring-autoconfigure-metadata.properties配置文件配置JavaConfig自动化配置类注解的元数据信息,这些原数据信息可以帮助springboot提前过滤掉不符合条件的配置类,提高加载启动应用程序的效率。1.AutoConfigurationMetadata接口提供自动化配置类注释处理器元数据的访问public interface AutoConfigurationMetadata { /** * 如果指定的类名由注解处理器处理过,则返回true *.

2020-12-01 19:25:41 161

eclipse-class-decompiler-update_v2.10.0.zip

该反编译工具支持spring tool suite 在mac上反编译class文件,

2017-09-30

struts2.3.4

标准的struts2.3.4APIchm文档,该文档是中文版

2013-06-21

JDK_API_1.6

中文版的java开发API文档,是开发人员必备的文档!

2013-03-07

JDK_API_1.6英文版

全面的java开发必备的英文版API文档

2013-03-07

随风yy的留言板

发表于 2020-01-02 最后回复 2020-01-02

java 连接mongo3.2刚开始是正常的,但是过一段时间就报错

发表于 2017-09-22 最后回复 2017-09-23

热点

发表于 2012-05-22 最后回复 2013-03-11

java中的成员变量问题

发表于 2013-03-11 最后回复 2013-03-11

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

TA关注的人 TA的粉丝

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