SpringBoot2.X最佳实践《一》 之 SpringBoot2.x初体验

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等,均采用目前最新的版本

    资料和开发工具准备:

    • 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启动流程和常用的注解、官方推荐的目录规范

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

    原文地址:http://blog.51cto.com/13672582/2156414

    时间: 2024-08-01 04:44:48

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

    C语言及程序设计 实践项目——C语言程序初体验

    [项目1-输出点阵图] 编一个程序,用你的姓名读音首字母,组成类似的趣图 提示:printf("--\n");语句会输出双引号中的内容,'\n'完成换行[参考解答] [项目2-完成简单计算] (1)编程序,输入长方形的两边长a和b,输出长方形的周长和面积 提示:边长可以是整数也可以是小数:实现乘法的运算符是*[参考解答] (2)编程序,输入两个电阻R1和R2的阻值,求它们并联后的阻值R 提示:计算公式为r=1/(1/r1+1/r2)):电阻值为浮点数[参考解答] (3)输入摄氏温度值(

    基础入门_Python-模块和包.运维开发中watchdog事件监视的最佳实践?

    简单介绍: 说明:  此模块是一个跨平台的PY库和SHELL工具,可以监视文件系统事件(增加/删除/修改) 快速安装: pip install --upgrade watchdog 日志记录: event_handler = LoggingEventHandler() -> event_handler 说明: 创建一个日志处理句柄,其实LoggingEventHandler是继承自FileSystemEventHandler类,只是重写了增删查改的回调函数,直接调用logging模块写到对应lo

    基础入门_Python-内建函数.运维开发中eval内建函数的最佳实践?

    简单介绍: 说明: 在指定命名空间中计算参数字符串的有效表达式,并返回一个对象, Help on built-in function eval in module __builtin__: eval(...)     eval(source[, globals[, locals]]) -> value          Evaluate the source in the context of globals and locals.     The source may be a string 

    45个实用的JavaScript技巧、窍门和最佳实践

    如你所知,JavaScript是世界上第一的编程语言,它是Web的语言,是移动混合应用(mobile hybrid apps)的语言(比如PhoneGap或者Appcelerator),是服务器端的语言(比如NodeJS或者Wakanda),并且拥有很多其他的实现.同时它也是很多新手的启蒙语言,因为它不但可以在浏览器上显示一个简单的alert信息,而且还可以用来控制一个机器人(使用nodebot,或者nodruino).掌握JavaScript并且能够写出组织规范并性能高效的代码的开发人员,已经

    毫秒必争,前端网页性能最佳实践

    你愿意为打开一个网页等待多长时间?我一秒也不愿意等.但是事实上大多数网站在响应速度方面都让人失望.现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文章中我们来介绍一下提高网页性能的最佳实践,以及相应的问题解决方案,让站长或者即将要成为站长的朋友了解如何去测试和提高网站响应速度,对自己的网站更有信心. 最佳实践 最佳实践我们引用的来自yahoo前端性能团队总结的35条黄金定律.原文猛击这里.下面我们分门别类将每条的关键点总结一下. 网页内容 减少http请求次数 减少DNS

    atitit.手动配置列表文件的选择and 数据的层次结构 attilax总结最佳实践--yaml

    atitit.手动配置列表文件的选择and 数据的层次结构 attilax总结最佳实践--yaml 1. yaml是个好的选择.. 1 2. 数据的层次结构--结构:hash,list,和block literal. 1 3. yaml跟json的实现区别 1 4. xml的优点及json的问题 2 4.1. ide友好 2 4.2. JSON也适合与任何数据,复杂struts难以阅读 2 4.3. json难以手工维护 3 5. 基于YAML的开源项目解析YAML文件最常用的Java库是JvY

    京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践

    1. 为什么需要一个前端监控系统 通常在一个大型的 Web 项目中有很多监控系统,比如后端的服务 API 监控,接口存活.调用.延迟等监控,这些一般都用来监控后台接口数据层面的信息.而且对于大型网站系统来说,从后端服务到前台展示会有很多层:内网 VIP.CDN 等. 但是这些监控并不能准确地反应用户看到的前端页面状态,比如:页面第三方系统数据调用失败,模块加载异常,数据不正确,空白开天窗等. 相关厂商内容 Native动态化最新技术解析 不可错过的智能时代的大前端 性能优化最佳实践经验谈 百度技

    [转] React 最佳实践——那些 React 没告诉你但很重要的事

    前言:对很多 react 新手来说,网上能找到的资源大都是些简单的 tutorial ,它们能教会你如何使用 react ,但并不会告诉你怎么在实际项目中优雅的组织和编写 react 代码.用谷歌搜中文“ React 最佳实践”发现前两页几乎全都是同一篇国外文章的译文...所以我总结了下自己过去那个项目使用 React 踩过的一些坑,也整理了一些别人的观点,希望对部分 react 使用者有帮助. React 与 AJAX React只负责处理View这一层,它本身不涉及网络请求/AJAX,所以这

    SQL Server集成服务最佳实践:语句优化

    SQL Server集成服务(SQL Server Integration Services,SSIS)在其前辈DTS(Data Transformation Services,数据转换服务)的根基上进步了不少,从可用性.性能和并行等方面来说,它已经成长为一个企业级ETL(Extraction, Transformation and Loading,抽取.转换和加载)产品,除了是一个ETL产品外,它也供给了各种内置任务来管理SQL Server实例.虽然SSIS的内部架构已经被设计为供给极好的性