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.hqwc.cn/news/310639.html

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

相关文章

【进阶】【JS逆向爬虫】【2.JavaScript 基础语法】JS代码导入方式

JS逆向爬虫 JS代码导入方式1.行内式写法2.内嵌式&#xff08;建议写在</body>之前&#xff09;3.外部式&#xff08;建议写在</head>之前&#xff09; JS代码导入方式 1.行内式写法 可以将单行或少量 JS 代码写在HTML标签的事件属性中&#xff08;以 on 开头的属…

[设计模式 Go实现] 创建型~简单工厂模式

go 语言没有构造函数一说&#xff0c;所以一般会定义NewXXX函数来初始化相关类。 NewXXX 函数返回接口时就是简单工厂模式&#xff0c;也就是说Golang的一般推荐做法就是简单工厂。 代码实现 package simplefactoryimport "fmt"//API is interface type API interf…

在Spring Cloud中使用Ribbon完成一个简单的负载均衡demo

Spring Cloud系列断更了有一段时间了&#xff0c;这段时间最近都在忙着项目上的事&#xff0c;天天修复bug以及调整需求&#xff0c;反正各种操劳&#xff0c;了解业务需求&#xff0c;然后开发相关功能&#xff0c;很久都没碰Spring Cloud系列的相关文章了&#xff0c;最近回头…

基于虚拟机ubuntu的linux和shell脚本的学习,以及SSH远程登陆实战

简介 特点 是一款操作系统,跟windows,macos一样,有下面的特点 简单和高效,一切皆文件,所有配置都通过修改文件解决,不需要繁琐的权限和设置 权限高,把所有细节都交给用户,可完全自定义 安全,所有程序只有自己执行才会启动 分类 1、debian系主要有Debian&#xff0c;Ubun…

年度总结|存储随笔2023年度最受欢迎文章榜单TOP15-part2

TOP11&#xff1a;PCIe在狂飙&#xff0c;SAS存储之路还有多远&#xff1f; 随着科技的飞速发展&#xff0c;固态硬盘&#xff08;SSD&#xff09;已经成为现代计算机系统中不可或缺的一部分。它以其出色的性能和可靠性&#xff0c;改变了我们对于存储设备的期待。当前业内SSD广…

git 常用操作合集

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑混合需求不确定性的电力-交通耦合网络最优定价策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主的专栏栏目《论文与完整程序》 这个标题涉及到电力和交通两个领域的耦合网络以及在考虑混合需求不确定性情况下制定最优定价策略的问题。 首先&#xff0c;"电力-交通耦合网络"…

c++ 简单实用万能异常捕获

多层捕获异常&#xff0c;逐渐严格。并打印出错信息和位置&#xff1a;哪个文件&#xff0c;哪个函数&#xff0c;具体哪一行代码。 #include <stdexcept> // 包含标准异常类的头文件try {int a 2 / 0; }catch (const std::runtime_error& e) {// 捕获 std::runt…

搜索算法和推荐算法、广告算法的区别

广告和推荐算法的技术框架比较相似&#xff0c;在线计算时都分为召回&#xff08;candidates generating&#xff09;和排序&#xff08;candidates ranking&#xff09;两个阶段&#xff08;这似乎是计算资源有限条件下&#xff0c;所有检索问题的通用架构&#xff09;。 在某…

行人重识别(ReID)基础知识入门

这里写目录标题 1、ReID技术概述1.1 基本原理1.2 实现流程1.3 重识别存在的技术挑战 2、训练数据格式介绍 1、ReID技术概述 1.1 基本原理 ReID&#xff0c;全称Re-identification&#xff0c;目的是利用各种智能算法在图像数据库中找到与要搜索的目标相似的对象。ReID是图像检…

【数据结构】栈和队列(栈的基本操作和基础知识)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 目录 前言 栈 栈的概念和结构 栈的实现 ​…

nodejs+vue+ElementUi摄影预约服务网站系统91f0v

本系统提供给管理员对首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;员工管理&#xff0c;摄影套餐管理&#xff0c;套餐系列管理&#xff0c;客片欣赏管理&#xff0c;摄影预约管理&#xff0c;摄影订单管理&#xff0c;取片通知管理&#xff0c;摄影评价管理&…