一、介绍

它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。

Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。

二、部署一个简单的Spring Boot项目实例

File-->new project:

只勾选web:

然后finish

创建项目完成:目录结构

pom相关的依赖:

<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description> <properties>
<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>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

三、测试

1、简单例子(注意:@RestController相当于@Controller和@ResponseBody组合)

2、从application.yml文件获取值:

结果:

3、但是这样配置,当一个类属性过多时,就会显得异常繁琐,所以我们可以使用如下方式:

创建bean

package com.example.demo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; /**
* @Author:
* @Date: 2019/5/9
*
*/
@Component
@ConfigurationProperties(prefix = "boy")
public class Boy {
private String name;
private String age;
private String price; public String getName() {
return name;
} public Boy setName(String name) {
this.name = name;
return this;
} public String getAge() {
return age;
} public Boy setAge(String age) {
this.age = age;
return this;
} public String getPrice() {
return price;
} public Boy setPrice(String price) {
this.price = price;
return this;
}
}

在applcation.yml添加信息

@RestController
public class HelloController {
@Autowired
private Boy boy;
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String say(){
return "名字:"+boy.getName()+",年龄:"+boy.getAge();
}
}

4、多个配置文件调用

再application.yml中调用dev1配置文件

5、多个url访问同一个页面可以集合的方式,如下:

@RestController
public class HelloController {
@Autowired
private Boy boy;
@RequestMapping(value ={"/hello","/test"},method = RequestMethod.GET)
public String say(){
return "名字:"+boy.getName()+",年龄:"+boy.getAge();
}
}

6、获取url中的值

@RestController
public class HelloController {
@Autowired
private Boy boy;
@RequestMapping(value ={"/hello/{id}"},method = RequestMethod.GET)
public String say(@PathVariable("id") String id){
return "名字:"+boy.getName()+",年龄:"+boy.getAge()+id;
}
}

需要注意的是这个id写在hello的前后都无所谓,都可以拿到值,只是访问的路径不同而已(如果是{id}/hello,那么就是2/hello)

当多个url访问同一个页面是,这种方式每一个url都需要去配置一个id

@RestController
public class HelloController {
@Autowired
private Boy boy;
@RequestMapping(value ={"/hello/{id}","/test/{id}"},method = RequestMethod.GET)
public String say(@PathVariable("id") String id){
return "名字:"+boy.getName()+",年龄:"+boy.getAge()+",id:"+id;
}
}

可以使用这种方式,就不用在去每个url后面跟id了:

@RestController
public class HelloController {
@Autowired
private Boy boy;
@RequestMapping(value ={"/hello","/test"},method = RequestMethod.GET)
public String say(@RequestParam("id") String id){
return "名字:"+boy.getName()+",年龄:"+boy.getAge()+",id:"+id;
}
}

7、组合注解@GetMapping 和RequestMapping功能是一样的

required表示参数是否必传,defaultValue代表默认值(String)

使用IDEA构建Spring Boot项目简单实例的更多相关文章

  1. Spring Boot项目简单上手+swagger配置+项目发布(可能是史上最详细的)

    Spring Boot项目简单上手+swagger配置 1.项目实践 项目结构图 项目整体分为四部分:1.source code 2.sql-mapper 3.application.properti ...

  2. 用Gradle构建Spring Boot项目

    相比起Maven的XML配置方式,Gradle提供了一套简明的DSL用于构建Java项目,使我们就像编写程序一样编写项目构建脚本.本文将从无到有创建一个用Gradle构建的Spring Boot项目, ...

  3. spring boot系列01--快速构建spring boot项目

    最近的项目用spring boot 框架 借此学习了一下 这里做一下总结记录 非常便利的一个框架 它的优缺点我就不在这背书了 想了解的可以自行度娘谷歌 说一下要写什么吧 其实还真不是很清楚,只是想记录 ...

  4. docker 构建 spring boot项目

    在docker 开始部署springBoot项目 1.在centos7 ~ 创建一个文件夹docker 里面放置 上面的Dockerfile 和 springBoot 打包的项目docker_spri ...

  5. java Spring boot项目简单说明

    前言 一直从事.NET开发,但一直有种想去探索Java世界的冲动,今天终于有时间来尝试一下,以下是自己探索过程的简要记录. 一.开发工具 开发工具选用 IntelliJ IDEA社区版(免费),安装教 ...

  6. 笔记:Spring Boot 项目构建与解析

    构建 Maven 项目 通过官方的 Spring Initializr 工具来产生基础项目,访问 http://start.spring.io/ ,如下图所示,该页面提供了以Maven构建Spring ...

  7. Spring Boot - 项目构建与解析

    构建 Maven 项目 通过官方的 Spring Initializr 工具来产生基础项目,访问 http://start.spring.io/ ,如下图所示,该页面提供了以Maven构建Spring ...

  8. 三十二张图告诉你,Jenkins构建Spring Boot 有多简单~

    持续原创输出,点击上方蓝字关注我 目录 前言 如何安装Jenkins? 环境准备 开始安装Jenkins 初始化配置 访问首页 输入管理员密码 安装插件 创建管理员 实例配置 配置完成 构建Sprin ...

  9. 使用Docker部署Spring boot项目

    Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...

随机推荐

  1. mysql中table schema的基本操作

    我们通常对数据库进行的增删插检操作,是针对数据库中的文件.mysql数据库中还有一些表(是view,只能做select操作)记录了现有表的meta data,比如某个column的名字,它的定义是什么 ...

  2. django学习——request.POST.get(‘key’) 、 request.GET.get('key', '')

    request.POST是用来接受从前端表单中传过来的数据,比如用户登录过程中传递过来的username.passwrod等字段.返回类型是字典: 在后台进行数据获取时,有两种方法(以username ...

  3. numpy 中的堆叠 stack

    参考: https://blog.csdn.net/Riverhope/article/details/78922006 vstack,vertical 垂直堆叠 hstack, horizontal ...

  4. 对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考

    一:背景 1. 讲故事 这段时间项目延期,加班比较厉害,博客就稍微停了停,不过还是得持续的技术输出呀! 园子里最近挺热闹的,精致码农大佬分享了三篇文章: 为什么要小心使用 Task.Run [http ...

  5. chrome打开Axure Rp导出的html文件提示需要安装Axure Rp插件解决办法

    1.确保chrome安装了Axure Rp扩展插件,如果按照页面的提示去下载,但是打不开的话就是被墙了,贴上科学的上网梯子https://www.lanzous.com/i7i0wuh,直接下载打开就 ...

  6. CSP-S2020复赛游记

    [本文经过删改] 前一个月 没做什么 NOIP 的题,感觉这些题对我这个做黄题封顶的人不是很友好. 前一天 考了场模拟赛,全场最低分 89,感觉信心满满. 退役那天 到了 XJ,发现没人可以面基,想着 ...

  7. libev的用法

    本例是以linux环境c++的用法,ide用的是vs2019 一.libev的安装 我们采用的是apt-get方法(偷懒^_^),你也可以采用源码方式安装 sudo apt-get install l ...

  8. 学好Spark/Kafka必须要掌握的Scala技术点(二)类、单例/伴生对象、继承和trait,模式匹配、样例类(case class)

    3. 类.对象.继承和trait 3.1 类 3.1.1 类的定义 Scala中,可以在类中定义类.以在函数中定义函数.可以在类中定义object:可以在函数中定义类,类成员的缺省访问级别是:publ ...

  9. ubuntu 16.04安装adobe reader

    终端输入:wget ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.5.5/enu/AdbeRdr9.5.5-1_i386linux_enu.deb s ...

  10. 前端:css3的过渡与动画

    一.css3过渡知识 (一).概述 1.CSS3过渡是元素从一种样式逐渐改变为另一种的效果.      2.实现过渡效果的两个要件:    规定把效果添加到那个css属性上.    规定效果时长 定义 ...