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容器。