标签:head stc argument tom 执行方法 文件中 初始化 加载 map
一.Spring Boot的启动分析:
1)直接调用静态的run方法(实质上内部是直接转换成2)方法)
ConfigurableApplicationContext context = SpringApplication.run(App.class,args);
2)实例化SpringApplication对象,然后调用run方法
SpringApplication app =new SpringApplication(App.class);
ConfigurableApplicationContext context =app.run(args);
二:
spring boot 的运行流程:
1.判断是否是webEnvironment
2.加载所有classpath下面的META-INF/spring.factories ApplicationContextInitializer
3.加载所有classpath下面的META-INF/spring.factories ApplicationContextListener
4.推断main方法所在的类
5.执行run方法
6.设置了一个系统变量:java.awt.headless
7.加载所有classpath下面的META-INF/spring.factories SpringApplicationRunListener
8.执行所有SpringApplicationRunListener的started方法
9.实例化了ApplicationArguments对象
10.创建environment
11.配置environment,主要是把run方法的参数配置进environment中
12.执行所有SpringApplicationRunListener的environmentPrepared方法,执行方法其实就是发送了一个事件
13.如果不是web环境,但是是webEnvironment,则把这个web的environment转换成标准的environment
14.打印banner
15.初始化applicationContext,如果是web环境,则实例化AnnotationConfigEmbeddedWebApplicationContext,否则实例化AnnotationConfigApplicationContext
16.如果beanNameGenerator不为空,则把beanNameGenerator对象注入到context里面去
17.回调所有的ApplicationContextInitializer 初始化方法
18.执行所有SpringApplicationRunListener的contextPrepared方法,执行方法其实就是发送了一个事件
19.依次向spring容器中注入ApplicationArguments对象和Banner对象
20.加载所有的源到context中去
21.执行所有SpringApplicationRunListener的contextLoaded方法,执行方法其实就是发送了一个事件
22.执行context的refresh方法,并调用context的registerShutdownHook方法
23.回调获取容器中所有的ApplicationRunner,CommandLineRunner接口,然后排序,依次调用
24.执行所有SpringApplicationRunListener的finished方法,执行方法其实就是发送了一个事件
三 spring boot web学习
1.静态获取变量
@ResponseBody
@PostMapping("/user/create")
public String create(@RequestParam(value="username",defaultValue="admin") String username, @RequestParam(value="password",required=false) String password) {
return "username is :" + username +"password is : " + password;
}
2.动态获取变量:
@ResponseBody
@GetMapping("/user/{id}")
public String createDynamic(@PathVariable("id") String id)
return "id is + " id;
3.@RestController :表示当前controller方法中的返回值可以直接用于body的输出
在1,2 中所有的返回方法上面都加了一个@ResponseBody,如果在controller类上把@Controller换成 @RestController ,那么所有的方法就不用加@ResponseBody了
4.spring boot中使用jsp
pom.xml文件中 需要另外加入依赖 tomcat-embed-jasper;
然后在application.properties文件中加入两个配置项:
spring.mvc.view.prefix=/WEB-INF/jsp/ //这个文件夹名自己定义
spring.mvc.view.suffix=.jsp
注意:当前端页面使用jsp文件时,不能用@RestController,方法上也不能加@ResponseBody
标签:head stc argument tom 执行方法 文件中 初始化 加载 map
原文地址:http://www.cnblogs.com/zhangshitong/p/7678575.html