Spring Boot项目搭建
1.Spring Boot概述
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。总所周知,Spring平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理,而Spring Boot的出现就是用来简化操作的。相比传统的Spring,项目搭建更简单、方便、快速。
2.项目搭建
本文采用IDEA搭建Spring Boot,Demo结构图如下:
通过IDEA生成Spring Boot项目很方便,具体步骤不再赘述,可以参考网上其他资料,如上图,主要生成:
-
- src/main/java 程序开发以及主程序入口
- src/main/resources 配置文件
- src/test/java 测试程序
默认pom.xml生成jar包依赖项如下所示:
<?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.snail</groupId> <artifactId>bootdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>bootdemo</name> <description>Demo project for Spring Boot</description> <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>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> </dependencies>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
3.测试用例
Demo并没有配置数据库,只是简单地测试一下Http 请求,并结合现实中的场景,我们的配置文件往往在线下环境、生产环境的配置是不一样的,可以通过配置来获取对应的文件,如下所示。
(1)实体类
其中ConfigurationProperties注解的目的是用来映射配置文件的,会在配置文件yml文件里新建配置项application.yml、application-product.yml(生产环境)、application-test.yml(测试环境),通过前缀CustomerInfo可以获取配置文件里对应的映射。
/** * 客户基本信息 * Create by snailTech * 2017-07-24 16:31 **/ @Component @ConfigurationProperties(prefix = "CustomerInfo") public class CustomerInfo { /** * 姓名 */ private String name; /** * 手机号码 */ private String mobile; /** * 年龄 */ private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
(2)application.yml
spring:
profiles:
active: product
通过这个配置active为product可以得知读取的是application-product.yml文件,其中port是Web容器(默认是Tomcat)的端口号,以及context-path是虚拟路径。
(3)application-product.yml
server:
port: 8080
context-path: /bootdemo
testUrl: http://www.baidu.com
CustomerInfo:
name: snail
mobile: 18818718711(生产环境)
age: 30
(4)application-test.yml
server:
port: 8080
context-path: /bootdemo
testUrl: http://www.baidu.com
CustomerInfo:
name: snail
mobile: 18818718711(测试环境)
age: 30
(5)配置Controller层
@RestController相当于@ResponseBody+@Controller,都是以json格式返回,@Value("${testUrl}")是用来获取配置文件里的testUrl配置项的,@RequestParam用来接收请求参数,其余的写法与SpringMvc的写法并没什么区别
package com.snail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** * Create by snailTech * 2017-07-24 16:10 **/ @RestController @RequestMapping(value = "/test") public class TestController { @Value("${testUrl}") private String testUrl; @Autowired private CustomerInfo customerInfo; //@RequestMapping(value="/hello" ,method = RequestMethod.GET) @GetMapping(value = "/hello") public String hello(@RequestParam("id") Integer xx){ return customerInfo.getMobile()+xx; } }
(6)编译
编译非常简单,内置Tomcat,无需像SSM项目里还需要手动配置Tomcat,只要运行程序就可以了。
(7)运行