SpringBoot基础篇(一):Spring Boot入门

我们今天开始对SpringBoot的学习,本篇主要是Spring Boot的入门部分。

1、SpringBoot简介

引用SpringBoot在百度百科中的含义:

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

在学习之前我们可以先列出Spring Boot的优点,以供了解,其相关内容会在未来进行讲解。

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打成WAR包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可修改默认值
  • 无需配置XML,无代码生成,开箱即用
  • 准生产环境的运行时应用监控
  • 与云计算的天然集成

2、微服务

了解微服务以前,我们可以相对的了解一下单体应用,什么是单体应用呢?
在这里插入图片描述
在单体应用的年代,一个软件应用,往往会将应用所有功能都开发和打包在一起,如图所示,这里将代码打成war包放置在Tomcat服务器上。但是,当用户访问量变大导致一台服务器无法支撑时怎么办呢?于是出现了负载均衡,后来又把静态文件分离出来形成了动静分离。但是呢所谓治标不治本,无论是负载均衡也好,动静分离也罢,都是改善和优化了部署环境,改变不了根本的缺点:

  • 代码臃肿,应用启动时间长;(代码超过1G的项目都有!)
  • 回归测试周期长,修复一个小小bug可能都需要对所有关键业务进行回归测试;
  • 应用容错性差,某个小小功能的程序错误可能导致整个系统宕机;
  • 伸缩困难,单体应用扩展性能时只能整个应用进行扩展,造成计算资源浪费;
  • 开发协作困难,一个大型应用系统,可能几十个甚至上百个开发人员,大家都在维护一套代码的话,代码merge复杂度急剧增加。

所以在这种情况下我们今天的主角——“微服务”就应运而生了,我们先来看一下典型的微服务架构:
在这里插入图片描述
根据上图的内容即可以很容易理解微服务架构的大体流程,客户端调用不同的服务时会先经过服务网关来进行调用,而对服务的修改与上传又可以通过服务注册中心和服务配置中心来完成。

3、SpringBoot———HelloWorld

3.1、设计目标

3.2、创建一个Maven工程,在Maven中导入依赖Jar包

  <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version><relativePath/></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.1.12.RELEASE</version></dependency></dependencies>

3.3、编写一个SpringBoot主程序、启动应用

package com.lizhengi;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** springBootApplication:标注一个主程序类,表示这个是一个Springboot应用*/@SpringBootApplication
public class HelloWorldApplication {public static void main(String[] args) {//Spring应用启动SpringApplication.run(HelloWorldApplication.class, args);}
}

3.4、编写一个Controller

package com.lizhengi.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** RestController:是spring4里的注解,是@ResponseBody和@Controller的缩写。*/@RestController
public class HelloController {@RequestMapping("/hello")public String hello(){return "hello SpringBoot,this is my first Application";}
}

3.5、运行main方法、查看浏览器
在这里插入图片描述

到这里我们的第一个SpringBoot程序HelloWorld程序就完成了。

3.6、简化部署
3.6.1、添加maven插件

 <!-- 这个插件,可以将应用打包成一个可执行的jar包;--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

3.6.2、使用mvn package进行打包
在这里插入图片描述

3.6.3、进入打包好的jar包所在目录找到jar包
在这里插入图片描述

3.6.4、使用 java -jar jar包名称 运行
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot基础篇(二):HelloWorld细节探究

1、场景启动器 1.1依赖 <!--Hello World项目的父工程是org.springframework.boot--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</versio…

MIP 与 AMP 合作进展(3月7日)

“到目前为止&#xff0c;全网通过 MIP 校验的网页已超10亿。除了代码和缓存&#xff0c; MIP 还想做更多来改善用户体验移动页面。” 3月7日&#xff0c;MIP 项目负责人在首次 AMP CONF 上发言。 那么 MIP 和 AMP 的关系是什么呢&#xff1f; AMP 是一个开源性项目&#xff…

SpringBoot番外篇(一):使用Spring Initializer快速创建Spring Boot项目(IDEA版)

IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目&#xff1b; 选择我们需要的模块&#xff1b;向导会联网创建Spring Boot项目&#xff1b; ps:需要联网 1、创建新项目时选择Spring Initializ&#xff0c;选择好java版本&#xff0c;点击next。r 2、填写项…

开发教程(四) MIP组件平台使用说明

组件审核平台用于上传 MIP 组件。经过自动校验之后&#xff0c;提交审核&#xff0c;通过审核的组件会定时推送到线上&#xff0c;供网站使用。 平台地址&#xff1a;https://www.mipengine.org/platform/ 1. 使用说明 MIP 组件审核平台用于提交开发完成的组件&#xff0c;如…

MIP 技术交流分享(3月15日)

3月15日下午&#xff0c;MIP 团队工程师与58赶集的 Web 前端工程师进行了一次面对面的技术交流。 在这次交流中&#xff0c;MIP 工程师主要分享了 MIP 技术原理&#xff0c;MIP 加速原理&#xff0c;以及 MIP 为开发者提供的工具集。 58赶集的工程师提出了以下问题&#xff1a…

Redis(零):背景

什么是NoSQL&#xff0c;什么是Redis&#xff0c;我们在了解这个系列之前&#xff0c;先来看一下Redis是从何而来&#xff1f;Why redis is needed? 1、单机MySQL年代 在最早的单机MySQL年代&#xff0c;存在着访问量小&#xff0c;单个数据库等特点。 但是特有着众多的缺…

Redis(一):什么是NoSQL与NoSQL分类

1、什么是NoSQL NoSQL Not only SQL (不仅是SQL)&#xff0c;即泛指非关系型数据库。随着Web2.0时代诞生&#xff01;NoSQL在当今大数据的环境下发展十分迅速&#xff01; NoSQL 是一项全新的数据库革命性运动&#xff0c;早期就有人提出&#xff0c;发展至2009年趋势越发高涨…

MIP 内容声明

从搜索结果页点出的 MIP 页面&#xff0c;其页面上的任何内容&#xff08;包括但不限于广告、在线咨询、统计等组件&#xff09;均视为在原站点上的投放和使用。 MIP &#xff08;Mobile Instant Pages - 移动网页加速器&#xff09;, 是一套应用于移动网页的开放性技术标准。…

Redis(二):Redis入门与性能测试

1、Redis概述 Redis是什么&#xff1a; Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 免费开源&#xf…

互联网的发展背离了其初衷吗?

作者 | 高磊 编辑 | 尾尾 一、互联网初衷究竟是什么&#xff1f; 互联网的初衷究竟是什么&#xff1f; 对于这个问题&#xff0c;被誉为“互联网之父”的蒂姆伯纳斯李&#xff08;Tim Berners-Lee&#xff09;应该最有发言权。 伯纳斯李认为&#xff0c;互联网最具价值的地…

Redis(三):Redis基础知识与常用命令

1、基础命令 Redis默认有16个数据库&#xff0c;用的是第0个数据库&#xff0c;可以使用select进行切换数据库&#xff0c;使用DBSIZE查看DB大小&#xff08;只针对当前数据库&#xff09;。 使用keys * 查看当前数据库下所有的key&#xff0c;使用flushdb清除当前数据库&am…

移动Web加速技术月报第1期

作者 | Brilliant Open Web团队breezet、JennyL 编辑 | 尾尾 为推进Web技术的发展&#xff0c;Brilliant Open Web 团队特推出每月一期的《移动Web加速技术月报》&#xff0c;该月报将整理较流行的移动Web加速技术&#xff0c;并跟进各项技术的进展和发展方向&#xff0c;以期…

Redis(四):String字符串数据类型详解

Redis 字符串数据类型的相关命令用于管理 redis 字符串值&#xff0c;基本语法如下&#xff1a; redis 127.0.0.1:6379> COMMAND KEY_NAME1、String类型的常用命令 1.1、set、get SET key v//设置key值为v get key //获取key值1.2、Append APPEND key "hi" //…

五个案例简述Web设计原则:通用一致

作者 | 百度搜索用户体验中心 《Web设计指南》分为设计原则、基础规范两方面主要内容&#xff0c;同时会提供相应的实际案例及资源下载。欢迎关注OpenWeb开发者&#xff0c;订阅《Web设计指南》。 前言 《Web设计指南》是专门为广大Web内容生态提供一套简单实用的设计指南&a…

Redis(五):List集合数据类型详解

Redis列表是简单的字符串列表&#xff0c;按照插入顺序排序。你可以添加一个元素到列表的头部&#xff08;左边&#xff09;或者尾部&#xff08;右边&#xff09; 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。 实例&#xff1a; redis 127…

WebP 在减少图片体积和流量上的效果如何?WebP 技术实践分享

作者 | Jackson 编辑 | 尾尾 不论是 PC 还是移动端&#xff0c;图片一直占据着页面流量的大头&#xff0c;在图片的大小和质量之间如何权衡&#xff0c;成为了长期困扰开发者们的问题。而 WebP技术的出现&#xff0c;为解决该问题提供了好的方案。本文将为大家详细介绍 WebP 技…

Redis(六):Set集合数据类型详解

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的&#xff0c;这就意味着集合中不能出现重复的数据。 Redis 中集合是通过哈希表实现的&#xff0c;所以添加&#xff0c;删除&#xff0c;查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集…

百度主任架构师谭待:如何让不带团队的程序员负责重大项目?

演讲 | 谭待 整理 | 赵新龙、尾尾 谭待&#xff0c;百度主任架构师、百度搜索公司技术委员会联席主席。主要研究领域在分布式系统和搜索引擎&#xff0c;是百度BVC代理计算和Matrix私有云的主要设计者&#xff0c;两获百度最高奖。主持设计了百度新一代搜索架构&#xff0c;在…

Redis(七):Hash哈希数据类型详解

Redis hash 是一个 string 类型的 field 和 value 的映射表&#xff0c;hash 特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对&#xff08;40多亿&#xff09;。 实例&#xff1a; 127.0.0.1:6379> HMSET runoobkey name "redis tutorial"…

Chrome Dev Summit 2017参会笔记

作者 | 高磊 编辑 | 尾尾 为期两天的 Chrome Dev Summit 2017 于 10月23日~24日在美国旧金山举办。由于我们近期和Google的合作较多&#xff0c;对Google的动作也比较关注&#xff0c;所以受邀参加了这次的Chrome Dev Summit &#xff08;CDS&#xff09;。本文是我在现场做的…