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番外篇(一):使用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(二):Redis入门与性能测试

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

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

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

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

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

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

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

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

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

Chrome Dev Summit 2017参会笔记

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

九个案例简述Web设计原则:简洁清晰

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

大型网站HTTPS 实践(一)| HTTPS 协议和原理

作者 | 百度HTTPS技术支持团队 百度已经上线了全站 HTTPS 的安全搜索&#xff0c;默认会将 HTTP 请求跳转成 HTTPS。本文就着重介绍了 HTTPS 协议涉及到的重要知识点和平时不太容易理解的盲区&#xff0c;希望能对大家理解 HTTPS 协议有帮助。百度 HTTPS 性能优化涉及到大量内容…

大型网站HTTPS实践:HTTPS对性能的影响

作者 | 百度HTTPS技术支持团队 百度已经上线了全站 HTTPS 的安全搜索&#xff0c;默认会将 HTTP 请求跳转成 HTTPS。百度 HTTPS性能优化涉及到大量内容&#xff0c;从前端页面、后端架构、协议特性、加密算法、流量调度、架构和运维、安全等方面都做了大量工作。本系列的文章将…

PWA将带来新一轮大前端技术洗牌?

作者 | 彭星 编辑 | 尾尾 一、回顾历史&#xff1a;移动时代之初&#xff0c;Web遭遇两大枷锁 Web 在移动时代遭遇两大枷锁1.Web 在移动时代遭遇两大枷锁 当 Web 自信满满&#xff0c;步入移动时代之时&#xff0c;它还没有做好充足的准备。 回顾 2014 到 2015 年那段时间…

高级精致智能快捷的Web设计原则案例

作者 | 百度搜索用户体验中心 《Web设计指南》分为设计原则、基础规范两方面主要内容&#xff0c;同时会提供相应的实际案例及资源下载。关注OpenWeb开发者&#xff0c;回复“设计指南”&#xff0c;即可获取已发布资源。 设计原则之高级精致 简洁并不等于粗糙没有细节&#x…

Linux系列(一):简介与目录结构

1、Linux简介 1.1、起源 Linux出现于1991年&#xff0c;是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成 1.2、Linux特点 多用户&#xff0c;多任务&#xff0c;丰富的网络功能&#xff0c;可靠的系统安全&#xff0c;良好的可移植性&#xff0c;…

大型网站的HTTPS实践:基于协议和配置的优化

作者 | 百度HTTPS技术支持团队 百度已经上线了全站 HTTPS 的安全搜索&#xff0c;默认会将 HTTP 请求跳转成 HTTPS。百度 HTTPS性能优化涉及到大量内容&#xff0c;在前端页面、后端架构、协议特性、加密算法、流量调度、架构和运维、安全等方面都做了大量工作。本系列的文章将…

Hadoop的安装及配置

PS:最新安装教程请参考Hadoop的安装与配置&#xff08;设置单节点群集&#xff09;详细教程 1、Hadoop安装前准备工作&#xff1a; 在开始Hadoop安装与配置之前&#xff0c;需要准备的环境&#xff1a;Linux系统、配置JDK环境变量。 2、安装 我们可以到Apache Hadoop的官网ht…

在 PWA 中使用 App Shell 模型提升性能和用户感知体验

作者&#xff5c;潘宇琪 编辑&#xff5c;Daisy 在构建 PWA 应用时&#xff0c;使用 App Shell 模型能够在视觉和首屏加载速度方面带来用户体验的提升。另外&#xff0c;在配合 Service Worker 离线缓存之后&#xff0c;用户在后续访问中将得到快速可靠的浏览体验。 在实践过…

【转】超酷的 mip-infinitescroll 无限滚动(无限下拉)

写在前面 无限滚动技术&#xff08;又叫做无限下拉技术&#xff09;被广泛应用于新闻类&#xff0c;图片预览类网站。对用户来讲&#xff0c;使用无限滚动的页面有源源不断的信息可以预览&#xff0c;增加用户在页面的停留时长。技术上原理也很简单&#xff0c;在页面加载时加…