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...
阅读全文
request获取容器过程
摘要:获取容器过程 CoyoteAdapter.postParseRequest(org.apache.coyote.Request req, Request request, org.apache.coyote.Response res, Response response) connector.getService().getMapper().map(serverNa...
阅读全文
容器的注册
摘要:MapperListener.startInternal public void startInternal() throws LifecycleException { setState(LifecycleState.STARTING); Engine engine = service.getContainer(); if (engine =...
阅读全文
context创建过程解析(三)之deployDirectories
摘要:HostConfig.deployApps() //在监听到start事件类型,也就是StandardHost调用startInternal protected void deployApps() { File appBase = host.getAppBaseFile(); //这个值是在触发before_start时间时生成的,默认是tomcat安装目录+engine名+h...
阅读全文
context创建过程解析(二)之deployWARs
摘要:HostConfig.deployApps() //在监听到start事件类型,也就是StandardHost调用startInternal protected void deployApps() { File appBase = host.getAppBaseFile(); //这个值是在触发before_start时间时生成的,默认是tomcat安装目录+engine名+h...
阅读全文
context创建过程解析(一)之deployDescriptors
摘要:总结:主要是创建Context对象,并且将默认context配置,host级别配置,context配置的值设置进去,设置docBase,如果是war包就解压到webapp的目录中,重新设置docBase为war包解压后的目录。如果配置文件中没有指定docBase,那么就以webapps为基路径+context的baseName作为docBase HostConfig.deployApps() ...
阅读全文