使用IDEA构建Spring Boot项目简单实例
一、介绍
它的目标是简化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项目简单实例的更多相关文章
- Spring Boot项目简单上手+swagger配置+项目发布(可能是史上最详细的)
Spring Boot项目简单上手+swagger配置 1.项目实践 项目结构图 项目整体分为四部分:1.source code 2.sql-mapper 3.application.properti ...
- 用Gradle构建Spring Boot项目
相比起Maven的XML配置方式,Gradle提供了一套简明的DSL用于构建Java项目,使我们就像编写程序一样编写项目构建脚本.本文将从无到有创建一个用Gradle构建的Spring Boot项目, ...
- spring boot系列01--快速构建spring boot项目
最近的项目用spring boot 框架 借此学习了一下 这里做一下总结记录 非常便利的一个框架 它的优缺点我就不在这背书了 想了解的可以自行度娘谷歌 说一下要写什么吧 其实还真不是很清楚,只是想记录 ...
- docker 构建 spring boot项目
在docker 开始部署springBoot项目 1.在centos7 ~ 创建一个文件夹docker 里面放置 上面的Dockerfile 和 springBoot 打包的项目docker_spri ...
- java Spring boot项目简单说明
前言 一直从事.NET开发,但一直有种想去探索Java世界的冲动,今天终于有时间来尝试一下,以下是自己探索过程的简要记录. 一.开发工具 开发工具选用 IntelliJ IDEA社区版(免费),安装教 ...
- 笔记:Spring Boot 项目构建与解析
构建 Maven 项目 通过官方的 Spring Initializr 工具来产生基础项目,访问 http://start.spring.io/ ,如下图所示,该页面提供了以Maven构建Spring ...
- Spring Boot - 项目构建与解析
构建 Maven 项目 通过官方的 Spring Initializr 工具来产生基础项目,访问 http://start.spring.io/ ,如下图所示,该页面提供了以Maven构建Spring ...
- 三十二张图告诉你,Jenkins构建Spring Boot 有多简单~
持续原创输出,点击上方蓝字关注我 目录 前言 如何安装Jenkins? 环境准备 开始安装Jenkins 初始化配置 访问首页 输入管理员密码 安装插件 创建管理员 实例配置 配置完成 构建Sprin ...
- 使用Docker部署Spring boot项目
Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...
随机推荐
- 第11.3节 Python正则表达式搜索支持函数search、match、fullmatch、findall、finditer
一. 概述 re模块的函数search.match.fullmatch.findall.finditer都是用于搜索文本中是否包含指定模式的串,函数的参数都是一样的,第一个参数是模式串.第二个是搜索文 ...
- PyQt学习随笔:使用QPropertyAnimation开发简单动画
QPropertyAnimation是PyQt5.QtCore模块提供的动画设计类,使用该类可以针对PyQt的界面对象进行动画播放,如果要针对一个指定对象进行动画播放,包括如下步骤: 一.创建动画对象 ...
- sourcetree的使用(配合git)
主要讲解sourcetree的使用,是一个git提交的可视化软件,在官网上下载(windows,mac都有) 一路下载安装 首先,为了给本地sourcetree一个私钥,我们需要先下载git,然后在g ...
- CSS基础-字体
字体变化设置 改变字体颜色 color 改变字体大小 font-size 改变字体粗细 font-weight 改变字体样式 font-family 改变字间距 letter-spacing 改变字体 ...
- AT2688 [ARC080C] Young Maids
一道挺有意思的题目,在这里记录一下. 题目大意 给你一个长度为 \(n\) 的排列,每一次你可以取出相邻的两个数将其放在答案序列的开头,最后问你字典序最小的答案序列是什么. 题解 由于最后是求字典序最 ...
- 题解-Happy New Year
题解-Happy New Year Happy New Year 给定 \(n\),\(m\) 和 \(k\).有一个序列 \(a\{m\}\) 初始值为 \(0\).有 \(n\) 种操作,每种可以 ...
- Vue项目上线环境部署,项目优化策略,生成打包报告,及上线相关配置
Node.js简介 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用来方便快速地搭建易于扩展的网络应用.Node.js使用了一个事件驱动.非阻塞式I/O的模型,使其轻量 ...
- HBase过滤器:SingleColumnValueFilter和FirstKeyOnlyFilter一起使用的问题
FirstKeyOnlyFilter是对第一列进行过滤,hbase中的列按照字典序排列,所以如果SingleColumnValueFilter中的过滤列不是第一列的话,FirstKeyOnlyFilt ...
- selenium IDE使用-1
selenium 硒 Mercury汞,外国人喜欢取这化学的名字 一.selenium概述 1.selenium是开源免费的,针对web应用程序功能自动化测试的工作. 2.做功能自动化的原因:回归测试 ...
- js上 三、数据类型
3.1.什么是数据类型 a. 什么是数据类型? 想从生活中出发: 考验智商的时刻到了: 1(只)+1(只)=1(双) 3(天)+4(天)=1(周) 5(月)+7(月)=1(年) 4(时)+9(时)=1 ...