Spring Boot-01-HelloWorld
Spring Boot-01-HelloWorld
一个功能:浏览器发送hello请求,服务器接受请求并处理,响应Hello world字符串
- 创建一个maven工程;(jar)
- 导入spring boot相关的依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!--这个插件可以将应用打包成一个可执行的jar包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 编写一个主程序,启动Spring Boot应用
/*
@SpringBootApplication 来标注一个主程序类,说明这是一个Spring boot应用
*/
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
// spring 应用启动起来
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
- 编写相关的Controller、Service
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World!";
}
}
- 运行主程序测试 hello world 探究
1. POM文件
1. 父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
他的父项目是<parent>…</parent>
他来真正管理Spring Boot应用里面的所有依赖版本;
2. 启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter-web
Spring-boot-starter: spring-boot场景启动器,帮我们导入了web模块正常运行所依赖的组件;
Spring boot将所有的功能场景都抽取出来,坐成一个个的starters(启动器),只需要在项目里引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。
2. 主程序类,主入口类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*
@SpringBootApplication 来标注一个主程序类,说明这是一个Spring boot应用
*/
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
// spring 应用启动起来
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
@SpringBootApplication : Spring Boot应用标注在某个类上说明这个类是Spring Boot的主配置类,Spring Boot就应该运行这个类的main方法来启动Spring Boot应用。
- @SpringBootConfiguration: Spring Boot的配置类;
标注在某个类上,表示这是一个Spring Boot的配置类;
@configuration:配置类上来标注这个注解;
配置类----配置文件;配置文件也是容器中的一个组件;@component
-
@EnableAutoConfiguration:开启自动配置功能;
以前我们需要配置的东西,现在Spring Boot帮我们自动配置;
@AutoConfigurationPackage:自动配置包
@import(AutoConfigurationPackage.Register.class):Spring的底层注解@import,给容器中导入一个组件;导入的组件由AutoConfigurationPackage.Register.class;
将主配置类(@SpringBootApplication标注的类)的所在包及下面所有的子包里面的所有组件扫描到Spring容器;
会给容器中导入非常多的自动配置类(xxxAutoConfiguration)
- 简化部署