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)运行

Spring Boot项目搭建的更多相关文章

  1. Spring boot项目搭建及简单实例

    Spring boot项目搭建 Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for ...

  2. [读书笔记] 一、Spring boot项目搭建与配置文件

    读书笔记:[JavaEE开发的颠覆者 Spring Boot实战] 作者:汪云飞 从今天开始坚持读书,并记录下此读书笔记. 一,初接触 Spring boot 项目Hello world搭建 1.po ...

  3. spring boot 项目搭建时,各个依赖的作用

    项目搭建页面 https://start.spring.io/ 各个依赖的作用 List of dependencies for Spring Boot 2.1.5.RELEASE Core DevT ...

  4. spring boot项目搭建中遇到的问题

    自己动手搭建一下spring boot的项目,中途遇到了几个问题,在这里记录一下! 一.关于数据库中的表设计的问题 1.设计表的时候一定要添加的两个字段created updated 创建时间与更新时 ...

  5. [七月挑选]使用idea创建spring boot 项目

    title: 使用idea创建spring boot 项目 参考lindaZ的IntelliJ IDEA 创建spring boot 的Hello World 项目 1.Open IDEA,choos ...

  6. spring boot 项目连接数据库查询数据过程

    spring boot 项目搭建 pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec ...

  7. Spring boot入门(一):快速搭建Spring boot项目

    (一)Spring boot介绍 本部分摘自:https://www.zhihu.com/question/64671972/answer/223383505 Spring Boot是由Pivotal ...

  8. VS Code打开使用IDEA搭建的Spring Boot项目运行提示"snakeyaml was not found on the classpath"错误

    今天用VS Code打开之前基于IDEA搭建并开发的Spring Boot项目,启动调试后出现如下错误: 17:43:05.214 [restartedMain] ERROR org.springfr ...

  9. Spring Boot系列学习文章(一) -- Intellij IDEA 搭建Spring Boot项目

    前言: 最近做的一个项目是用Spring Boot来做的,所以把工作中遇到的一些知识点.问题点整理一下,做成一系列学习文章,供后续学习Spring Boot的同仁们参考,我也是第一次接触Spring ...

随机推荐

  1. 无法打开登录所请求的数据库 "****"。登录失败

    错误:无法打开登录所请求的数据库 "****".登录失败.用户 '****' 登录失败. sql2005连接时出现的错误 解决方法:权限不够,给登录名授权,赋予管理员角色,在登录名 ...

  2. [leetcode]283. Move Zeroes移零

    Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...

  3. PAT 1072 开学寄语(20)(代码+思路)

    1072 开学寄语(20 分) 下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面.理发.整衣, ...

  4. 品味性能之道<五>:SQL分析工具

    一.SQL语句到底是怎么执行的? 想了解SQL语句到底是怎么执行的,那就需要进行SQL语句执行计划分析. 那什么是SQL语句执行计划呢? 就是Oracle服务器执行SQL语句的过程.例如确定是否使用索 ...

  5. 电商类Web原型制作分享-IKEA

    IKEA是一个家居整合大型零售商,属于电商类官网.电商以展示商品.售后服务.购物流程为主.根据网站的图文方式排版,主导航栏使用的标签组,区域导航栏使用的是垂直选项卡,实现下拉弹出面板交互的功能. 本原 ...

  6. asp.net请求编译流程图(其实就是说asp.netd代码是如何转成中间代码IL然后交给cpu执行的)

  7. const与预处理宏#define的区别

    在c语言程序设计时,预处理器可以不受限制地建立宏并用它来替代值.因为预处理器只做一些文本替换,宏没有类型检测概念,也没有类型检测功能.所以预处理器的值替换会出现一些小的问题,出现的这些问题,在c++中 ...

  8. Django介绍(1)

    https://www.cnblogs.com/yuanchenqi/articles/6083427.html 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构, ...

  9. 【转】Paxos算法1-算法形成理论

    ——转自:{老码农的专栏} Paxos算法的难理解与算法的知名度一样令人敬仰,从我个人的经历而言,难理解的原因并不是该算法高深到大家智商不够,而在于Lamport在表达该算法时过于晦涩且缺乏一个完整的 ...

  10. Nginx中间件使用心得(二)

    一.基础知识补充 1. 历史由来补充: Nginx是俄罗斯第二大网站的开源项目. 淘宝团队发行了 tengine 增加了很多第三方的包. 2.下载相关的主键 (1)nginx下载地址          ...