当前位置: 首页 > news >正文

SpringBoot-入门介绍

几个概念

1. SpringBoot:官网文档

  • 能快速创建出生产级别的Spring应用
  • 是整合Spring技术栈的一站式框架
  • 是简化Spring技术栈的快速开发脚手架

2. SpringBoot优点

  • 创建独立Spring应用
  • 内嵌web服务器,默认使用 Tomcat
  • 自动starter依赖,简化构建配置,防止各jar包冲突
  • 自动配置Spring以及第三方功能
  • 提供生产级别的监控、健康检查及外部化配置
  • 无代码生成、无需编写XML

3. 微服务概念

  • 微服务是一种架构风格
  • 一个应用拆分为一组小型服务
  • 每个服务运行在自己的进程内,也就是可独立部署和升级
  • 服务之间使用轻量级HTTP交互
  • 服务围绕业务功能拆分
  • 可以由全自动部署机制独立部署
  • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

4. 分布式的困难:使用SpringBoot + SpringCloud解决,以下就是微服务的组件

  • 远程调用:一般使用http进行服务交互
  • 服务发现:看哪些服务是可用的
  • 负载均衡:按照配置的算法,合理的将请求分配给不同的服务器
  • 服务容错:各种错误情况下的处理方式
  • 配置管理:配置中心,修改配置让服务们自己同步
  • 服务监控:监控多个服务以及云平台的资源消耗和健康状况
  • 链路追踪:
    • 一个复杂的业务流程可能需要连续调用多个微服务,我们需要记录一个完整业务逻辑涉及的每一个微服务的运行状态,
    • 再通过可视化链路图展现,帮助软件工程师在系统出错时分析解决问题
    • 常见的解决方案有Zipkin,SkyWalking。
  • 日志管理:
    • 微服务架构默认将应用日志分散保存在每一个微服务节点上,当系统进行用户行为分析、数据统计时必须收集所有节点日志数据,非常不方便。
    • 这时候我们需要一个独立的日志平台,收集所有节点的日志数据并可方便对其进行汇总分析,然后进行可视化展示
    • 常见的解决方案有
      • ELK(Elasticsearch+Logstash+Kibana)
      • EFK(Elasticsearch+Fluentd+Kibana)
  • 任务调度:基于给定的时间点,给定的时间间隔或者给定执行次数自动的执行任务

5. 上云的困难:Cloud Native

  • 服务自愈:其中一个服务出现错误,监控程序发现后进行复原
  • 弹性伸缩:根据不同的性能需求分配更多的服务器
  • 服务隔离:服务之间不相互影响
  • 自动化部署:部署的过程中所有的操作全部自动化,无需人工手工干预
  • 灰度发布:同样的服务有多台服务器运行,先把服务部署在其中一两台上看运行效果,没有问题了再慢慢全部升级
  • 流量治理:控制流量

HelloWorld

1. pom.xml配置

  • 引入依赖
<!--spring-boot-starter-parent里面包含很多依赖的版本号
-->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version>
</parent><dependencies><!--web项目的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>
  • 部署运行
<build><plugins><!--如果添加插件启动时报错可以尝试在<plugin>标签内部添加设置版本号的version标签版本号要与Spring版本号一致--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.4.RELEASE</version></plugin></plugins>
</build>

2. 创建主程序

/*** 主程序类* @SpringBootApplication:这是一个SpringBoot应用*/
@SpringBootApplication
public class MainApplication {public static void main(String[] args) {SpringApplication.run(MainApplication.class,args);}
}

3. 配置文件:在resources下application.properties或者application.yml

server.port=8888

4. 业务类

@RestController
public class HelloController {@GetMapping("/hello")public String hello(){return "Hello,Spring Boot 3!";}
}

5. 项目打成jar包运行

  • maven打包命令:mvn clean package -Dmaven.test.skip=true
  • 在maven执行打包后的target文件夹下打开cmd命令窗口输入 java -jar <打包文件名> 即可在cmd命令窗口中启动spring boot项目,浏览器输入地址访问
  • 注意:若cmd窗口开启了【快速编辑模式】无法启动springboot项目
  • 取消方法:右键cmd控制台的窗口上方标题区域打开【属性】--【选项】取消勾选【快去编辑模式】

5. 修改默认jar版本

<!--	查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。在当前项目pom.xml里面重写配置
-->
<properties><mysql.version>5.1.43</mysql.version>
</properties>

6. 默认包结构

  • 主程序类所在包及其下面的所有子包里面的组件都会被默认扫描进来
  • springBoot启动程序的目录一定要在controller等目录的至少上一级,或者使用注解
@SpringBootApplication(scanBasePackages="com.my.controller")@SpringBootApplication
等同于
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("主程序所在包")
http://www.dtcms.com/a/490962.html

相关文章:

  • 如何推动AI技术在企业管理中的商业化落地?
  • 淘宝网站建设的策划书产品软文案例
  • 复制带随机指针的链表
  • Promise 与 async/await
  • win11 字体变宽问题
  • 最好的做网站机械加工网站色彩搭配
  • Pytorch Yolov11目标检测+Android部署 留贴记录
  • iis 发布网站 404archlinux+wordpress
  • leetcode 2598. 执行操作后的最大 MEX 中等
  • SuperMap iObject Java实现倾斜数据预处理
  • 逻辑方阵(Logical Square)解说
  • Vue与React中动态导入的原理及实现差异解析
  • 有一个网站自己做链接获取朋友位置传媒公司属于什么行业类型
  • 服饰类电商网站建设策划昆山vi设计
  • aben.co微端侧模型价格实惠的服务商
  • 网站开发思维导图内容如何做一个单页面的网站
  • 【Qt】7.信号和槽_connect函数用法(2)
  • 网站的建设流程具体有哪些哪个合肥seo好
  • 大连公司网站建设站点与网站有什么区别
  • 高压混动救援的 “及时雨”:XRC-3363 系列救援充电器实操解析与安全要点
  • 玛哈特激光落料线:一条会“思考”的钢铁流水线
  • 《爬虫进阶之路:从模拟浏览器到破解动态加载的实战指南》
  • 现在做个人网站上海发布最新情况
  • 网站漂浮图片代码怎样把自己的网站上传
  • 如何做微网站社交电商怎么做
  • 离线安装NetData:高效监控服务器指南
  • 学习笔记-eventpp库
  • uni-app Vue 项目的规范目录结构全解
  • 在线预约导游|基于SSM+vue的在线预约导游系统(源码+数据库+文档)
  • 网站你懂我意思正能量免费网站推广策划的流程