1、第一个Spring Boot应用
在开始之前,打开终端检查你的Java和maven版本是否合法
$ java -version java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode) |
$ mvn -v Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T13:58:10-07:00) Maven home: /Users/user/tools/apache-maven-3.1.1 Java version: 1.7.0_51, vendor: Oracle Corporation |
1.1 创建pom.xml文件
<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"> <!-- Add typical dependencies for a web application... --> <!-- (you don't need this if you are using a .RELEASE version) --> |
1.2 添加classpath依赖
Spring Boot提供了一系列的"Starters",使得你可以很容易的把一下jar引入到你的classPath下。我们的示例程序已经在pom文件的parent节点中使用了spring-boot-starter-parent。spring-boot-starter-parent是一个特别的Starter,他为我们提供了有用的Maven默认依赖库。他同时也一个dependency-management(依赖管理)部分,以至于你在引用依赖的时候可以忽略版本号。
1.3 编写代码
创建一个maven工程,并在src/main/java目录下创建java类
import org.springframework.boot.*; @RestController @RequestMapping("/") public static void main(String[] args) throws Exception { } |
1.3.1 @RestController和@RequestMapping说明
我们的Example的第一个注解是@RestController。这是一个构造性注解。他暗示阅读代码的人和spring,该类扮演着一个特殊的角色。在本案例中,我们的class是一个web @controller。所以每当处理web请求时,Spring都会访问他。
@RequestMapping注解提供路由信息。他告诉Spring所有带有"/"路径的HTTP请求都应该被映射到这个方法。@RestController告诉Spring直接返回字符串结果集给调用者。
1.3.2 @EnableAutoConfiguration说明
这个注解告诉Spring Boot基于你添加的jar包去猜测你想怎样配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,auto-configuration就会猜想你正在部署web项目并相应地设置Spring。
Starters and Auto-Configuration Auto-configuration设计的初衷的为了更好地运行"Starters",但是两者没有直接的联系。你可以自行加入一些不在Starters的依赖,而Spring Boot会通过auto-configure自动配置到你的项目中。 |
1.3.3 Main方法
main方法只是一个遵循java习俗,为程序提供入口的标准方法。我们通过调用run方法,把main方法委托给Spring Boot的SpringApplication类。SpringApplication会引导我们的程序,依次地启动自动配置的Tomcat web服务器来启动Spring。我们需要把Example.class作为一个参数传入到run方法中,来告诉SpringApplication哪个才是主要的Spring主键。为了显示一切从命令行输入的参数,args数组也必须传入。
1.4 运行Example
因为我们已经在pom.xml中引入了spring-boot-starter-parent,所以有了可用的run目标,我们可以直接在项目的根目录下使用mvn spring-boot:run运行程序。如果你使用的是eclipse,右击项目,在run as的maven build的Goals中执行spring-boot:run。
$ mvn spring-boot:run . ____ _ __ _ _ |
然后打开浏览器,访问 http://localhost:8080/,你可以看到以下输出:
Hello World! |
1.5 生成可执行jar包
为了创建可执行的jar包,我们需要在pom.xml中加入spring-boot-maven-plugin。在dependencies部分的下面加入几行
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> |
保存pom.xml,然后在命令行窗口运行mvn package
$ mvn package [INFO] Scanning for projects... |
运行成功后,在target目录下,可以看到myproject-0.0.1-SNAPSHOT.jar。大概是10M左右大小。如果你想偷看里面的内容,可以使用jar tvf:
使用java -jar命令来运行jar包程序
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ |
start.sh
#!/bin/sh
source ./app.cfg
rm -f tpid
#nohup java -jar $APP_NAME.jar --spring.profiles.active=bank_gray > /dev/null 2>&1 &
nohup /usr/local/jdk/bin/java -Xms512m -Xmx1024m -jar $APP_NAME.jar --spring.profiles.active=bank_gray > /dev/null 2>&1 &
echo $! > tpid
echo Start Success!