使用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项目. 先决条件 开发之前,你必须具 ...
随机推荐
- PyQt(Python+Qt)学习随笔:工具箱(QToolBox)的用途及标签部件项(tabbed widget item)作用介绍
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 1.概述 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列 ...
- SELECT 1,2,3...的含义及其在SQL注入中的用法
首先,select 之后可以接一串数字:1,2,3-只是一个例子,这串数字并不一定要按从小到大排列,也不一定从1开始,这串数字的值和顺序是任意的,甚至可以是重复的,如:11,465,7461,35 或 ...
- PHP代码审计分段讲解(5)
11 sql闭合绕过 源代码为 <?php if($_POST[user] && $_POST[pass]) { $conn = mysql_connect("**** ...
- 部署基于.netcore5.0的ABP框架后台Api服务端,以及使用Nginx部署Vue+Element前端应用
前面介绍了很多关于ABP框架的后台Web API 服务端,以及基于Vue+Element前端应用,本篇针对两者的联合部署,以及对部署中遇到的问题进行处理.ABP框架的后端是基于.net core5.0 ...
- git相关操作
git相关命令 基本操作 git init git add xxx git commit -m "first commit" git tag -a V1.0 -m '我的标签' g ...
- 一、eclipse配置TestNG
eclipse配置TestNG可以通过eclipse直接下载,但我没有vpn,所以使用线下配置. 1-下载TestNG的配置文件,有两个文件 features 和 plugins 2-eclipse配 ...
- [日常摸鱼][poj2777]Count Color-线段树
辣鸡会考考完啦哈哈哈哈 题意:一块板分成$L$块,每次给一段连续的块染色或者询问一段有几种颜色,颜色的范围$\leq 30$ 我记得我好像做过一个类似的二维染色的问题-不过那个用树状数组直接过掉了- ...
- 超简单的 Docker部署 SpringBoot项目 步骤
很久之前就用过,一直没有好好写篇博客,今天就总结一下 创建一个 SpringBoot项目 创建一个SpringBoot项目并打成jar包,结构如图 编写 Dockerfile文件 FROM java: ...
- DRF使用超链接API实现真正RESTful
很多API并不是真正的实现了RESTful,而应该叫做RPC (Remote Procedure Call 远程过程调用),Roy Fielding曾经提到了它们的区别,原文如下: I am gett ...
- iframe高度自动随着子页面的高度变化而变化(不止要在iframe标签里加上this.height=this.contentWindow.document.body.scrollHeight)
最近使用iframe整合页面遇到一些难题,走了很多弯路才解决,借此记录一下: 1 <!-- 页面主体内容 --> 2 <div class="iframe-wrapper& ...