https://blog.csdn.net/liutong123987/article/details/79385513

有很多方法可以快速创建Springboot项目,可以通过idea的springboot initialization来创建,也可以通过手工新建一个maven工程,然后引入springboot的dependency来完成sprignboot的工程导入,还可以通过spring官网的来创建springboot项目,因为有些同学可能没装idea,这里就通过官网的工程初始化指引来创建一个springboot空工程。
首先输入网址 https://start.spring.io,打开后可以看到下图:

image

在serch for dependency输入web,即可完成基本的restful接口网关的功能,如果要JPA或者oauth安全相关的组件,可以增加rest repository、spring security等相关组件依赖库,spring提供的配套组件还是很多的,基本涵盖了所有应用场合。
加入web组件后,点击下方的绿色按钮Generate Project即可创建一个springboot工程,并且自动下载到本地,接下来直接在idea或者eclipse打开该工程就可以了,在创建的时候可以选择Maven工程或者Gradle工程,这里我们使用了大家比较熟悉的Maven工程。
2. 工程结构
下面我们在ide中打开工程,这里使用的ide是idea,工程的目录结构为:

image

可以看到工程中有maven的pom文件,也自动创建了SpringbootStartApplication.java该类为springboot的启动类,待会儿我们一起看下这个类,先看下maven的pom文件有哪些。这里主要是依赖了springboot的1.4.7版本,目前最新已经更新到1.5.6了,这里没有用最新版本,还是不当小白鼠了,在dependency中依赖了spring-boot-starter-web还有个test测试的组件,如果不写测试代码,可以不使用该test组件,最后还加入了支持springboot的maven plugin组件。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.7.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>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
刚看完了pom文件,在导入工程的时候,ide一般会自动导入依赖库,在国内访问maven的依赖库速度感人,建议使用阿里云的maven镜像服务器,或者使用公司的maven私服,如果公司没有私服或者自己学习可以直接使用阿里云的镜像速度还是不错的,maven setting.xml中需要添加mirror地址,具体如何配置这里就不详细描述了,可以自行百度,这里也顺便附上阿里云maven地址:

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
配置好了pom后,我们一起看下自动生成的Application.java这个类相当于我们程序的main函数入口,这里再顺便介绍下因为springboot集成了Tomcat和Jetty,默认使用Tomcat作为应用容器,开发者只需要将工程打成jar包直接丢到服务器上就可以执行了,不需要再单独部署到was、jboss、tomcat这些应用服务器上。
SpringBootStartApplication.java

@SpringBootApplication
public class SpringbootStartApplication {

public static void main(String[] args) {
SpringApplication.run(SpringbootStartApplication.class, args);
}
}
所有的springboot application启动类都需要在类级别上加上@SpringBootApplication注解,其他参数不用任何调整,后续可以把一些初始化的动作放到该类中进行,目前本例中就不加其他的启动加载项了。
这样一个api网关的架子就搭好了,是不是很简单!下面我们就可以将主要精力聚焦在业务逻辑代码上了,这里为了简化程序,不会将项目进行深入的分层设计,在实际项目中,一般都会对项目进行分层设计,如果是api网关,没有view层但是起码也会有对外接入decontroller层、处理业务逻辑的service层、处理数据持久化的dao层,同时也会有一些POJO业务实体类,这里就不详细展开了,后续也会对互联网架构设计进行详细讲述,这里我们只创建了一个UserController类,里面只有获取用户信息的方法,分别根据参数和请求方式的不同用三种方法进行了重写,下面就来一一道来。

先来讲述下最简单的使用get请求用户信息的实现方式,代码如下,写好后直接在Application类点击右键有个RunAs,点击后会自动运行,运行成功后可以使用http发包工具进行测试,这里推荐使用chrome的postman或者使用firefox的httprequester插件,都是比较简单的发包工具,get请求的上送为http://localhost:8081/springboot/getUserByGet?userName=feiweiwei

//@RestController注解能够使项目支持Rest
@RestController
@SpringBootApplication
//表示该controller类下所有的方法都公用的一级上下文根
@RequestMapping(value = "/springboot")
public class UserController {
//这里使用@RequestMapping注解表示该方法对应的二级上下文路径
@RequestMapping(value = "/getUserByGet", method = RequestMethod.GET)
String getUserByGet(@RequestParam(value = "userName") String userName){
return "Hello " + userName;
}
}
这里用到的注解主要有@RequestMapping表示请求的URL上下文路径,该路径不能重复,为了保证与团队其他同事写的不重复,一般会在每个controller前面加一个一级上下文目录,具体路径参数放在value后面,在每个方法前加一个二级目录,这样可以有效的避免路径冲突。还有注解是@RequestParam,该注解可以通过value指定入参,这里return的返回值就是实际的接口返回。

下面介绍下POST的请求方式,可以通过在@RequestMapping注解中设置method为POST来表示该请求为POST请求,除了get、post还有put、delete等请求方式,都可以通过该参数设置。

//通过RequestMethod.POST表示请求需要时POST方式
@RequestMapping(value = "/getUserByPost", method = RequestMethod.POST)
String getUserByPost(@RequestParam(value = "userName") String userName){
return "Hello " + userName;
}
下面介绍下请求参数为JSON格式的请求方法的写法,这里需要注意下如果请求参数是像上面那样通过url form形式提交的请求参数,那么必须使用@RequestParam注解来标示参数,如果使用的请求报文是POST形势的JSON串,那么这里在入参的注解一定要使用@RequestBody,否则会报json解析错误。

//在入参设置@RequestBody注解表示接收整个报文体,这里主要用在接收整个POST请求中的json报文体,
//目前主流的请求报文也都是JSON格式了,使用该注解就能够获取整个JSON报文体作为入参,使用JSON解析工具解析后获取具体参数
@RequestMapping(value = "/getUserByJson",method = RequestMethod.POST)
String getUserByJson(@RequestBody String data){
return "Json is " + data;
}
3. 小结
到此一个简单的restful风格的api网关就完成了,对于移动开发人员可以自己写简单的服务端进行全栈开发了,原来做spring的同学也可以很快上手springboot,springboot总体上来说还是简化了原先复杂的配置,让大家更容易快速上手和搭建服务端,代码的git地址在下方,欢迎大家下载,谢谢。

git代码地址:https://github.com/feiweiwei/springboot-start.git

---------------------
作者:liutong123987
来源:CSDN
原文:https://blog.csdn.net/liutong123987/article/details/79385513
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/sjqq/p/10079344.html

使用spring initialization创建SpringBoot项目相关推荐

  1. IDEA从零到精通(16)之IDEA中用Spring Initializr创建springboot项目

    文章目录 作者简介 引言 导航 热门专栏推荐 创建项目 编写测试代码 运行 小结 导航 热门专栏推荐 作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaS ...

  2. 问题日志:解决使用 Spring initializr 创建 Springboot 项目时,`src\main\java` 文件夹没有变为蓝色的问题

    ​ 解决问题时间:2022-08-21--17:48 一.问题描述: 在使用 Spring initializr 创建过一次项目并且成功之后,再次进行新项目创建时,发现又出现了无法正常创建成功的情况- ...

  3. java基础-(六)-使用 Spring Initializr 创建springBoot项目

    IntelliJ IDEA 支持用户使用 Spring 项目创建向导(Spring Initializr )快速地创建一个 Spring Boot 项目,步骤如下. 1. IntelliJ IDEA ...

  4. 第一节:创建SpringBoot项目并运行HelloWorld

    SpingBoot 365计划开始更新了,计划手敲365个SpringBoot案例回顾总结形成知识体系.目前已经输出了32节的内容.所有源码托管在GitHub和Gitee上. 1.第一节:创建Spri ...

  5. 快速创建springboot项目:使用http://start.spring.io/网页创建,使用IDEA的Spring Initializr创建,使用SpringBoot CLI创建

    1 快速创建SpringBoot项目 快速创建SpringBoot项目至少可以通过两种方式: 1.使用http://start.spring.io/网页版的创建 2.使用IDEA创建 1.1.通过访问 ...

  6. docker部署springboot_创建SpringBoot项目部署到docker全过程

    目录 docker 介绍 安装 docker Ubuntu 安装 docker CentOS 安装 docker 通过脚本安装 拉取 java 环境 创建 springboot 项目 打包 sprin ...

  7. 使用idea创建springboot项目并打成war包发布到weblogic上...

    部署tomcat也是类似的,但是需要注意项目配置的路径,或者直接将项目放到webapp的ROOT目录下. 使用工具:intelliJ IDEA2016.3, jdk1.8 ,weblogic12 一 ...

  8. SpringBoot创建SpringBoot项目以及启动器讲解

    我们在创建SpringBoot项目之前,我们还需要去了解SpringBoot的其他一些信息,我们需要打开Spring官网https://spring.io/Spring官网的域名是spring.io, ...

  9. 使用IDEA创建SpringBoot项目

    使用IDEA创建SpringBoot项目 新建项目 打开IDEA,创建新项目,选择Spring Initializr 输入Artifact 勾选Web 点击finish完成 删除多余 进入项目,可以将 ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最小值(rolling min)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最小值
  2. h5执行php函数,值得一个的5个强大的HTML5API 函数
  3. 数据结构-简单选择排序(C语言)
  4. DirectX 3D学习笔记(一)
  5. C++实现chaining链式算法(附完整源码)
  6. hadoop 运行wordcount
  7. python会议室系统预定_python项目篇-酒店(会议室,电影)预定
  8. java读取文件内容,文件头有\ufeff
  9. Java Web Start实例
  10. 定义一个泛型为String类型的List集合,统计该集合中每个字符 (注意,不是字符串)出现的次数。例如:集合中有”abc”、”bcd”两个元素, 程序最终输出结果为:
  11. HTML5 响应式网页设计之页面美化(三.弹性布局)
  12. jrtplib linux编译,linux下jrtplib-3.9.1编译与安装.txt
  13. 基于单片机智能交通灯控制系统设计外文文献_三种典型的微机控制系统
  14. node之cookie-parser
  15. 工业POE交换机出现不供电怎么办?
  16. 通过IDEA快速下载JDK
  17. java 又一次抛出异常 相关处理结果演示样例代码
  18. Fluent常见问题
  19. Android四大组件及其作用
  20. 缓存模式【缓存使用几种模式】【刘新宇】

热门文章

  1. 能量平衡_能量平衡原则
  2. java三年工作经验工资_工作三年还是只会增删改查,Java 程序员如何进阶?
  3. iframe的src怎么携带参数_三种传递gRPC动态参数方式的使用体验
  4. linux+ip+路由设置,Linux下IP巧设置-网管专栏,防火墙和路由
  5. html 横屏内容显示不全_“屏”什么喜欢你,车载显示器有哪些新玩法...
  6. 曲奇饼案例运营管理_昆仑海岸 农村生活污水处理设施智慧运营管理项目荣获典型案例奖...
  7. python随机生成字母和数字的混合字符串_用python生成数字、字母和特殊字符混合的字符串...
  8. python学习-注释、语法、整数、浮点数初步接触
  9. php和mysql web开发 笔记_PHP和MySQL Web开发读书笔记---创建Web数据库
  10. python内建函数是什么意思_Python3内建函数简介,Python3内建函数详解