深入理解Spring Cloud与微服务构建(第2版)
上QQ阅读APP看书,第一时间看更新

4.2.2 在Spring Boot工程中构建Web程序

打开用IDEA创建的项目,其依赖管理文件pom.xml有spring-boot-starter-web和spring-boot-starter-test的起步依赖,Spring Boot版本为2.1.0。其中,spring-boot-starter-web为Web功能的起步依赖,它会自动导入与Web相关的依赖。spring-boot-starter-test为Spring Boot测试功能的起步依赖,它会导入与Spring Boot测试相关的依赖。代码如下:

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.1.0.RELEASE</version>
   <relativePath/>
</parent>
<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>
    </dependency>
</dependencies>

在工程的代码包的主目录下有一个SpringbootFirstApplication的类,该类是程序的启动类,代码如下:

@SpringBootApplication
public class SpringbootFirstApplication {
     public static void main(String[] args) {
          SpringApplication.run(SpringbootFirstApplication.class, args);
     }
}

其中,@ SpringBootApplication注解包含了@SpringBootConfiguration、@EnableAuto- Configuration和@ComponentScan,开启了包扫描、配置和自动配置的功能。

这是一个完整的、具有Web功能的工程,为了演示Web效果,创建一个Web层的Controller,代码如下:

@RestController
public class HelloController {
   @RequestMapping("/hello")
   public String index() {
      return "Greetings from Spring Boot!";
   }
}

其中,@RestController注解表明这个类是一个RestController。@RestController是Spring 4.0版本的一个注解,它的功能相当于@Controller注解和@ResponseBody注解之和。@RequestMapping注解是配置请求地址的Url映射的。

启动SpringbootFirstApplication的main方法,Spring Boot程序启动。在控制台会打印启动的日志,程序的默认端口为8080。

打开浏览器,在浏览器上输入“http://localhost:8080/hello”,浏览器会显示“Greetings from Spring Boot!”

你会不会觉得Spring Boot的确很神奇?Spring Boot的神奇之处在于,在程序中没有做web.xml的配置,也没有做Spring MVC的配置,甚至都不用部署在Tomcat上,就可以构建一个具备Web功能的工程。其实,Spring Boot自动为你做了这些配置,并且它默认内嵌了Tomcat容器。