Spring boot学习笔记

Posted 南开小巷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring boot学习笔记相关的知识,希望对你有一定的参考价值。

一.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;

[email protected]  :表示当前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学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot 学习笔记 - 整合MyBatis

Spring boot2尚硅谷学习视频笔记

spring boot学习笔记

Spring Boot 学习笔记

Spring boot 学习笔记

Spring Boot 学习笔记--整合Thymeleaf