上一篇博客我们介绍了SpringBoot的概念,这里我们通过快速搭建一个SpringBoot应用来体验SpringBoot的特色。
1.创建工程
首先我们打开MyEclipse,创建一个Maven工程:
然后选择创建模式,这里我们选择不需要骨架:
最后填写项目相关参数:
项目创建之后工程目录如下:
pom.xml文件中有一些错误,我们先去配置它,在POM文件中添加SpringBoot的依赖,配置如下:
[html] view plain copy
- <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>cn.com.springboot.web</groupId>
- <artifactId>spring-boot-test</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.4.RELEASE</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <java.version>1.8</java.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- </project>
我们将jre环境换为1.8(因为SpringBoot中很多依赖是需要jdk1.8版本支持的):
然后我们保存pom.xml文件,当编译器加载更新完毕后,我们会在工程中看到maven依赖被成功加载进来:
此时我们打开“Maven Dependencies”依赖的详情,可以看到如下依赖被引入:
我们可以发现web常用的依赖都被引入进来了,就如前面概述中所说的,SpringBoot的核心依赖中包含了许多开发常用的jar包依赖。
我们要解释的jar依赖有两个:
(1)spring-boot-starter-parent
该依赖为Spring Boot的父级依赖,它用来提供相关的Maven默认依赖,引入该依赖之后,常用的包依赖可以省去version标签。
想查看Spring Boot提供了哪些jar包的依赖,可以去本地的maven仓库的以下路径:
xxx\repository\org\springframework\boot\spring-boot-dependencies\1.5.4.RELEASE\spring-boot-dependencies-1.5.1.RELEASE.pom
的pom文件中查看。若SpringBoot提供的依赖版本有些东西不是开发中需要的,可以选择去声明其他版本依赖覆盖本依赖。
(2)spring-boot-starter-web
此依赖为Spring Boot的”开箱即用“依赖模块之一,“开箱即用”的依赖基本都是以spring-boot-starter-xx作为命名的。关于开箱即用,
它会自动封装所需功能的依赖,不需要做很多的配置和引入各种需要的依赖,也不会出现依赖版本不匹配的问题。
然后我们创建用户请求响应Controller层,用来响应一个RESTful风格的请求:
代码如下:
[java] view plain copy
- package cn.springboot.test.controller;
- import java.util.HashMap;
- import java.util.Map;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- @RestController
- //该注解等价于@[email protected]的结合,使用这个注解的类里面的方法都以json格式输出。
- public class HelloController {
- private static Map<Integer,String> userMap = new HashMap<Integer,String>();
- private void initUserMap(){
- userMap.put(1, "张三");userMap.put(2, "李四");
- userMap.put(3, "王五");userMap.put(4, "赵二");
- }
- @RequestMapping("/hello/{id}")
- public String findById(@PathVariable Integer id) {
- initUserMap();
- return "你好,用户:" + userMap.get(id);
- }
- }
SpringBoot启动有三种方式:
1. main方法启动
2. 使用maven命令 mvn spring-boot:run 在命令行启动该应用
3. Java -jar 命令启动,需要先运行“mvn package”进行打包
我们这里选项第一种方式。创建SpringBoot的一个核心启动类:
代码如下:
[java] view plain copy
- package cn.springboot.test;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- @SpringBootApplication
- //Sprnig Boot项目的核心注解,主要目的是开启自动配置
- public class SpringbootTestSimpleApplication {
- //该main方法作为项目启动的入口
- public static void main(String[] args) {
- SpringApplication.run(SpringbootTestSimpleApplication.class, args);
- }
- }
我们运行SpringbootTestSimpleApplication,待控制台加载:
加载完毕后,我们在浏览器访问刚刚写的hello服务,访问id为1和2的用户信息。
当路径为"http://localhost:8080/hello/1"时,浏览器结果为:
当路径为"http://localhost:8080/hello/2"时,浏览器结果为:
就这样我们实现了一个简单的SpringBoot服务,看起来十分的简介和快速,这就是SpringBoot的强大之处。