当前位置: 首页 > 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配置

  • 引入依赖

org.springframework.bootspring-boot-starter-parent2.3.4.RELEASE

org.springframework.bootspring-boot-starter-web
  • 部署运行
org.springframework.bootspring-boot-maven-plugin2.3.4.RELEASE

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版本


5.1.43

6. 默认包结构

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

相关文章:

  • 2025年11月炒股开户券商排行:五家资质全维度对比评价
  • Java算法题常用函数
  • 基于粒子群优化(PSO)算法的图像配准MATLAB实现
  • 2025年11月乳清蛋白粉产品推荐榜:纽特舒玛领衔五强对比排行
  • 2025年口碑好的除四害用户最信赖榜
  • 数字无线电系统的结构分类
  • 2025年11月北京继承律师排行:家事继承案件高胜率数据对比
  • Flink 的 RocksDB 状态后端在 vivo 的实践
  • 2025年11月防腐木凉亭厂家推荐榜:五强口碑评测与对比排行
  • 2025年11月熬夜急救产品推荐评测:五款精华熬夜修护榜
  • TLS1.3协议分析(2)
  • 2025年北京医疗事故案件律师权威推荐榜单:医疗侵权案/医疗事故鉴定案/医疗事故赔偿案律师团队精选
  • 2025年靠谱的生态红茶厂家最新权威推荐榜
  • 2025年火力发电教学模型生产厂家权威推荐榜单:教学发电模型/核电厂模型/港口动态沙盘模型源头厂家精选
  • 2025年中国十大WMS仓库管理系统权威排名
  • 2025年深圳子女抚养权律师权威推荐榜单:股权分割/离婚房产/继承律师服务专家精选
  • 领嵌iLeadE-588智能网关设备物联网应用中重要的设备
  • 2025年质量好的帆布布袋定制定制定做
  • 2025年优质的离婚财产分割律师高评价榜
  • 分类样本不平衡问题
  • 2025年优质的郑州注册公司行业权威推荐
  • 家用洗地机哪种好用?2025年度最新TOP榜实测全解及选购全攻略
  • 2025年质量好的专利评估高信赖度企业
  • 2025年有实力青年鸡高评价榜
  • 2025年深圳股权分割律师权威推荐榜单:离婚房产/子女抚养权/继承律师服务专家精选
  • 2025年可靠的建筑业体系认证三体系认证服务实力榜
  • 2025年口碑好的陕西白水苹果采购首选榜
  • 2025项目管理软件测评指南:11款海内外系统排名及选购建议
  • 2025年深圳继承律师权威推荐榜单:婚姻/股权分割/离婚房产律师团队精选
  • Python代码规范:如何写出符合PEP8的代码