spring源码之容器部分
lcctt
新人
展开
-
一.XmlBeanFactory
入口代码:BeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));1.配置文件封装在java中,可以将不同来源的资源文件抽象成URL;**补:URL和URI的区别: 1.URI包含URL,URL定义了资源路径 2.URL不仅定义了资源路径,还定义了资源的...原创 2019-02-22 00:22:05 · 141 阅读 · 0 评论 -
二.解析BeanDefinition
解析Xml和获取Document的过程省略当把Xml文件转换成Document对象后,接下来就可以提取和注册Bean了。入口方法:public int registerBeanDefinition(Document doc,Resource resource){ BeanDefinitionDocumentReader documentReader = createBeanDefinit...原创 2019-02-22 21:25:11 · 138 阅读 · 0 评论 -
三.Spring默认标签的解析
默认标签解析入口方法:private void parseDefaultElement(Element ele,BeanDefinitionParserDelegate dalegate){ if(delegate.nodeNameEquals(ele,IMPORT_ELEMENT)){ //说明是import变迁 importBeanDefinitionResource(ele);...原创 2019-02-23 22:15:31 · 275 阅读 · 0 评论 -
四,Bean的加载过程
入口:TestBean bean = beanFactory.getBean("testBean");上述方法实质上是调用的doGetBean方法:/**getBean(beanName) ---> doGetBean(beanName,null,null,false);*/protected &原创 2019-02-24 19:00:00 · 139 阅读 · 0 评论 -
五.容器的功能扩展
切入点:ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");跟踪进入其构造器源码:public ClassPathXmlApplicationContext(String[] configLocations,boolean refresh,ApplicationC...原创 2019-03-01 00:48:40 · 129 阅读 · 0 评论 -
六。Spring之AOP(一)
Spring在xml中开启AOP:<aop:aspectj-autoproxy />在自定义标签注解解析时:public void init(){ registerBeanDefinitionParser("config",new ConfigBeanDefinitionParser()); //注册AspectJ的解析器,一旦使用aspectj-autoproxy注解,...原创 2019-03-03 03:14:26 · 85 阅读 · 0 评论 -
七.spring之AOP(二)
本节主要是对创建AOP代理方式进行讲述:在类的层级中,AnnotationAwareAspectJAutoProxyCreator实现了BeanPostProcessor接口。当spring加载这个bean的时候,会调用其postProcessAfterIntialization方法。public Object postProcessAfterInitialization(Object be...原创 2019-03-03 03:56:02 · 78 阅读 · 0 评论 -
八.事务
spring事务功能由下述配置开始:<tx:annotation-driven /0>annotation-driven可以最终锁定类TxNamespaceHandler,其init方法如下:public void init(){ registerBeanDefinitionParser("advice",new TxAdviceBeanDefinitionParser())...原创 2019-03-03 17:12:34 · 155 阅读 · 0 评论