springBoot2.3-基本介绍及入门案例

        本次学习雷丰阳springBoot(2.3版本)。建议先修ssm

一、SpringBoot基本介绍

        springBoot是当今最为流行的java开发框架。

        1、springBoot的底层是spring, 因此继承了spring的粘合其他框架的能力。

        2、本质上还是其他框架包括spring在工作 , springBoot起到一个整合其他框架,简化开发及配置的作用。

        3、springBoot高度的自动化,必定带来灵活度差的问题,所以需要在理解学习过目标框架(比如springMVC,myBatis)之后,在springBoot中做个性化的配置。

        

        

        spingBoot官网文档地址Spring Boot Reference Documentation , 官方文档中含有入门demo简述,一切用法。  

        出新版本,可以借助官方文档自学

        // springBoot版本迭代更新超快,需要随时关注大的版本变化

        //例如2.3升级到2.4,需要关注。 大的版本迭代

        //例如2.x升级到3.x 需要重点关注

二、SpringBoot的优点

  • Create stand-alone Spring applications
    • 创建独立Spring应用
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
    • 内嵌web服务器
    • //内置了Tomcat方便使用
  • Provide opinionated 'starter' dependencies to simplify your build configuration
    • 自动starter依赖,简化构建配置 
    • //springBoot的重要优点之一 , 我们选择了 webStart(网站开发场景)之后,它自动帮我们配置好 jar包, 并保证各个包的版本是可以协作的,省去了我们自己去一个个找jar包的烦恼。
  • Automatically configure Spring and 3rd party libraries whenever possible
    • 自动配置Spring以及第三方功能
    • //例如web开发,springBoot可以自动帮配置好 ssm 的三个配置文件,以及自动整合,还有配置web开发常用的功能
  • Provide production-ready features such as metrics, health checks, and externalized configuration
    • 提供生产级别的监控、健康检查及外部化配置
    • //方便的运维管理
  • Absolutely no code generation and no requirement for XML configuration
    • 无代码生成、无需编写XML

                spring5引入了响应式编程技术栈 reacticve stack 

三、时代背景 

3.1微服务

        将一个大型业务系统进行拆分,每个业务独立部署到服务器,各个业务间相互调用

3.2分布式

        由于业务之间独立部署,于是整个系统就变为了一个分布式的网络拓扑。产生一下问题

分布式的困难

  • 远程调用
  • 服务发现
  • 负载均衡
  • 服务容错
  • 配置管理
  • 服务监控
  • 链路追踪
  • 日志管理
  • 任务调度
  • ......

        分布式解决方案之一 , 即 springBoot + springCloud

3.3云原生

四、入门案例

        

0、系统要求

  • Java 8 & 兼容java14 .
  • Maven 3.3+
  • idea 2019.1.2+

1、创建一个java的MAVEN工程

2、配置pom.xml文件,继承父工程,引入场景

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>springBootHello</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
<!--继承父工程-->
<!--    固定写法,表示该项目使用了springBoot--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version></parent><!--添加web场景-->
<!--    springBoot会自动管理依赖,并自动配置--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies></project>

3、创建主程序(固定写法,springBoot从这里启动,相当于java中的main()方法)

// 声明Spring Boot应用的主类,springBoot从这里启动
@SpringBootApplication
public class MainApplication {public static void main(String[] args) {// 启动Spring Boot应用SpringApplication.run(MainApplication.class, args);}
}

4、编写业务 (默认配置的spring只会scan主程序所在的包下的注解)

@RestController
// @RestController封装了@Controller和@ResponseBody(代表直接返回给浏览器,而不是要跳转页面)两个注解
public class HelloController {@RequestMapping(value = "/hello")public String hello() {return "Hello, World!"; // 返回给前端的数据}
}

5、测试

 直接运行main方法,访问 localhost:8080/hello

五、简化配置

        在resource包下, 新建application.properties (不要写错)

        该文件可以配置你项目中的所有框架使用的配置信息,具体可在官方文档查看

        Common Application Properties

        配置  server.port=8888  //即配tomcat的端口号

        

六、简化部署       

        在pom.xml中配置这个插件,

即可以在打包时帮我们封装好各种jar,tomcat 的jar包(也叫fat jars).

可以拷贝到服务器,使用cmd  执行这个jar包即可。(即项目发布)

注意点:

  • 取消掉cmd的快速编辑模式

   <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

 

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

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

相关文章

uni-app page新建以及page外观配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

暗光增强——URetinex-Net网络推理测试

目录 一、URetinex-Net网络二、源码包三、测试3.1 修改参数3.2 测试结果 四、推理速度五、总结 一、URetinex-Net网络 URetinex-Net 设计了三个基于学习的模块&#xff0c;分别负责数据相关的初始化、高效的展开优化和用户指定的光照增强。由于 URetinex-Net 的推理速度非常快…

【温故而知新】vue运用之探讨下单页面应用(SPA)与多页面应用(MPA)

一、概念 1.单页面应用SPA(Single page application) Vue单页面应用是一种采用Vue.js框架开发的Web应用程序,它仅有一个HTML文件,通过前端路由实现页面的切换和渲染。与传统的多页面应用相比,Vue单页面应用在用户体验和开发效率方面有着明显的优势。 在Vue单页面应用中…

与擎创科技共建一体化“数智”运维体系,实现数字化转型

小窗滴滴小编获取最新版公司简介 前言&#xff1a; 哈喽大家好&#xff0c;最近分享的互联网IT热讯大家都挺喜欢&#xff0c;小编看着数据着实开心&#xff0c;感谢大家支持&#xff0c;小编会继续给大家推送。 新岁即将启封&#xff0c;我们一年一期的运维干货年末大讲也要…

Zookeeper-Zookeeper应用场景实战

1. Zookeeper Java客户端实战 ZooKeeper应用的开发主要通过Java客户端API去连接和操作ZooKeeper集群。 可供选择的Java客户端API有&#xff1a; ZooKeeper官方的Java客户端API。 第三方的Java客户端API&#xff0c;比如Curator。 ZooKeeper官方的客户端API提供了基本的操作…

OCP NVME SSD规范解读-4.NVMe IO命令-2

NVMe-IO-3&#xff1a; 由于设备具有掉电保护功能&#xff08;如Power Loss Protection&#xff0c;PLP&#xff09;&#xff0c;因此在以下情况下&#xff0c;性能不应降低&#xff1a; FUA&#xff08;Force Unit Access&#xff09;&#xff1a;是计算机存储设备中的一种命…

ubuntu22.04安装anacoda遇到的坑

这几天把用了3年的windows10换成了ubuntu22.04 各种环境都得配置&#xff0c;本文记录下遇到的坑。 1、anacoda在ubuntu上也可以用官方也提供了安装包&#xff0c;但是没有图形界面&#xff0c;需要以命令行的方式安装和运行配置 1.1 安装&#xff1a;官网下载后&#xff0c;…

List常见方法和遍历操作

List集合的特点 有序&#xff1a; 存和取的元素顺序一致有索引&#xff1a;可以通过索引操作元素可重复&#xff1a;存储的元素可以重复 List集合的特有方法 Collection的方法List都继承了List集合因为有索引&#xff0c;所以有了很多操作索引的方法 ublic static void main…

鸿蒙HarmonyOS-图表应用

简介 随着移动应用的不断发展&#xff0c;数据可视化成为提高用户体验和数据交流的重要手段之一。在HarmonyOS应用开发中&#xff0c;一个强大而灵活的图表库是实现这一目标的关键。而MPChart就是这样一款图表库&#xff0c;它为开发者提供了丰富的功能和灵活性&#xff0c;使得…

linux实用技巧:ubuntu18.04安装samba服务器实现局域网文件共享

Ubuntu安装配置Samba服务与Win10共享文件 Chapter1 Ubuntu18.04安装配置Samba服务与Win10共享文件一、什么是Samba二、安装Samba1、查看是否有安装samba2、安装samba 三、配置Samba服务1、创建共享目录&#xff08;以samba_workspaces为例&#xff09;2、为samba设置登录用户3、…

自激振荡电路笔记 电弧打火机

三极管相关 三极管的形象描述 二极管 简单求解&#xff08;理想&#xff09; 优先导通&#xff08;理想&#xff09; 恒压降 稳压管&#xff08;二极管plus&#xff09; 基础工作模块 理想稳压管的工作特性 晶体管之三极管(“两个二极管的组合” ) 电弧打火机电路 1.闭合开…

java go c++ 开源全文搜索引擎

Apache Lucene Java 全文搜索框架 许可证&#xff1a;Apache-2.0 开发语言&#xff1a;Java 官网&#xff1a;https://lucene.apache.org/ Apache Lucene 是完全用 Java 编写的高性能、功能齐全的全文检索引擎架构&#xff0c;提供了完整的查询引擎和索引引擎、部分文本分析引…

Observer观察者模式(组件协作)

观察者模式&#xff08;组件协作&#xff09; 链接&#xff1a;观察者模式实例代码 解析 目的 在软件构建过程中&#xff0c;我们需要为某些对象建立一种“通知依赖关系” ——一个对象&#xff08;目标对象&#xff09;的状态发生改变&#xff0c;所有的依赖对象&#xff0…

macos下转换.dmg文件为 .iso .cdr文件的简单方法

为了让镜像文件在mac 和windows平台通用, 所以需要将.dmg格式的镜像文件转换为.iso文件, 转换方法也非常简单, 一行命令即可 hdiutil convert /path/to/example.dmg -format UDTO -o /path/to/example.iso 转换完成后的文件名称默认是 example.iso.cdr 这里直接将.cdr后缀删…

【centos】【golang】安装golang

下载安装包 方法1&#xff1a; 打开 https://go.dev/dl/ &#xff1b;点击下载golang的安装包&#xff1b;再使用ssh传到centos上&#xff08;略&#xff09; 方法2&#xff1a;能使用Google就可以这样 wget https://dl.google.com/go/go1.21.5.linux-amd64.tar.gz解压安装包…

Linux驱动开发简易流程

推荐视频&#xff1a; 正点原子【第四期】手把手教你学 Linux之驱动开发篇 小智-学长嵌入式Linux&Android底层开发入门教程 能力矩阵 基础能力矩阵 熟悉c/c、熟悉数据结构 熟悉linux系统&#xff0c;Shell脚本&#xff0c;Makefile/cmake/mk 文件IO、多线程、竞争、并发…

FonePaw iOS Transfer for Mac: 让您的IOS设备数据无忧传输

在数字世界里&#xff0c;随着我们的生活与科技越来越紧密&#xff0c;数据传输成为了我们日常生活中的重要部分。尤其对于广大的苹果用户来说&#xff0c;如何方便、快速地传输数据成为了他们关注的焦点。今天&#xff0c;我要为大家介绍一款专门为Mac用户设计的IOS数据传输工…

【java爬虫】获取个股详细数据并用echarts展示

前言 前面一篇文章介绍了获取个股数据的方法&#xff0c;本文将会对获取的接口进行一些优化&#xff0c;并且添加查询数据的接口&#xff0c;并且基于后端返回数据编写一个前端页面对数据进行展示。 具体的获取个股数据的接口可以看上一篇文章 【java爬虫】基于springbootjd…

Android Studio配置国内镜像源和HTTP代理/解决:Android Studio下载gradle速度慢的问题

&#xff08;方案一&#xff09;Android Studio配置国内镜像源和HTTP代理 一、配置国内镜像源/依赖库 1.1 打开项目的setting.gradle.kts文件 配置进去 pluginManagement {repositories {maven { urluri ("https://www.jitpack.io")}maven { urluri ("https:…

ElasticSearch 文档操作

创建文档 指定id // 无则插入&#xff0c;有则覆盖&#xff08;覆盖的逻辑是先删除&#xff0c;再插入&#xff09; PUT /<target>/_doc/<_id> // 无则插入&#xff0c;有则覆盖 POST /<target>/_doc/<_id> // 无则插入&#xff0c;有则报错 PUT /&l…