當前位置:首頁 » 操作系統 » 獲取spring源碼

獲取spring源碼

發布時間: 2022-07-23 04:35:46

① 如何利用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

② @Autowired的理解,還有Spring3的源碼現在怎麼獲得

spring現在也是基於maven來管理模塊的,

在打包的時候已經把源碼發布上去了,直接下載源碼就是了,非常方便。

如下圖:

③ 怎麼閱讀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畫類圖

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

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

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

下面用的是4.2.5的源碼。

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

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


MvcNamespaceHandler源碼:

⑤ 求《spring源碼深度解析第二版高清》全文免費下載百度網盤資源,謝謝~

《spring源碼深度解析第二版高清》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1k5SzFRYLbqE5Febp-v4bUA

?pwd=ht4h 提取碼: ht4h
簡介:從核心實現和企業應用兩個方面,由淺入深、由易到難地對Spring源碼展開了系統的講解,包括Spring的設計理念和整體架構、容器的基本實現等內容都有介紹。

⑥ 關於Spring包問題

spring源碼,都是在src文件夾下面。doc就是文檔。其實剛開始搞srping,沒必要看源碼,等後面屬性了之後,會用就行了,何必要那麼深究呢,不過要清楚spring的一些模塊。不然在實際開發的時候,會不知道怎麼下手。

⑦ 怎麼在spring官網上下載spring的jar包, 源代碼和文檔

進入spring官網—點擊【PROJECTS】菜單項—點擊Reference進入下載—下拉滾動條找到【Distribution Zip Files】—點擊下載鏈接—選擇需要的版本進行下載即可。

⑧ 如何獲取spring的bean

方法一:在初始化時保存ApplicationContext對象 方法二:通過Spring提供的utils類獲取ApplicationContext對象 方法三:繼承自抽象類ApplicationObjectSupport 方法四:繼承自抽象類WebApplicationObjectSupport 方法五:實現介面ApplicationContextAware 方法六:通過Spring提供的ContextLoader
獲取spring中bean的方式總結:
方法一:在初始化時保存ApplicationContext對象

[html] view plain
ApplicationContext ac = new ("applicationContext.xml");
ac.getBean("beanId");

說明:這種方式適用於採用Spring框架的獨立應用程序,需要程序通過配置文件手工初始化Spring的情況。
方法二:通過Spring提供的工具類獲取ApplicationContext對象
[java] view plain
ApplicationContext ac1 = WebApplicationContextUtils.(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("beanId");
ac2.getBean("beanId");

說明:這種方式適合於採用Spring框架的B/S系統,通過ServletContext對象獲取ApplicationContext對象,然後在通過它獲取需要的類實例。上面兩個工具方式的區別是,前者在獲取失敗時拋出異常,後者返回null。
方法三:繼承自抽象類ApplicationObjectSupport
說明:抽象類ApplicationObjectSupport提供getApplicationContext()方法,可以方便的獲取ApplicationContext。
Spring初始化時,會通過該抽象類的setApplicationContext(ApplicationContext context)方法將ApplicationContext 對象注入。
方法四:繼承自抽象類WebApplicationObjectSupport
說明:類似上面方法,調用getWebApplicationContext()獲取WebApplicationContext
方法五:實現介面ApplicationContextAware
說明:實現該介面的setApplicationContext(ApplicationContext context)方法,並保存ApplicationContext 對象。Spring初始化時,會通過該方法將ApplicationContext對象注入。
以下是實現ApplicationContextAware介面方式的代碼,前面兩種方法類似:
[java] view plain
package com.ifaboo.MiomOmmg.util;

import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;

/**
* 實現ApplicationContextAware介面的context注入函數, 將其存入靜態變數.
*/
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext; // NOSONAR
}

/**
* 取得存儲在靜態變數中的ApplicationContext.
*/
public static ApplicationContext getApplicationContext() {
checkApplicationContext();
return applicationContext;
}

/**
* 從靜態變數ApplicationContext中取得Bean, 自動轉型為所賦值對象的類型.
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) {
checkApplicationContext();
return (T) applicationContext.getBean(name);
}

/**
* 從靜態變數ApplicationContext中取得Bean, 自動轉型為所賦值對象的類型.
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(Class<T> clazz) {
checkApplicationContext();
return (T) applicationContext.getBeansOfType(clazz);
}

/**
* 清除applicationContext靜態變數.
*/
public static void cleanApplicationContext() {
applicationContext = null;
}

private static void checkApplicationContext() {
if (applicationContext == null) {
throw new IllegalStateException("applicaitonContext未注入,請在applicationContext.xml中定義SpringContextHolder");
}
}

}

雖然,spring提供的後三種方法可以實現在普通的類中繼承或實現相應的類或介面來獲取spring 的ApplicationContext對象,但是在使用是一定要注意實現了這些類或介面的普通java類一定要在Spring 的配置文件applicationContext.xml文件中進行配置。否則獲取的ApplicationContext對象將為null。
方法六:通過Spring提供的ContextLoader
[java] view plain
WebApplicationContext wac = ContextLoader.();
wac.getBean(beanID);

最後提供一種不依賴於servlet,不需要注入的方式。但是需要注意一點,在伺服器啟動時,Spring容器初始化時,不能通過以下方法獲取Spring 容器,細節可以查看spring源碼org.springframework.web.context.ContextLoader。

⑨ 讀過完整Spring源碼的來領分

不為領分,談點個人看法

不要過於急於掌握,先明白什麼是spring,spring的本質是什麼,對象間關系,為什麼要通過IoC這樣的方式來管理。

學習資料:
spring2.0中文手冊 http://www.redsaga.com/spring_ref/2.0/html/

推薦書籍:expert one-on-one J2EE Development without EJB 有中文版

//-------------------------
// www.1x3x.net/blog
//-------------------------

⑩ Myeclipse下如何查看Spring等框架的源代碼

1.下載jad.exe與jadclipse_3.2.0.jar(本地址資源中心中提供);2.將jad.exe可以存放任意目錄,比如C:jad.exe;3.將jadclipse_3.2.0.jar放到${eclipse}/plugins目錄下,並解壓到當前目錄下,目錄為${eclipse}/plugins/jadclipse_3.2.0;4.打開Myeclipse進行分別設置:選項Windows--Preference--Java-JadClipse下設置Path to decompiler為:C:jad.exe選項Windows--Preference--General--Editor--File Associations下設置File types為*.class的默認打開格式為JadClipse Class File Viewer我是按上面步驟做的,(MyEclipse 6.5)卻什麼也出不來,是不是我的方法不對? 回答: 你上面的步驟是正確的。我在Myeclipse 5.5上用jadclipse_3.2.0.jar同樣的手順已經取到了源代碼。我覺得你用的jadclipse_3.2.0.jar 應該是和你的Eclipe版本不符,低了。我在Myeclipse 7.0 用net.sf.jadclipse_3.3.0.jar 取到了。若換成3.2.0 就不行,出ERROR。

熱點內容
安卓模擬器root怎麼關閉 發布:2025-01-20 06:02:03 瀏覽:17
寬屏企業網站源碼 發布:2025-01-20 05:55:54 瀏覽:451
區域網電腦訪問許可權 發布:2025-01-20 05:55:44 瀏覽:823
javaandroid游戲開發 發布:2025-01-20 05:54:19 瀏覽:72
資料庫映射是什麼 發布:2025-01-20 05:41:52 瀏覽:981
中國植物資料庫 發布:2025-01-20 05:38:50 瀏覽:334
C語言能嗎 發布:2025-01-20 05:37:25 瀏覽:558
onedrive存儲位置 發布:2025-01-20 05:35:16 瀏覽:826
導航廣播怎麼存儲電台 發布:2025-01-20 05:35:14 瀏覽:310
歌的壓縮包 發布:2025-01-20 05:23:53 瀏覽:391