SpringBoot2.X最佳实践 前言

本系列文章,从零基础接触  SpringBoot2.x新版本,基础入门使用,热部署,到整合各个主流框架Redis4.x,消息队列AciveMQ, RocketMQ等,搜索框架ElasticSearch5.6版本,到web-flux反应式编程,到Actuator监控应用信息,官方最佳实践,最全的SpringBoot2.教程

技术选型和更新须知:

  • 采用最新的SpringBoot2.x版本
  • JDK1.8
  • IDEA或者Eclipse编辑器
  • Maven3.x版本
  • 其他框架比如分布式缓存Redis,搜索框架ElasticSearch,消息队列RocketMQ和ActiveMQ等,均采用目前最新的版本
  • 两到三天更新一篇,核心知识点会突出,比如新旧版本拦截器定义,监控Actuator的使用

资料和开发工具准备:

  • JDK1.8下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  • Maven3.x下载:http://maven.apache.org/download.cgi
  • SpringBoot2.x官方文档: https://spring.io/projects/spring-boot#overview

SpringBoot是什么?

学过javaweb的同学就知道,开发一个web应用,从最初开始接触Servlet结合Tomcat, 跑出一个Hello Wolrld程序,是要经历特别多的步骤; 后来就用了框架Struts,再后来是SpringMVC,到了现在的SpringBoot,过一两年又会有其他web框架出现;不知道你们有没经历过框架不断的演进,然后自己开发项目所有的技术也再不断的变化、改造,反正我是都经历过了,哈哈。

言归正传,什么是SpringBoot呢,就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置,  you can "just run",能迅速的开发web应用,几行代码开发一个http接口。

快速创建SpringBoot2.x应用

学任何框架,都从hello world开始,这个也不例外,我们先创建一个http接口,返回json数据。

SpringBoot官方提供了一个快速创建应用的工具“Spring Initializr” , 地址:http://start.spring.io

通过这个可以帮我们生成一个项目的基础框架和目录规范,操作如下图的顺序

1、下载后导入到IDEA或者Eclipse里面,springboot默认加入了很多依赖包,所以需要从远端的maven仓库下载下来,初次导入需要下载很多的依赖包,会比较慢,不过也可以更改Maven仓库地址为国内的的仓库地址。

2、官方包目录接口说明

3、Maven依赖文件讲解

核心配置文件在图片上面,底部有很多暂时用不上的配置,比如仓库地址可以去除,下面的pom文件的都可以去除

<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories> <pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

  

编写Http接口

1、新建一个包,domian用于存放实体类,并新建一个User.java类

package net.xdclass.demo.domain;/**
* 用户类
*/public class User {
private int id; private String name; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

  


2、新建一个Controller,并建立一个UserController.java, 类加入注解@RestController (用于返回Json数据,如果用@controller的话,需要在加个@responseBody,才会返回json数据),新建一个findUser方法,方法上加个注解,@RequestMapping("find")

package net.xdclass.demo.controller;
import net.xdclass.demo.domain.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 使用 @RestController 定义一个控制器
*/
@RestController
public class UserController { /**
* 定义一个接口,接受两个参数
* @param id
* @param name
* @return
*/
@RequestMapping("find")
public User findUser(int id, String name){
User user = new User();user.setName(name);
user.setId(id); return user;
}
}

  

3、使用CMD或者命令行工具进入项目根目录,把应用打包成一个可执行的jar包, 执行maven打包命令 mvn clean package

[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ demo ---
[INFO] Building jar: /Users/xdclass/Desktop/文章/第一篇/demo/target/demo-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.0.3.RELEASE:repackage (default) @ demo ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.459 s
[INFO] Finished at: 2018-07-16T08:34:57+08:00
[INFO] ------------------------------------------------------------------------ 

打包成功后最后会出现一个success,然后进入target目录,里面有个xxx.jar  (xxx就是项目的名字)就是可以直接执行的jar包.

启动  java -jar xxxx.jar, 启动大概花10来秒,底部可以看到启动成功的日志,springboot默认端口是8080, 所以可以直接访问,

接口地址:http://localhost:8080/find?id=1&name=二当家小D

响应一个user对象,就成功了。

这就是一个成功的http接口,一个web应用就可以正常启动了访问和访问了,如果要开发其他接口,继续写就可以了。

下一篇文章,讲解Springboot2.x启动流程和常用的注解、官方推荐的目录规范

小编积累多年的干货文档免费赠送,包含前端后端和测试,系统架构,高并发处理,优化等

SpringBoot2.X最佳实践《一》 之 SpringBoot2.x初体验的更多相关文章

  1. Typescript 最佳实践

    文章列表: <一>大话 TypeScript 基本类型 <二>大话 Typescript 枚举 <三>大话 Typescript 接口 <四>大话 Ty ...

  2. spring-boot-2.0.3之quartz集成,最佳实践

    前言 开心一刻 快过年了,大街上,爷爷在给孙子示范摔炮怎么放,嘴里还不停念叨:要像这样,用劲甩才能响.示范了一个,两个,三个... 孙子终于忍不住了,抱着爷爷的腿哭起来:爷呀,你给我剩个吧! 新的一年 ...

  3. ASP.NET跨平台最佳实践

    前言 八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营.有过短暂的失落和迷茫,但技术转型真的没有想象中那么难.回头审视,其实单从语言本身来看,C#确实比Java ...

  4. 《AngularJS深度剖析与最佳实践》简介

    由于年末将至,前阵子一直忙于工作的事务,不得已暂停了微信订阅号的更新,我将会在后续的时间里尽快的继续为大家推送更多的博文.毕竟一个人的力量微薄,精力有限,希望大家能理解,仍然能一如既往的关注和支持sh ...

  5. ASP.NET MVC防范CSRF最佳实践

    XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...

  6. 快速web开发中的前后端框架选型最佳实践

    这个最佳实践是我目前人在做的一个站点,主要功能: oauth登录 发布文章(我称为"片段"),片段可以自定义一些和内容有关的指标,如“文中人物:12”.支持自定义排版.插图.建立相 ...

  7. Spring Batch在大型企业中的最佳实践

    在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理.这样的过程就是" ...

  8. Atitit.log日志技术的最佳实践attilax总结

    Atitit.log日志技术的最佳实践attilax总结 1. 日志的意义与作用1 1.1. 日志系统是一种不可或缺的单元测试,跟踪调试工具1 2. 俩种实现[1]日志系统作为一种服务进程存在 [2] ...

  9. PHP核心技术与最佳实践——全局浏览

    难得买到并喜欢一本好书,‘PHP核心技术与最佳实践’. 几天时间,先看了个大概,总结一下整体是什么样子的,怎么看怎么学. 1.总共14章: 2.第1.2章讲PHP的OOP: 其中第一章侧重于PHP的O ...

随机推荐

  1. Selenium----Selenium WebDriver /RC工作原理

    1.Selenium RC 工作原理 说明:客户端库文件将命令传递给server.接着server使用selenium-core的javaScript命令传递给浏览器,浏览器会使用自带的javaScr ...

  2. Oracle 11g安装报错Environment variable: "PATH"

    Environment variable: "PATH" - This test checks whether the length of the environment vari ...

  3. linkedlist--lecture-4

    1.链表数据结构 内存利用率高:动态分配 2.链表类定义 单向链表节点 public calss ListNode { int val =0; ListNode next = null; public ...

  4. (转)Linux命令学习总结:dos2unix - unix2dos

    Linux命令学习总结:dos2unix - unix2dos 命令简介: 原文:http://www.cnblogs.com/kerrycode/p/5077969.html dos2unix是将W ...

  5. (转)KICKSTART无人值守安装

    KICKSTART无人值守安装 导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. 常规的办法有什么? 光盘安装 ...

  6. Java匹马行天下之JavaWeb核心技术——JSP

    JSP动态网页技术 一.JavaWeb简介 一.什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总称. 需要在特定的web服务器上运行,分为web服务器和web客 ...

  7. C# 读写XML文件的方法

    C# 读写XML文件的方法 一.写XML文件 XmlDocument xmlDocument = new XmlDocument();xmlDocument.AppendChild(xmlDocume ...

  8. Lambda动态排序通用方法

    using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...

  9. JFrame 文本打印

    package tools; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import jav ...

  10. while循环,break和continue,运算符,格式化输出

    一丶while循环 while条件: 代码块(循环体) #数数 打印1-100 count = 1 while count <= 100: print(count) count += 1 执行顺 ...