一、Spring Boot简介
1、spring boot简介
- 简化spring应用开发的一个框架。
- 整个spring技术栈的一个大整合。
- J2EE开发的一站式解决方案。
2、微服务的定义
微服务是一种架构风格,
一个应用应该是一组小型服务;可以通过http的方式进行互通。
每一个功能元素最终都是一个可独立替换和独立升级的软件单元。
微服务示意图:
3、创建spring boot项目的环境约束
二、Spring Boot HelloWord
1、创建一个Maven工程;(jar)
2、导入依赖springboot 相关依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3、编写一个主程序;启动Spring Boot的应用
//@SpringBootApplication来标注一个主程序,说明这是一个springboot应用
@SpringBootApplication
public class Application {
public static void main(String[] args) {
//Spring应用启动
SpringApplication.run(Application.class, args);
}
}
4、编写业务代码
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
5、运行测试
运行我们的主程序直接启动就行了,里面内置了tomact服务器。
6、简化部署
首先需要在我们pom文件中引入maven的打包插件
<!--这个插件,可以将应用打包成宇哥可执行的jar包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后在ide中 mvn package 进行打包
通过java -jar 打包好的jar 直接就可以运行了。
三、HelloWord探究
1、POM文件
(1)、父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
他的父项目,里面有很多jar包,springboot的所有依赖都在这个里面
以后我们导入依赖是不需要写版本号的
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
(2)、导入的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter-web
spring-boot-starter:场景启动器,帮我们导入了web模块正常运行锁依赖的组件
spring boot里面有很多的启动器,他将所有的功能场景都抽取了出来,做成个一个个的starter启动器,只需要在项目里面引入这些starter相关场景的的所有依赖都会导入进来。要用什么功能就导入我们场景的启动器。
2、主程序类,主入口
@SpringBootApplication:这个注解标注在那个类上,说明这个类是spring boot的主配置类
进入这个注解里面看下代码:
/** *@SpringBootConfiguration:Spring boot的配置类,点进去就是我们的spring中的@Configuration *配置类也是spring的一个组件 * * @EnableAutoConfiguration:开启自动配置功能 */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {
@SpringBootConfiguration:Spring boot的配置类,点进去就是我们的spring中的@Configuration,配置类也是spring的一个组件。
@EnableAutoConfiguration:开启自动配置功能。
打开这个自动配置的注解可以看到如下代码:
@AutoConfigurationPackage @Import(EnableAutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration {
@AutoConfigurationPackage:自动配置包
将朱配置类的所在包及下面所在子包里面的所有组件扫描到spring容器中。
@Import(EnableAutoConfigurationImportSelector.class):
会给容器中导入非常多自动配置类,就是给容器中导入这个场景需要的所有组件,并配置好这些组件,如我们需要做aop功能,就自动去配置进去,如图所示各种配置类:
有了自动配置类,免去了我们手动编写配置注入功能组件等工作。
四、快速创建spring boot web项目
第一步:
第二步:
五、Spring Boot 热部署
1、第一步增加热部署的依赖jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
第二步修改程序后,按住control+F9就能生效了。