原创 一分鐘面試題:令人撓頭的三目運算符

面試題 提問:當 a=1,b=2 時,test1 方法的執行結果是什麼?思考一分鐘。 答案: 解析 在使用三目運算符時,儘量保證兩個返回值的類型一致,不然會觸發類型轉換,轉換規則如下: 如果返回值 X 和返回值 Y 是同種類型,那麼返

原创 Spring5 AOP 默認使用Cglib ?從現象到源碼深度分析

本文首發於個人微信公衆號:Coder小黑 Spring5 AOP 默認使用 Cglib 了?我第一次聽到這個說法是在一個微信羣裏: 真的假的?查閱文檔 剛看到這個說法的時候,我是保持懷疑態度的。 大家都知道 Spring5 之前的版本 A

原创 經驗分享:程序員如何快速定位問題(BUG)

讓我掉下眼淚的 不止內存泄漏讓我夜夜不眠的 不止你的需求 明天還要改多久 你攥着我的手 讓我感到爲難的 是善變的需求 發佈總是在半夜 回滾是永遠的愁 錯誤(Bug)隨時的暴漏 困擾着我心頭 作爲程序員,以上這些場景你一定都經歷過。今天就來

原创 SpringBoot2.x升級踩坑--新增Configuration property name限制

最近公司項目在做SpringBoot的升級,在升級過程中遇到了一些問題,簡單記錄一下,做個分享。另外,本文中的程序只爲示例代碼,並非公司生產環境代碼。 遇到什麼問題 從SpringBoot1.x升級到SpringBoot2.x之後,解決完編

原创 Spring5源碼解析8-refresh方法總結

廢話不多說,直接上源碼註釋: //AbstractApplicationContext#refresh源碼 public void refresh() throws BeansException, IllegalStateException

原创 Spring拓展點:BeanFactoryPostProcessor及其子接口

BeanFactoryPostProcessor BeanFactoryPostProcessor是一個函數式接口,裏面只有一個方法: @FunctionalInterface public interface BeanFactoryPos

原创 Spring5源碼解析7-ConfigurationClassPostProcessor (下)

ConfigurationClassPostProcessor繼承了BeanDefinitionRegistryPostProcessor接口,它實現了postProcessBeanDefinitionRegistry和其父類的BeanFa

原创 Spring中@Import的各種用法以及ImportAware接口詳解

這篇文章主要介紹了Spring中@Import的各種用法以及ImportAware接口詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧 @I

原创 Spring5源碼解析6-ConfigurationClassParser 解析配置類

ConfigurationClassParser 在ConfigurationClassPostProcessor#processConfigBeanDefinitions方法中創建了ConfigurationClassParser對象並調

原创 Spring中@Import的各種用法以及ImportAware接口

@Import 註解 @Import註解提供了和XML中<import/>元素等價的功能,實現導入的一個或多個配置類。@Import即可以在類上使用,也可以作爲元註解使用。 @Target(ElementType.TYPE) @Retent

原创 Spring5源碼分析5-ConfigurationClassPostProcessor (上)

接上回,我們講到了refresh()方法中的invokeBeanFactoryPostProcessors(beanFactory)方法主要在執行BeanFactoryPostProcessor和其子接口BeanDefinitionRegi

原创 你真的懂Spring Java Config 嗎?Full @Configuration vs lite @Bean mode

Full @Configuration和lite @Bean mode 是 Spring Java Config 中兩個非常有意思的概念。 先來看一下官方文檔關於這兩者的相關內容: The @Bean methods in a regul

原创 Spring5源碼解析4-refresh方法之invokeBeanFactoryPostProcessors

invokeBeanFactoryPostProcessors(beanFactory);方法源碼如下: protected void invokeBeanFactoryPostProcessors(ConfigurableListable

原创 Spring5源碼解析3-refresh方法初探

接上回分析完register(annotatedClasses);後,現在來看一下refresh();方法。 // new AnnotationConfigApplicationContext(AppConfig.class); 源碼 pu

原创 Spring5源碼解析2-register方法註冊配置類

接上回已經講完了this()方法,現在來看register(annotatedClasses);方法。 // new AnnotationConfigApplicationContext(AppConfig.class); 源碼 publi