Spring Boot之“Hello World”
小弟刚接触spring boot不久,仅想通过写网志的形式来加深记忆和方便以后查阅。如内容有不正确之处,还望各位大佬海量汪涵,并给小弟指出,共同进步。
讲到第一个应用程序,首先想到的肯定是“Hello World”。那么就使用Spring Boot开发一个简单的“Hello World”Web应用程序,以突显出一些Spring Boot的主要功能。
1.1创建pom
首先我们需要先创建一个Maven的pom.xml文件,pom.xml用于构建项目所需jar。
<?xml version =“1.0”encoding =“UTF-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 http://maven.apache.org/xsd/maven-4.0.0.xsd“ >
<modelVersion> 4.0.0 </modelVersion>
<groupId> com.demo </groupId>
<artifactId> myproject </artifactId>
<version> 0.0.1-SNAPSHOT </version>
<parent>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-parent</artifactId>
<version> 2.0.0.BUILD-SNAPSHOT </version>
</parent>
<repositories>
<!--指定id为spring-snapshots的jar正式版本下载地址 -->
<repository>
<id> spring-snapshots </id>
<url> http://repo.spring.io/snapshot </url>
<snapshots><enabled >true</enabled></snapshots>
</repository>
<!--为产生最终版本,会经过n个milestones来实现 -->
<repository>
<!--除非知道在做什么,否则不要使用milestones -->
<id> spring-milestones </id>
<url> http://repo.spring.io/milestone </url>
</repository>
</repositories>
<!--指定插件下载的地址 -->
<pluginRepositories>
<pluginRepository>
<id> spring-snapshots </id>
<url> http://repo.spring.io/snapshot </url>
</pluginRepository>
<pluginRepository>
<id> spring-milestones </id>
<url> http://repo.spring.io/milestone </url>
</pluginRepository>
</pluginRepositories>
</project>
1.2添加依赖关系
Spring Boot提供了一些“starters”,可以方便地将jar添加到类路径中。
继承spring-boot-starter-parent后,提供了有用的Maven默认值。它还提供了一个 dependency-management 部分,以便可以省略version,统一管理版本号。
<dependencies>
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-web </artifactId>
</dependency>
</dependencies>
注:spring-boot-starter-web内嵌了一个Tomcat服务器。
1.3编写Hello World
@RestController
@EnableAutoConfiguration
public class Demo {
@RequestMapping("/")
String hello() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Demo.class, args);
}
}
1.4 @RestController与@Controller
@RestController注解相当于@ResponseBody +@Controller合在一起的作用。
注:只使用@Controller,如需要返回JSON内容到页面,则需要在对应的方法上加上@ResponseBody注解。
1.5 @RequestMapping
@RequestMapping提供路由信息,告诉Spring任何路径“/”的Http请求都映射到hello()方法。
1.6 @EnableAutoConfiguration
该注解的字面意思是开启自动配置,则是在告诉Spring Boot根据添加的jar依赖关系来配置Spring。
1.7 Spring Boot的入口
Spring Boot的入口在main方法中,SpringApplication通过调用委托给Spring Boot的run()方法,从引导应用程序启动Spring,然后启动自动配置的Tomcat web服务器。将Demo.class作为参数传给run方法来判断SpringApplication是哪个的组件。
1.8 创建可执行jar
Java不提供任何标准的方式来加载嵌套的jar文件(即jar包含在jar中的jar文件)。
要用使用Spring Boot创建可执行的jar,我们需要添加spring-boot-maven-plugin到我们的 pom.xml:
<build>
<plugins>
<plugin>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-maven-plugin </artifactId>
</plugin>
</plugins>
</build>
1.9 启动项目
访问localhost:8080,会得到Hello World。