当前位置: 首页 > 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.rkmt.cn/news/48299.html

相关文章:

  • Java算法题常用函数
  • 基于粒子群优化(PSO)算法的图像配准MATLAB实现
  • 2025年11月乳清蛋白粉产品推荐榜:纽特舒玛领衔五强对比排行
  • 2025年口碑好的除四害用户最信赖榜
  • 2025年11月熬夜急救产品推荐评测:五款精华熬夜修护榜
  • 2025年北京医疗事故案件律师权威推荐榜单:医疗侵权案/医疗事故鉴定案/医疗事故赔偿案律师团队精选
  • 领嵌iLeadE-588智能网关设备物联网应用中重要的设备
  • 2025年质量好的专利评估高信赖度企业
  • Python代码规范:如何写出符合PEP8的代码
  • OpenCV Python 绑定:原理与实战 - 教程
  • 【转载】ACM MM 投稿论文模板修改成投稿模式
  • 禅道本地环境搭建
  • Python 列表List 简介
  • 智能制造与AI人工智能落地
  • 2025年专业的营销短信平台实力供应商推荐榜
  • 2025年专业的注册公司高评价服务榜
  • 关于AT32部分芯片带有SPIM,如何开启外部flash和SPIM驱动的代码分享
  • 2025东莞食材配送/生鲜食材/食堂配送厂家推荐广东山农农业集团,新鲜直达服务优!
  • 2025年有实力的物流热销口碑榜
  • 2025东莞蔬菜/生鲜/食材配送推荐,广东山农农业集团食堂专供新鲜直达
  • 2025年别墅供暖厂家权威推荐榜单:斯密锅炉/别墅供暖方案/联排别墅供暖源头厂家精选
  • 梯度下降的学习率与批大小
  • 2025年可靠的西铁城机床代理商用户推荐榜
  • 习题解析之:本月天数
  • C4D 2026.0 发布!渲染提速 40%,千万面场景流畅拿捏
  • 2025年优质的云计算就业岗位高薪就业推荐
  • 私有部署|基于Ansible的运维自动化作业平台 - ops
  • HTTP请求在网络中传输的完整路径
  • Python篇】Python基础–Python基本操作
  • 2025年评价高的轩恩档案管理系统行业应用解决方案推荐榜