上一篇,MyEclipse使用Maven搭建Spring Boot项目(一),我们已用maven搭建好了一个web项目。现在我们加入springBoot,实现helloWorld项目,让程序真正运行起来。
一、在pom.xml中引入spring-boot-start-parent。
spring官方的叫stater poms,它可以提供dependency management,也就是依赖管理,引入以后在声明其它dependency的时候就不需要version了。
此处使用的是 .RELEASE版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
</parent>
二、在pom.xml中添加spring-boot-starter-web
依赖项
由于我们正在开发Web应用程序,因此我们添加了spring-boot-starter-web
依赖项。
1.在此之前,我们可以通过运行以下命令来查看当前的内容:
在cmd工程目录下,键入命令:$ mvn dependency:tree
该mvn dependency:tree
命令打印项目依赖项的树表示形式。您可以看到它spring-boot-starter-parent
本身不提供依赖关系。
2.要添加必要的依赖项,将spring-boot-starter-web
在该parent
部分的正下方添加 依赖项:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
三、在pom.xml中添加spring-boot-maven-plugin
如果我们要直接Main启动spring,那么该plugin必须要添加,否则是无法启动的。如果使用maven的spring-boot:run的话就不需要此配置。添加后就能创建可执行jar。为此,请在该dependencies
部分下方插入以下行:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin </artifactId>
</plugin>
</plugins>
</build>
四、编写代码
要完成我们的应用程序,我们需要创建一个Java文件。默认情况下,Maven编译源代码src/main/java
,因此您需要创建该文件夹结构,然后添加一个名为src/main/java/testPackage/Example.java
包含以下代码的文件:
package testPackage;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home(){
return "hello world";
}
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
我们Example类
上的第一个注释是@RestController
。这被称为 构造型注释。它为阅读代码的人提供了提示,而对于Spring来说,该类扮演着特定的角色。在这种情况下,我们的类是一个Web @Controller
,因此Spring在处理传入的Web请求时会考虑它。
该@RequestMapping
注释提供“路由”的信息。它告诉Spring,任何带/
路径的HTTP请求都应该映射到该home
方法。该@RestController
注解告诉Spring使得到的字符串直接返回给调用者。
第二个类级注释是@EnableAutoConfiguration
。这个注释告诉Spring Boot根据你添加的jar依赖关系“猜测”你想要如何配置Spring。自从spring-boot-starter-web
添加了Tomcat和Spring MVC 以来,自动配置假定您正在开发Web应用程序并相应地设置Spring。
我们的应用程序的最后一部分是main
方法。这只是遵循应用程序入口点的Java约定的标准方法。我们的main方法SpringApplication
通过调用委托给Spring Boot的类run
。 SpringApplication
引导我们的应用程序,启动Spring,然后启动自动配置的Tomcat Web服务器。我们需要Example.class
作为参数传递给run
方法,以告诉SpringApplication
哪个是主要的Spring组件。该 args
数组也被传递以公开任何命令行参数。
五、运行示例
1.通过MyEclipse运行
第一种方式:右键Run As -> Java Application。打开浏览器输入地址:http://127.0.0.1:8080/home 就可以看到Hello world了。
第二种方式右键project – Run as – Maven build – 在Goals里输入spring-boot:run ,然后Apply,最后点击Run。
2.通过cmd命令行运行
第一种方式:
$ mvn spring-boot:run
从根项目目录中键入以启动应用程序.可以看到类似下图的启动日志。
启程成功后,打开浏览器输入地址:http://127.0.0.1:8080/home 就可以看到Hello world了。
第二种方式:
$ mvn package
若打出来的事jar包,打包成功后,键入命令:$ java -jar target/maven0716.jar
启程成功后,打开浏览器输入地址:http://127.0.0.1:8080/home 就可以看到Hello world了。
六、pom.xml的完整文件
<?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.dyq</groupId>
<artifactId>maven0716</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
</parent>
<name>maven0716 Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>maven0716</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>