- @RestController和@Controller的区别
- @RequestMapping注解
- @EnableAutoConfiguration注解
@RestController:类注解,被称为一个构造型(stereotype)注解,它为阅读代码的人们提供建议。对于Spring,该类扮演了一个特殊角色。当处理进来的web请求时,Spring会询问它。
@RequestMapping:注解提供路由信息。它告诉Spring任何来自客户端的HTTP请求都应该被映射到哪里去。
@EnableAutoConfiguration:类注解,这个注解是告诉SpringBoot根据添加的jar依赖猜测你想如何配置Spring。由于 spring-boot-starter-web 添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。
为了创建可执行的jar,需要将 spring-boot-maven-plugin 添加到我们的pom.xml中。在dependencies节点下插入以下内容:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
注: spring-boot-starter-parent POM包含用于绑定repackage目标的 配置。如果你不使用parent POM,你将
需要自己声明该配置。
保存你的pom.xml,然后从命令行运行 mvn package :
$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO]----------------------------------------------------------------------
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spriing-boot-maven-plugin:1.3.0.BUILD-SNAPSHOT:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ----------------------------------------------------------------------
如果查看target目录,你应该看到 myproject-0.0.1-SNAPSHOT.jar 。该文件应该有10Mb左右的大小。如果想偷看内部结构,你
可以运行 jar tvf :
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
在target目录下,你应该也能看到一个很小的名为 myproject-0.0.1-SNAPSHOT.jar.original 的文件。这是在Spring Boot重新打包前Maven创建的原始jar文件。
为了运行该应用程序,你可以使用 java -jar 命令:
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar