日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

面试有没有看过spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天...

發布時間:2025/3/19 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试有没有看过spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:如何看Spring源碼、Java每日六道面試分享,打卡第二天

想要深入的熟悉了解Spring源碼,我覺得第一步就是要有一個能跑起來的極盡簡單的框架,下面我就教大家搭建一個最簡單的Spring框架,而且是基于Java Config形式的零配置Spring框架。

首先第一步創建一個空的maven web項目,這步很簡單,自行百度。

在maven項目的pom.xml文件中添加Spring基礎依賴:

4.3.7.RELEASE

1.7.21

2.8.2

1.2

org.springframework

spring-framework-bom

${spring.version}

pom

import

org.springframework

spring-context

org.springframework

spring-web

org.springframework

spring-webmvc

org.springframework

spring-core

org.springframework

spring-beans

org.springframework

spring-aop

org.apache.logging.log4j

log4j-api

${log4j.version}

org.apache.logging.log4j

log4j-core

${log4j.version}

org.apache.logging.log4j

log4j-web

${log4j.version}

org.apache.logging.log4j

log4j-slf4j-impl

${log4j.version}

org.apache.logging.log4j

log4j-jcl

${log4j.version}

org.slf4j

slf4j-api

${slf4j.version}

我推薦搭建基于Java Config形式的Spring框架,不需要配置文件,全部使用Java代碼形式來定義,簡潔明了,對于想要深入了解Spring源碼來說這點很重要,否則可能需要看非常多的Spring解析XML配置文件的解析類,對于任何人都不是很容易的功夫。而使用Java Config形式能直接看到配置類的運行流程,對了解Spring源碼很有幫助。

要搭建基于Java Config形式的Spring框架,要求Servlet-api版本3.0以上,同時推薦Spring版本4.0以上,日志可以使用我另一篇博客上的log4j2的配置,自己修改下輸出日志文件路徑就可以了。

public class WebContextInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

@Override

protected Class> getRootConfigClasses {

return new Class> {RootContextConfig.class};

}

}

@Configuration

@ComponentScan

public class RootContextConfig {

@Bean

public Child child {

return new Child;

}

}

public class Child {

}

@Component

public class Mother {

}

把這幾個類都放在一個包下,然后啟動tomcat,應該就可以啟動Spring了,這就是一個最基本的Spring框架,而且包含了Java Config的Bean的定義以及組件掃描,RootContextConfig這個類就是容器的配置類,之后就可以開始跟著Spring框架的啟動流程看了,DEBUG跟著一步一步的走。

WebContextInitializer 的父類的將RootContextConfig 當做配置類生成一個AnnotationConfigWebApplicationContext 類型ApplicationContext容器,注入到ContextLoaderListener中。

......

protected WebApplicationContext createRootApplicationContext {

Class> configClasses = getRootConfigClasses;

if (!ObjectUtils.isEmpty(configClasses)) {

AnnotationConfigWebApplicationContext rootAppContext = new AnnotationConfigWebApplicationContext;

rootAppContext.register(configClasses);

return rootAppContext;

}

else {

return ;

}

}

......

protected void registerContextLoaderListener(ServletContext servletContext) {

WebApplicationContext rootAppContext = createRootApplicationContext;

if (rootAppContext != ) {

ContextLoaderListener listener = new ContextLoaderListener(rootAppContext);

listener.setContextInitializers(getRootApplicationContextInitializers);

servletContext.addListener(listener);

}

else {

logger.debug("No ContextLoaderListener registered, as " +

"createRootApplicationContext did not return an application context");

}

}

不要對Tomcat內的源碼花時間,主要是看Spring的源碼,之后就可以看ContextLoaderListener的contextInitialized(…)方法了,Spring容器就是在這個方法里初始化生成的。如何初始化,這個太復雜了,需要花非常多的時間去看,去思考的,這里就不講了,不過我可以說一些我自己總結的小技巧:

說是看源碼,其實應該叫看和想。Spring源碼很復雜,我覺得花在思考上的時間至少要和看的時間對等。看了,如果沒有花時間想明白,等于白看。

理解重于記憶。Spring的流程很長,東西很多,如果單純靠記憶肯定記不過來的,知道每個組件的大體作用以及作用的節點就夠了,源碼就在那里,又不會跑,記不清了翻翻就看到了,多翻幾次就能夠慢慢記住了,最開始看的時候不要執著于記憶。

多做筆記。Spring組件很多,在最開始看的時候,推薦做些筆記,將每個重要接口的作用及關鍵代碼記錄下,有時間就看看,最先了解的組件是你切入Spring源碼的切口,借助他們能關聯到其他的組件。

多百度。在看一些關鍵接口或者類時,如果其代碼很復雜,先百度下吧,先對其功能有個了解,然后對照著功能看代碼會有很大的幫助。

要多遍地看,反復地看。別想著看一遍就能看明白,在最開始的幾次跟著初始化流程看源碼時,不要執著于某個細節。先對Spring所有的組件功能有個大體了解,對初始化流程有個大體的了解,這是深入的基礎。

多看日志,多DEBUG。多看日志能夠提高你對Spring流程的了解程度,而且在排錯時能有效提高效率;DEBUG是看源碼最好的一種方式,是解疑的最直接途徑,對于有些運行時難以觸及的代碼,需要你手動創造條件讓流程走入此處。

多總結,多動手。不要僅局限于看和思考,要動手。源碼看的仔細,基本能從源碼上看出很多Spring組件的使用方式,總結各種組件的使用方法,然后自己定義相應的組件,將其引入Spring中,查看其作用流程,這是你拓展Spring的第一步,既能增強對Spring的理解,也能提高你對Spring的拓展能力。

不斷完善框架。每熟悉一種組件的使用,就添加到自己的 框架中,不斷完善自己的框架,到最后你的框架能夠整合Spring大部分好用組件,也是你以后回顧Spring框架的最大助力。

多看注釋,看方法的名稱,參數和返回值。看注釋,理解類,屬性和方法的作用,著重第一段注釋;看方法的名稱,參數和返回值能對方法的作用有很明顯的說明。

以上就是我自己看Spring總結的一些小技巧,希望對你們有些助益。如果在看Spring源碼的過程中有些疑問,可以在回復里提,我會盡量幫助解答。

文章轉自:https://blog.csdn.net/qq_27529917/article/details/79209846

第二天學習打卡

大家有問題也可以在評論區寫出來,記載在第二天公眾號里面發出來一起探討。。

今天的主題是關于面試題解答,求職是在每個技術人員的生涯中都要經歷多次。對于我們大部分人而言,在進入自己心儀的公司之前少不了準備工作,

所以如果大家覺得這種模式不錯的,歡迎大家評論,會堅持下去,每天分享6個面試常問題。

一方面幫助跳槽季來臨之時。不時之需,一方面幫助大家鞏固下基礎,幫助活到學到老的機會 哈哈、另一方面也希望幫助想要換工作的朋友。

堅持半個月試一下、回答問題不僅提升了自己、更加幫助更多程序員們、哈哈 記得堅持來打卡。

答:

1.

2.

3.

4.

5.

6.

歡迎置頂公眾號、晚上10點公眾號公布答案、評論區見。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的面试有没有看过spring源码_如何看Spring源码、Java每日六道面试分享,打卡第二天...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。