當前位置:首頁 » 操作系統 » 查看spring源碼

查看spring源碼

發布時間: 2022-07-13 05:54:54

❶ 如何查看spring源碼

1.准備工作:在官網上下載了Spring源代碼之後,導入Eclipse,以方便查詢。
2.打開我們使用Spring的項目工程,找到Web.xml這個網站系統配置文件,在其中找到Spring的初始化信息:

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

由配置信息可知,我們開始的入口就這里ContextLoaderListener這個監聽器。
在源代碼中我們找到了這個類,它的定義是:
public class ContextLoaderListener extends ContextLoader
implements ServletContextListener {

/**
* Initialize the root web application context.
*/
public void contextInitialized(ServletContextEvent event) {
this.contextLoader = createContextLoader();
if (this.contextLoader == null) {
this.contextLoader = this;
}
this.contextLoader.initWebApplicationContext(event.getServletContext());
}
...
}

該類繼續了ContextLoader並實現了監聽器,關於Spring的信息載入配置、初始化便是從這里開始了,具體其他閱讀另外寫文章來深入了解。
二、關於IOC和AOP
關於Spring IOC 網上很多相關的文章可以閱讀,那麼我們從中了解到的知識點是什麼?
1)IOC容器和AOP切面依賴注入是Spring是核心。
IOC容器為開發者管理對象之間的依賴關系提供了便利和基礎服務,其中Bean工廠(BeanFactory)和上下文(ApplicationContext)就是IOC的表現形式。BeanFactory是個介面類,只是對容器提供的最基本服務提供了定義,而DefaultListTableBeanFactory、XmlBeanFactory、ApplicationContext等都是具體的實現。
介面:

public interface BeanFactory {
//這里是對工廠Bean的轉義定義,因為如果使用bean的名字檢索IOC容器得到的對象是工廠Bean生成的對象,
//如果需要得到工廠Bean本身,需要使用轉義的名字來向IOC容器檢索
String FACTORY_BEAN_PREFIX = "&";
//這里根據bean的名字,在IOC容器中得到bean實例,這個IOC容器就象一個大的抽象工廠,用戶可以根據名字得到需要的bean
//在Spring中,Bean和普通的java對象不同在於:
//Bean已經包含了我們在Bean定義信息中的依賴關系的處理,同時Bean是已經被放到IOC容器中進行管理了,有它自己的生命周期
Object getBean(String name) throws BeansException;
//這里根據bean的名字和Class類型來得到bean實例,和上面的方法不同在於它會拋出異常:如果根名字取得的bean實例的Class類型和需要的不同的話。
Object getBean(String name, Class requiredType) throws BeansException;
//這里提供對bean的檢索,看看是否在IOC容器有這個名字的bean
boolean containsBean(String name);
//這里根據bean名字得到bean實例,並同時判斷這個bean是不是單件,在配置的時候,默認的Bean被配置成單件形式,如果不需要單件形式,需要用戶在Bean定義信息中標注出來,這樣IOC容器在每次接受到用戶的getBean要求的時候,會生成一個新的Bean返回給客戶使用 - 這就是Prototype形式
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
//這里對得到bean實例的Class類型
Class getType(String name) throws NoSuchBeanDefinitionException;
//這里得到bean的別名,如果根據別名檢索,那麼其原名也會被檢索出來
String[] getAliases(String name);
}

實現:
XmlBeanFactory的實現是這樣的:
public class XmlBeanFactory extends DefaultListableBeanFactory {
//這里為容器定義了一個默認使用的bean定義讀取器,在Spring的使用中,Bean定義信息的讀取是容器初始化的一部分,但是在實現上是和容器的注冊以及依賴的注入是分開的,這樣可以使用靈活的 bean定義讀取機制。
private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this);
//這里需要一個Resource類型的Bean定義信息,實際上的定位過程是由Resource的構建過程來完成的。
public XmlBeanFactory(Resource resource) throws BeansException {
this(resource, null);
}
//在初始化函數中使用讀取器來對資源進行讀取,得到bean定義信息。這里完成整個IOC容器對Bean定義信息的載入和注冊過程
public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws
BeansException {
super(parentBeanFactory);
this.reader.loadBeanDefinitions(resource);
}

❷ 對於一個初級JAVA程序員,怎麼去看Spring源碼比較好

到網上找一些別人讀Spring源碼分析的博客和文章,結合著看

❸ 如何快速閱讀spring的源碼

跳讀。。。。。。。。。。。。。。。。。。。。。

❹ 怎麼找到spring註解解析器的源碼

下面用的是4.2.5的源碼。

從這個文件開始看:META-INF/spring.handlers

文件里的內容是http://www.springframework.org/schema/mvc=org.springframework.web.servlet.config.MvcNamespaceHandler


MvcNamespaceHandler源碼:

❺ myeclipse怎麼看spring源碼

1、在你的MyEclipse上安裝一個反編譯插件,這樣,所有的class文件都能看到它的源代碼

2、建議你用jad MyEclipse反編譯插件。

3、要相應jar包,我上傳給你了。

4、MyEclipse10是在(MyEclipse安裝目錄)MyEclipse 10dropins下建立一個文件夾jad,可能myeclipse的版本不一樣,路徑會有所區別。在新建的jad文件夾中新建兩個文件夾:plugins,features,然後將下載來的jar放入到plugins文件夾中。

5、還要用的jad.exe,在上面的壓縮包里也有。把這個最好放到你的jdk的bin目錄下。

6、打開:Window->Preferences->Java->JadClipse.

1)Path to decompiler,這里設置反編譯工具jad的全路徑名,我的是

D:Program FilesJavajdk1.7.0injad.exe

2)Directory for temporary files,這里設置臨時文件路徑。

這個不用管。就默認的哪個樣子就可以。

7、注意:安裝完成後,myeclipse沒有自動將JadClipse Class File Viewer設置成class文件的預設打開方式,設置方法如下:

❻ 怎麼去看框架源代碼

用f12打開調試工具,找到iframe復制src地址然後再瀏覽器中打開就可以看到源碼了,希望可以幫到你。

❼ 怎麼閱讀Spring源碼

學習源碼是一件非常耗時費力的事情,需要有足夠的時間和持久的耐心,下面是我閱讀郝佳老師的《Spring源碼深度解析》所做的記錄,書中以Spring3.2講解,使用jdk1.7。

准備工作
1. 安裝github:現在spring源代碼都在github管理,所以首先需要下載githup,下;
2. 安裝gradle構建工具: 下載完後進行解壓到任意盤符,然後增加環境變數GRADLE_HOME,並在環境變數bin中增加%GRADLE_HOME%/bin,打開DOS窗口,運行gradle -v,出現版本號等信息,表示安裝成功;
3. 下載Spring源碼:首先打開git shell,切換到你的工作目錄,然後輸入以下命令:git clone git://github.com/SpringSource/Spring-framework.git,後面一串是源碼下載地址。大概半小時的樣子,就可以下載完成,這時候在你的工作目錄中就會出現Spring-framework的目錄,裡面有Spring各組件的源碼包;

4. 構建導入:下載下來的代碼不能直接導入Eclipse,要先轉換成Eclipse能讀取的形式。因為所有組件都會依賴spring-core,所有我們首先要轉換Spring-core工程,在命令窗口切換到Spring-core工程,運行gradle cleanidea eclipse命令,我們會看到開始下載工程所依賴的jar包,幾分鍾後執行完畢,再來看Spring-core文件夾,多了.classpath、.project等文件,這是Eclipse工程所必須的,然後可以把他導入到eclipse。因為大部分Spring組件都會用到 spring-beans、spring-context、spring-aop,而他們又依賴spring-expression、spring-instrument,所以我們乾脆先把這些工程都進行轉換並導入eclipse。

❽ 閱讀spring源碼需要很好的基礎嗎

研究框架的源碼:
一、前提: 需要基礎很扎實,做過很多項目了之後。
二、作用:
1、為了更好的掌握框架
2、更好的處理代碼中出現的問題或者bug
3、為了以後擔當系統架構師打下基礎
三、好處:
1、為了自己更深入的了解框架的原理
四、怎麼著手去研究:
1、先找一些spring的入門教程,先做幾個例子,感受一下其功能,體驗一下其IoC,AOP的例子。
2、通過一個具體的項目的實際代碼去練練手,去發覺spring的原理。
3、看看spring的中文版live教程。

通過以上,你會很快入門,而且會越來越強大。

❾ 怎麼閱讀Spring源碼

如何使用jar包以及源碼的source包

首先,在工程右鍵,屬性中,添加必要的jar包。

選中必要的jar包,上面給出的源碼jar包中,導入spring3.0.5中的所有jar包。

其中lib內的是spring的jar包,用到哪個導入哪個,不知道的話,全部導入就行了。

外面的幾個jar包,用於日誌以及mysql的驅動。commons-logging jar包是必須的,其他的隨意吧。

不確定的話,lib外面的這幾個jar包以及lib裡面的都導入就行了。

導入jar包後,點開jar包,選中source attachment進行編輯,鏈接到源碼的jar包。

選擇相應的source源碼包

全部導入後,如下

 

spring樣例

首先是一個必要的POJO類,用於注入屬性的值。

1 package com.test.bean;
2
3 public class Person {
4
5 private String name;
6 private int age;
7
8 public String getName() {
9 return name;
10 }
11 public void setName(String name) {
12 this.name = name;
13 }
14 public int getAge() {
15 return age;
16 }
17 public void setAge(int age) {
18 this.age = age;
19 }
20 public void info(){
21 System.out.println("name:"+getName()+" age:"+getAge());
22 }
23 }

主函數,用於讀取資源文件,獲取bean,調用info方法

1 package test.spring;
2
3 import org.springframework.context.ApplicationContext;
4 import org.springframework.context.support.;
5
6 import com.test.bean.Person;
7
8 public class Test {
9 public static void main(String[] args){
10 ApplicationContext ctx = new ("bean.xml");//讀取bean.xml中的內容
11 Person p = ctx.getBean("person",Person.class);//創建bean的引用對象
12 p.info();
13 }
14 }

bean.xml用於配置bean的資源文件

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns="http://www.springframework.org/schema/beans"
4 xsi:schemaLocation="http://www.springframework.org/schema/beans
5 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
6 <bean id="person" class="com.test.bean.Person">
7 <property name="name" value="xingoo"/>
8 <property name="age" value="12"/>
9 </bean>
10 </beans>

運行結果

 

閱讀源碼

首先,有了前面的jar包以及源碼包,你就可以通過這個簡單的程序,進行但不的調試,閱讀源碼。

簡單的說下調試的快捷鍵:

1F5:下一步,可以進入下一個函數棧

2F6:當前函數的下一步,不會進入其他的函數。

3F8:下一個斷點。

4 也可以通過選中一個變數或者表達式,按ctrl+shift+i來查看內容。或者添加監視的方式,查看。

5 可以通過快捷鍵F2,來查看一個函數方法的javadoc,即說明

6 快捷鍵F3或者ctrl+滑鼠點擊,進入一個函數

7ctrl+shift+G查看當前方法都有誰在使用

8F4查看類的繼承關系,可以向上顯示出類繼承的父類以及介面。

有了調試的方法,接下來,就是如何閱讀源碼了!

1 參考書籍,推薦《Spring技術內幕》

這本書,基本上很詳細的講述了,spring的實現方式,以及類之間的復雜關系。可以幫助你快速的理清復雜的類之間的關系。

2 使用StarUML畫類圖

比如你好不容易理清了一個部分的關系,很快就會忘記其中的關系,那麼可以通過這個工具,簡單的畫出其中的復雜關系。

這樣,下一次看的時候也會清楚一些,這是我今天剛畫好的的類圖關系:

❿ 如何利用Eclipse 查看Spring jar 包的源代碼

在Eclipse查看開發包jar源碼的方法如下:
1.選擇項目,右鍵中單擊【Properties】
2.【Java Build Path】-【Libraries】,在下面找到如:org.springframework.core-3.1.0.M1.jar包,展開它,選擇【Source attachment】,單擊右邊的【Edit…】按鈕。
3.在打開的窗口中,可選擇文件(jar\zip),目錄或工作空間中的jar文件,在這里我選擇External Folder…,選擇如F:\Development Kit\spring-framework-3.1.0.M1-with-docs\spring-framework-3.1.0.M1\projects即可。
4.連續單擊【OK】兩次回到Eclipse工作平台即可。

我的為什麼不行啊
我【Java Build Path】-【Libraries】找到spring.jar,展開,選擇【Source attachment】,單擊右邊的【Edit…】按鈕,選擇workspace,輸入:/autojboa/WebContent/WEB-INF/lib/spring.jar,最後運行到saveOrUpdate還是進不去,我的/autojboa/WebContent/WEB-INF/lib/spring.jar目錄下有spring.jar

熱點內容
戰地4亞洲伺服器為什麼被攻擊 發布:2025-01-22 23:45:42 瀏覽:668
javascript反編譯 發布:2025-01-22 23:37:57 瀏覽:429
夏天來了你的巴氏奶存儲對嗎 發布:2025-01-22 23:37:56 瀏覽:203
求最大值c語言 發布:2025-01-22 23:22:35 瀏覽:247
一鍵清理系統腳本 發布:2025-01-22 23:21:10 瀏覽:59
防疫宣傳腳本 發布:2025-01-22 23:21:05 瀏覽:632
編譯程序編譯後是什麼語言 發布:2025-01-22 23:20:08 瀏覽:368
電腦文件夾設密碼 發布:2025-01-22 23:17:21 瀏覽:7
anyconnect伺服器地址2018 發布:2025-01-22 23:05:56 瀏覽:530
教師資格面試試講腳本 發布:2025-01-22 22:51:37 瀏覽:684