bean的创建(五)第五部分 属性填充
摘要:AbstractAutowireCapableBeanFactory.populateBean protected void populateBean(String beanName, RootBeanDefinition mbd, BeanWrapper bw) { //获取属性值 PropertyValues pvs = mbd.getPropertyValues(); ...
阅读全文
bean的创建(五)第四部分 bean构造器的查找
摘要:前面分析了bean的静态工厂查找 bean的构造器查找过程和bean的静态工厂查找类似 protected BeanWrapper createBeanInstance(String beanName, RootBeanDefinition mbd, Object[] args) { // Make sure bean class is actually resolved at...
阅读全文
bean的创建(五)第三部分 bean工厂方法参数的解析
摘要:准备好一系列参数之后,开始参数类型的转换,方法参数的对应。 ConstructorResolver.createArgumentArray private ArgumentsHolder createArgumentArray( String beanName, RootBeanDefinition mbd, ConstructorArgumentValues reso...
阅读全文
bean的创建(五)第二部分 寻找bean的工厂方法实例化
摘要:instanceWrapper = createBeanInstance(beanName, mbd, args); AbstractAutowireCapableBeanFactory.createBeanInstance protected BeanWrapper createBeanInstance(String beanName, RootBeanDefinition mbd, Ob...
阅读全文
bean的创建(五)第一部分
摘要:AbstractBeanFactory.doGetBean protected T doGetBean( final String name, final Class requiredType, final Object[] args, boolean typeCheckOnly) throws BeansException { //转换bea...
阅读全文
spring aop(四)
摘要:直接找到解析aop标签的方法: 由于aop属于自定义标签,所以它会执行第12行的代码。 通过aop标签获取到它的命名空间uri,通过命名空间去找到对应的命名空间处理器,这个处理器的定义在springaop包下的一个叫spring.handlers的文件里声明了,它的内容是这样的 http\://ww
阅读全文
spring的jdbcTemplate的使用
摘要:转载:http://1358440610-qq-com.iteye.com/blog/1826816 一、首先配置JdbcTemplate; 要使用Jdbctemplate 对象来完成jdbc 操作。通常情况下,有三种种方式得到JdbcTemplate 对象。 第一种方式:我们可以在自己定义的DAO
阅读全文
spring使用thymeleaf
摘要:一、spring使用thymeleaf做解析器其实很简单,这是基于xml配置的方式 和我们传统的配置文件相比,也就多增加了红色的部分,如果你的项目不会使用到jsp,那么就没有必要再配置jsp的解析器了 二、基于注解的配置,首先这个web.xml需要改动成下面这个样子 标红部分就是与传统web.xml
阅读全文
spring解析配置文件(三)
摘要:一、从XmlBeanDefinitionReader的registerBeanDefinitions(doc,resource)开始 进入第5行的registerBeanDefinitions方法 第二行创建了一个bean定义文档阅读器,创建的代码如下,第三行的getRegistry()方法得到是D
阅读全文
spring读取xml配置文件(二)
摘要:一、当spring解析完配置文件名的占位符后,就开始refresh容器 第7行设置了容器启动的时间,容器的状态被修改为false,表示已经启动,并且初始化PropertySource,不过初始化PropertySource内部的代码是空的,什么都没做。 第12行代码是对BeanFactory进行刷新
阅读全文
spring源码分析之配置文件名占位符的解析(一)
摘要:一、直接写个测试例子 二、直接debug运行 在进入代码之前,先了解一下这个ClassPathXmlApplicationContext类的继承关系 1、首先进入 2、继续进入ClassPathXmlApplicationContext的构造器 3、进入setConfigLocation这个方法定义
阅读全文