版本发布日志: https://github.com/spring-projects/spring-boot/wiki#release-notes
优点:
缺点:
分布式解决
原生应用如何上云。Cloud Native
上云的困难:
SpringBoot 2.7.3
Maven 3.5+
Java 1.8+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.7.3version>
<relativePath/>
parent>
<groupId>com.xzgroupId>
<artifactId>springboot-review-recordsartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>springboot-review-recordsname>
<description>springboot-review-recordsdescription>
<properties>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
主程序启动类:
@SpringBootApplication
public class SpringbootReviewRecordsApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootReviewRecordsApplication.class, args);
}
}
@RestController
public class HelloController {
@RequestMapping("/hello")
public String handle01(){
return "Hello World!你好!";
}
}
@RestController = @Controller + @ResponseBody
表示不跳转页面,只返回请求数据。
@RequestMapping
和 @GetMapping @PostMapping
区别:
@GetMapping
是一个组合注解,是 @RequestMapping(method = RequestMethod.GET)
的缩写。@PostMapping
是一个组合注解,是 @RequestMapping(method = RequestMethod.POST)
的缩写。访问 http://localhost:8080/hello
即可, 正常的话可以看到 "Hello World!你好!"
resources 中创建 application.yml
文件,添加 server.port: 8888
,
然后访问 http://localhost:8888/hello
即可。
之前已经在 pom.xml 文件中加入了。
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
使用 maven 打包,然后就可以看到本地 target 目录中出现了一个 springboot-review-records-0.0.1-SNAPSHOT.jar
包。
用 java -jar springboot-review-records-0.0.1-SNAPSHOT.jar
命令可以直接启动应用。
然后通过访问 http://localhost:8888/hello
即可访问。
pom.xml 中引入的 Jar 包若不指定版本,则默认选择 parent pom 的版本,若指定版本只需添加 xml 以下
<properties>
<java.version>1.8java.version>
<mysql.version>5.1.47mysql.version>
properties>
spring-boot-starter-*
依赖,就可以引入完整的开发场景。*-spring-boot-starter
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
自动配置好 Tomcat
自动配好 SpringMVC
@SpringBootApplication
public class SpringbootReviewRecordsApplication {
public static void main(String[] args) {
// 1. 返回我们 IOC 容器
ConfigurableApplicationContext run = SpringApplication.run(SpringbootReviewRecordsApplication.class, args);
// 2. 查看容器里面的组件
String[] names = run.getBeanDefinitionNames();
for (String name : names) {
System.out.println(name);
}
}
}
自动配好 Web 常见场景,比如
默认的包结构
SpringbootReviewRecordsApplication
所在的包及其下面的所有子包里面的组件都会被默认扫描进来@SpringBootApplication(scanBasePackages = "com.xz")
设置包扫描目录@ComponentScan
也可以设置为包扫描目录,注意不能和 @SpringBootApplication
一起使用,因为 @SpringBootApplication
里面已经引入了 @ComponentScan
,不能重复引入。//@SpringBootApplication(scanBasePackages = "com.xz")
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.xz")
public class SpringbootReviewRecordsApplication {
public static void main(String[] args) {
// 1. 返回我们 IOC 容器
ConfigurableApplicationContext run = SpringApplication.run(SpringbootReviewRecordsApplication.class, args);
// 2. 查看容器里面的组件
String[] names = run.getBeanDefinitionNames();
for (String name : names) {
System.out.println(name);
}
}
}
各种配置拥有默认值
按需加载所有自动配置项