当前位置:首页 » 操作系统 » 获取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。

热点内容
java单例实现 发布:2025-01-20 11:48:40 浏览:333
cad为什么加载不了配置 发布:2025-01-20 11:37:45 浏览:16
服务器记录的手机ip 发布:2025-01-20 11:32:47 浏览:672
sparksql查询 发布:2025-01-20 11:27:51 浏览:204
安卓奥特曼格斗进化1怎么发大招 发布:2025-01-20 11:17:03 浏览:605
试验数据存储 发布:2025-01-20 11:03:38 浏览:305
联想如何将密码退出 发布:2025-01-20 10:51:41 浏览:972
ftp传输文件连接失败 发布:2025-01-20 10:49:39 浏览:723
xp共享访问不了 发布:2025-01-20 10:40:05 浏览:946
基恩士plc编程手册 发布:2025-01-20 10:11:30 浏览:910