环境:
- jdk:1.8.0_73
- maven:3.3.9
- spring-boot:1.2.5.RELEASE
注意:关于spring-boot的支持,
- 最少使用jdk7(jdk6也可以,可能需要额外配置,官方推荐jdk8)
- maven至少使用3.2
一、手工构建mvn项目
创建的目录结构:
二、引入依赖:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.wn</groupId> 8 <artifactId>weibo2</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <!-- 引入spring-boot-starter-parent做parent是最好的方式,其最大作用是可以省去声明依赖时的版本号 但是有时我们可能要引入我们自己的parent,此时解决方式有两种: 12 1)我们自己的parent的pom.xml的parent设为spring-boot-starter-parent(没有做过验证,但是感觉可行) 2)使用springboot文档中的方式:见spring-boot-1.2.5-reference.pdf的第13页 --> 13 <parent> 14 <groupId>org.springframework.boot</groupId> 15 <artifactId>spring-boot-starter-parent</artifactId> 16 <version>1.2.5.RELEASE</version> 17 </parent> 18 <!-- 引入实际依赖 --> 19 <dependencies> 20 <dependency> 21 <!-- 不需要任何web的相关配置,就支持web服务 --> 22 <groupId>org.springframework.boot</groupId> 23 <artifactId>spring-boot-starter-web</artifactId> 24 </dependency> 25 </dependencies> 26 27 <build> 28 <plugins> 29 <!--运行springboot的插件,可用于将项目打成可直接运行的jar,包括把应用程序的所有依赖打入jar内(该jar就是用于生产环境中的jar) 30 其中的内容,可以用java -jar来运行,值得注意的是,如果没有引用spring-boot-starter-parent做parent, 且采用了上述的第二种方式, 31 这里也要做出相应的改动 --> 32 <plugin> 33 <groupId>org.springframework.boot</groupId> 34 <artifactId>spring-boot-maven-plugin</artifactId> 35 </plugin> 36 </plugins> 37 </build> 38 </project>
说明:实际上,spring-boot-starter-web.jar这个jar引入5个方面的jar:
- spring-boot的启动jar:spring-boot-starter.jar
- tomcat相关jar(spring-boot-starter-tomcat)
- jackson
- hiberbate-validator
- spring相关jar(spring-core和spring-web)
- 如果想要取证,可以通过maven depenency:tree对比加入spring-boot-starter-web前后的依赖树
注:在使用终端命令mvn clean install前,在目录src/main/java中必须有一个XxxApplication.java文件,否则编译失败。
这里引入官方的例子:WeiboApplication.java如下:
1 package com.weibo2; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.RestController; 7 8 /* 9 * @RestController是spring mvc的注解,相当于@Controller和@ResponseBody的合体,可以直接返回json 10 * @EnableAutoConfiguration是springboot的注解,无配置启动的关键 11 */ 12 @RestController 13 @EnableAutoConfiguration 14 public class WeiboApplication { 15 @RequestMapping("/sayHi") 16 public String sayHi() { 17 return "Hi"; 18 } 19 /* 20 * spring boot的入口,在整个项目中,包括其子项目在内,只能有一个main方法,否则spring boot启动不起来 21 */ 22 public static void main(String[] args) { 23 SpringApplication.run(WeiboApplication.class, args); 24 } 25 }
引入eclipse后的项目结构:
三、运行程序
1、通过终端命令:mvn spring-boot:run
2、在主类(含有main方法的类)上"run as-->java application"
3、配置mvn运行路径
项目启动后,在浏览器中输入:http://localhost:8080/sayHi,会打印出Hi,成功。