一,Spring Boot 入门
1.Spring Boot 简介
简化Spring应用级开发的一个框架,整个Spring技术栈的一个大整合
J2EE开发的一站式解决方案。
2.微服务
微服务:其实一种架构风格
一个应用应该是一组小型服务,个服务之间可以通过HTTP的方式进 行互通,每一个服务元素最终都是一个可独立替换和独立升级的软件 单元
3.SpringBoot Hello Word
1.创建一个maven工程
2.导入springboot相关依赖
<parent>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
</dependencies>
3.编写一个主程序:启动spring boot 应用
/** * @author lzq
* @date 2019/11/21 - 21:30
* * SpringBootApplication 来标注一个主程序类,说明这是一个springboot应用 */
@SpringBootApplication
public class HelloWorld {
public static void main(String[] args) {
//spring应用启动起来
SpringApplication.run(HelloWorld.class ,args);
}}
4.编写相关的Controller Service
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World";
}
}
5.运行主程序测试
6.简化部署
<!--这个插件,可以将应用打包成一个可执行的jar包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
将这个应用达成jar包,直接使用Java -jar命令执行 ,在没有Tomcat情况 下也可以运行,因为jar包自带运行环境
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wYXWAbue-1589979140910)(E:\文档\图片\spring boot\springboot.PNG)]
4.Hello Word 探究
1.对POM文件探究
1.父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
它的父项目是
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
它是真正管理spring boot应用里面的所有依赖版本
它是Spring Boot的版本仲裁中心
以后我们导入依赖默认是不需要写版本的(没有在dependencies里面的管理的依赖自然要写版本)
2.导入的依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
spring-boot-starter-web
spring-boot-starter : spring-boot场景启动器:帮我们导入了web模块正常运行所依赖的组件
Spring Boot将所有的功能场景都会抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所用依赖都会导进来,需要什么功能就导入什么场景的启动器
2.主程序类,主入口
@SpringBootApplication
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z8PFwOa2-1589979140913)(E:\文档\图片\spring boot\SpringBootApplication.png)]
@SpringBootApplication
Spring Boot应用把它标注在某个类上面说明这些类是SpringBoot的主配置类,springboot就应该运行这类的main方法来启动SpringBoot应用
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
@SpringBootConfiguration SpringBoot的配置类:
标注在某类上,表明这是一个SpringBoot的配置类
配置类上用@Configuration来标注这个注解
配置类就是配置文件:配置类也是一个容器的组件;@Component
@EnableAutoConfiguration 开启自动配置功能
以前需要配置的东西,Spring Boot帮我们自动配置
@EnableAutoConfiguration告诉SpringBoot开启自动配置,这样自动配置才能生效
@AutoConfigurationPackage
@Import(EnableAutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
@AutoConfigurationPackage :自动配置包
@Import(AutoConfigurationPackages.Registrar.class)在AutoConfigurationPackage注解上标注
Spring的底层注解@import,给容器导入一个组件,导入的组件AutoConfigurationPackages.Registrar.class将主配置 @SpringBootApplication标注的类)的所在包及其下面所有子包里面的所有组件扫描到spring容器
@Import(EnableAutoConfigurationImportSelector.class)
给容器中导入EnableAutoConfigurationImportSelector(一些的组件选择器)将所有需要的组件一全类名的 方式返回,这些组件就会被添加到容器内
最终会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有 配件,并配置好这些组件。
有了自动配置类我们就免去了手动编写配置注入功能等工作
5.使用Spring Initializer快捷创建SpringBoot项目
主程序已经帮我们生成了,我们只需按照逻辑开发项目
resources文件夹中目录结构
static:保存所有的静态资源:js css images
templates:保存所有的模板页面(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持jsp 页面);可以使用模板引擎(freemarker,thymeleaf)
application.properties:SpringBoot应用的配置文件;可以修改一些默认设置