码迷,mamicode.com
首页 > 编程语言 > 详细

Spring boot学习笔记

时间:2017-10-16 22:17:07      阅读:183      评论:0      收藏:0      [点我收藏+]

标签: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

Spring boot学习笔记

标签:head   stc   argument   tom   执行方法   文件中   初始化   加载   map   

原文地址:http://www.cnblogs.com/zhangshitong/p/7678575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!