spring源码
javaduqing
duqingfeng.net
展开
-
spring源码(7)alias标签的解析
<bean id="some" class="src.com.Some"/><alias name="some" alias="someJava,oneBean,twoBean"/>protected void processAliasRegistration(Element ele) { //--获取“name”、“alias”属性 /* *原创 2017-07-31 11:50:19 · 1151 阅读 · 0 评论 -
spring源码附录(3)spring bean子标签 loopup-method、replaced-method基本用法
看例子:public class User { public void showMe(){ System.out.println("i am user"); }}public class Teacher extends User{ @Override public void showMe() { System.out.println(原创 2017-04-23 13:47:12 · 606 阅读 · 0 评论 -
spring源码附录(4)FactoryBean的使用
一、FactoryBean接口public interface FactoryBean<T> { T getObject() throws Exception; Class<?> getObjectType(); default boolean isSingleton() { return true; }}getObject:返回FactoryBean创建原创 2017-04-30 14:52:31 · 432 阅读 · 0 评论 -
spring源码附录(5)spring源码中使用到的设计模式
一、模板方法模式 preProcessXml(root); parseBeanDefinitions(root, this.delegate); postProcessXml(root);二、监听者模式随处可见...原创 2017-04-25 22:00:15 · 1847 阅读 · 2 评论 -
spring源码(3)Register the bean definitions(2)
接着上一节继续:protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) { //默认标签的解析 if (delegate.isDefaultNamespace(root)) { NodeList nl = root.getChildNodes();原创 2017-07-24 22:57:49 · 750 阅读 · 0 评论 -
spring源码(10)从缓存中获取到单例bean的后续操作(对FactoryBean的处理)
从缓存中获取到实例,doGetBean第一步就是对我们输入的name做了处理。去除FactoryBean的修饰符,也就是name=”&a”,最终处理为name=”a”取指定别名最终所指向的beanName在从缓存中获取实例时,getSingleton(beanName),参数是已经处理的。我们知道如果想要获取FactoryBean getObject方法对应的实例,那么name需要加前缀&。所原创 2017-08-10 23:03:11 · 1094 阅读 · 0 评论 -
spring源码(5)父子beans标签之间的属性关系
一、父子beans标签之间的属性关系回忆之前的一段代码:protected void doRegisterBeanDefinitions(Element root) { String profileSpec = root.getAttribute(PROFILE_ATTRIBUTE); if (StringUtils.hasText(profileSpec)) { S原创 2017-07-28 10:46:36 · 790 阅读 · 0 评论 -
spring源码(4)Register the bean definitions(3)
spring源码(4)Register the bean definitions(3)本节介绍bean标签的其他属性的解析 public AbstractBeanDefinition parseBeanDefinitionAttributes(Element ele, String beanName, BeanDefinition containingBean, AbstractB原创 2017-07-27 22:36:29 · 709 阅读 · 0 评论 -
spring源码(11)bean的parent属性详解和获取RootBeanDefinition
一、bean标签的parent属性 Spring Framework Reference Documentation 6.7. Bean definition inheritance该节详细介绍了 bean的继承关系(bean标签的parent属性),下面简单翻译一下:A bean definition can contain a lot of configuration informa原创 2017-08-13 14:34:47 · 7397 阅读 · 2 评论 -
spring源码(9)自定义标签与自定义标签的解析
一、自定义标签建立modelpackage com.demo3;/** * * @author dqf * @since 5.0 */public class User { private String userName; private String email; public String getUserName() { return us原创 2017-04-30 12:50:57 · 815 阅读 · 0 评论 -
spring源码(8)注册解析的BeanDefinition
对于配置文件解析完之后,我们得到了beanDefinition。下一步就是注册。 同样,注册操作委托给BeanDefinitionReaderUtils.registerBeanDefinition。public static void registerBeanDefinition( BeanDefinitionHolder definitionHolder, BeanDef原创 2017-04-25 09:08:25 · 522 阅读 · 0 评论 -
spring源码附录(8)import、beans标签的解析
对于过于庞大的项目,分模块应该是解决麻烦的好方法了。spring import标签就可以达到此目的,例如:<beans> <import resource="..."/> <import resource="..."></beans>下面来看源码中的解析: protected void importBeanDefinitionResource(Element ele) {原创 2017-04-25 21:57:25 · 1284 阅读 · 0 评论 -
spring源码(6)bean标签其他子标签的解析
spring bean子标签 loopup-method、replaced-method基本用法参见:http://blog.csdn.net/disiwei1012/article/details/70495940本节介绍bean标签的其他子标签的解析1.子元素meta解析<bean id="test" class="com.demo.test"> <meta key="testStr"原创 2017-07-31 10:56:52 · 1306 阅读 · 0 评论 -
spring源码附录(1)java实现对XML格式的验证
最近在看spring源码,涉及到xml文档的解析、xml文档的格式验证,发现自己对xml解析的基础较为薄弱,本篇博客复习下DOM方式解析xml(即spring解析xml的方式)。DOM解析XML是将整个XML作为一个对象,占用内存较多。另外一个java官方的XML解析方式SAX是边扫描边解析,自顶向下依次解析,占用内存较少。一、java实现对XML格式的验证可以使用两种验证模式(DTD、XSD)保证原创 2017-07-16 19:10:19 · 1897 阅读 · 0 评论 -
spring源码附录(2)spring profile属性的简单使用
一、profile能干嘛比如:在开发时进行一些数据库测试,希望链接到一个测试的数据库,以避免对开发数据库的影响。比如:一部分bean希望在环境一种实用,一部分bean希望在环境二中使用二、demo需求:一部bean属于生产环境,一部分bean属于开发环境目录结构: IHelloService:package com.profile.service;public interface IHelloSe原创 2017-07-22 11:26:34 · 483 阅读 · 0 评论 -
spring源码(1)从xml到org.w3c.dom.Document
spring源码——从xml到org.w3c.dom.Document从以下这一小段代码说起:new XmlBeanFactory(new ClassPathResource("springContext.xml"));这小段看似简单仅仅实例化了两个对象,但是这只是表象。一、XmlBeanFactory的构造函数查看代码发现XmlBeanFactory有两个构造函数:private final X原创 2017-07-19 22:21:00 · 1171 阅读 · 0 评论 -
spring源码(2)Register the bean definitions(1)
上一节:http://blog.csdn.net/disiwei1012/article/details/75452356继续上次的分析:XmlBeanDefinitionReader:@SuppressWarnings("deprecation") public int registerBeanDefinitions(Document doc, Resource resource) thr原创 2017-07-22 18:33:53 · 408 阅读 · 0 评论 -
spring源码附录(3)容器的基本实现
spring对其内部使用到的资源实现了自己的抽象结构。该结构如下: spring使用(接口-抽象类-实现类-内部类)的模式实现各种类型文件的读取。InputStreamSource作为其顶级接口,只定义一个方法:InputStream getInputStream() throws IOException;Resource接口抽象了所有Spring内部使用到的底层资源。对于不同来源的资源文件都有相原创 2017-04-17 09:55:10 · 436 阅读 · 0 评论 -
spring源码附录(5)解析子元素constructor-arg
一、基本使用public class Animal { public String type; public int age; /** * @param type * @param age */ public Animal(String type, int age) { super(); this.type =原创 2017-04-23 14:21:54 · 1414 阅读 · 0 评论 -
spring源码附录(6)解析子元素property
对于子元素constructor-arg的解析看这里:http://blog.csdn.net/disiwei1012/article/details/70500005一、基本用法public class Animal { public String type; public Set<Integer> age; private Map<String, Integer> sell;原创 2017-04-23 14:27:59 · 623 阅读 · 0 评论 -
spring源码(12)加载指定bean前,先加载依赖的bean
接着看bean的加载过程,本节来看看如何递归实例化依赖的bean。一、bean标签的depends-on属性 Spring Framework Reference Documentation 6.4.3. Using depends-on该节详细介绍了 bean的depends-on,下面简单复习一下:If a bean is a dependency of another that usua原创 2017-08-15 23:20:24 · 6207 阅读 · 0 评论