Open zxy16305 opened 6 years ago
这破玩意儿这么复杂的吗 :smiling_imp: 一开始是以xml为入口看的,之后就是以web为入口看的(想看controller的实例化过程),所以笔记有点混乱 :joy_cat:
以上所述方法都是接口中的方法 :joy:
+Environment :代表了当前程序运行的环境。同时创建代表环境的两个重要的概念,profiles和properties。profiles也就是一些bean(从xml或者注解而来)。
getBeanNamesForType 的具体实现方式(先看作一个整体,方便阅读源码逻辑)
RootBeanDefinition 这个类在bean创建的时候被用到
spring同一般的tomcat的servlet程序,只在web.xml处多配了 ContextLoaderListener和RequestDispatcherServlet两个类,就完成了servlet的拓展。看过了ComtextLoaderListener后(一知半解),再来看看ResquestDispatcherServlet。
在web.xml把他配成了一个servlet,并映射到 “/”路径上(一般情况下),这样任何请求都会到这个servlet里面。 观察其重写方法( init() , service(req,resp) , destroy() )的位置,
这个流程把主要的方法(有注释的方法 :joy:)列出来了,第二步看上去很奇怪是因为,HttpServlet里没有定义Patch的method。
Cron表达式由6或7个空格分割的时间字段组成,各个字段的含义:
字段位置 | 位置含义 | 允许值 | 允许的特殊字符 |
---|---|---|---|
1 | 秒 | 0-59 | , - * / |
2 | 分钟 | 0-59 | , - * / |
3 | 小时 | 0-23 | , - * / |
4 | 日期 | 1-31 | , - * ? / L W C |
5 | 月份 | 1-12 | , - * / |
6 | 星期 | 1-7 | , - * ? / L C # |
7 | 年(可选) | 空值;1970-2099 | , - * / |
特殊字符含义:
要配合springboot用的话
@Configuration
@EnableAsync
@EnableScheduling
public class AnsyConfig {
@Scheduled(cron = "0/15 * * * * *")
public void method1(){ System.out.println(1000); }
}
占楼
占楼
占楼
占楼
占楼
占楼
占楼
①--bean的搜索流程 #1
ClassPathXmlApplicationContext 、WebApplicationContext
refresh() : 加载或者刷新配置的持久层表示
准备context
获取bean factory(DefaultListableBeanFactory)
准备这个context要使用的bean factory
允许bean factory的后期处理(然而这一步什么也没做)
在上下文中调用注册为bean的factory processors(2018/1/22)
注册能拦截bean创建的bean处理器(InstantiationAwareBeanPostProcessor、DestructionAwareBeanPostProcessor)
初始化context消息源
初始化context事件广播
初始化子类指定context的特殊bean
检查监听bean并初始化
实例化剩下(非懒加载)的所有单实例
发布相应的事件
小记
所有bean扫描储存在DefaultListableBeanFactory.beanDefinitionNames
疑问