一、Spring boot 入门
- spring boot 简介
在spring4.0的基础上
简化spring应用开发的一个框架
整个spring技术栈的一个大整合
J2EE开发的一站式解决方案 - 微服务
2014 马丁·福勒 (martin fowler )
微服务: 架构风格(服务微化)
一个应用应该是由一组小型服务,可以通过HTTP的方式进行进行互通
单体应用: ALL IN ONE
微服务: 每一个功能元素最终都是一个可以独立替换和独立升级的软件单元。
3.环境准备
环境
-JDK: 官方推荐1.7以上,java version “1.8.0_66”
-maven: 官网规定maven3.3以上, Apache Maven 3.6.1
-idea: 不做要求,自己顺手就好
-SpringBoot版本: 2.3.0 - Spring Boot Hello World
业务场景:
浏览器发送Hello,服务器接受请求之后并处理,给页面响应Hello World!字符串;
4.1 创建一个maven工程
4.2 导入SpringBoot相关的依赖(jar)
4.3 创建一个主程序类
// springboot的启动程序
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class,args);
}
}
4.3 编写相关的controller
@ResponseBody
@RequestMapping("hello")
public String hello(){
return "Hello World!";
}
}
4.4 运行测试
4.5 将项目打成Jar并且运行
<!-- 插件作用是把应用打成一个可运行的jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- Hello World 探究
5.1 POM 文件
他的父项目 org.springframework.boot spring-boot-dependencies 2.3.0.RELEASE dependencies的作用是用来管理springboot中所有的依赖版本 ````
结论:
以后我们导入依赖的时候,默认不加版本号,(dependencies中没有的还是要去声明版本号)
5.2 启动器
xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
spring-boot-starter-web:
spring-boot-starter : springboot的场景启动器,帮我们导入了web模块正常运行的依赖组件
springboot会把所有的功能场景都提取出来,做成一个个的starters(启动器),只需要在下项目中导入自己想要的starter场景启动器,就会把相关的依赖组建都会导入项目中。
5.3 主程序类、最入口类
````java /** * @Author Administrator * @Date 2020/5/19 10:06 * * @SpringBootApplication 代表当前标注一个主程序类,代表是springboot程序 **/ @SpringBootApplication public class HelloWorldApplication {
// springboot的启动程序
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class,args);
}
}
@SpringBootApplication: 标注在哪一个类上,这个类就是springboot的主程序(配置)类,springboot就是运行这个main去启动springboot应用
@SpringBootConfiguration: springboot的配置类:
标注在哪个类上,那这个类就是springboot的配置类
@Configuration : 标注代表了配置类(配置类上来标注这个注解)
配置类 ---------- 配置文件 : 配置类也是容器中的一个组件@Component
@EnableAutoConfiguration: 开启自动配置功能,
告诉springboot开启自动配置,这时自动那个配置才会生效
java @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration {
@AutoConfigurationPackage : 自动配置包
@Import(AutoConfigurationPackages.Registrar.class)
@Import 是spring底层注解,会给容器导入一个组件,导入的组件由AutoConfigurationPackages.Registrar.class去将我们的主配置类(@SpringBootApplication标注的类)下的所在包及包里所有的组件扫描到spring容器中
@Import(AutoConfigurationPackages.Registrar.class)
给容器导入组件…
AutoConfigurationImportSelector : 到入的哪些组件的选择器
会将所需要导入的组件使用全类名的方式返回,这些组件就会被添加到容器中
会给容器中导入很多的自动配置类(xxxxxAutoConfiguration): 会根据我们所需要的场景去导入所有需要的组件,并且配置好这些组件:
有了自动配置类,就会免去我们手动配置注入功来能等工作。
springboot在启动的时候会从类路径下的META-INF/spring.factories中获取@EnableAutoConfiguration所需要的值,会将这些值作为自动配置类导入容器中。自动配置类生效,帮我们进行自动配置