SpringCloud学习——了解SpringBoot

SpringBoot 与 SpringCloud的版本对应详细版 spring-cloud-dependencies 版本列表可查看:spring-boot-starter-parent 版本列表可查看:版本对应关系大版本对应:| — | — || Angel版本 | 兼容Spring Boot 1.2.x || Brixton版本 | 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x || Camden版本 | 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x | 阅读详情



基本介绍

概念

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications >that you can “just run”.
We take an opinionated view of the Spring platform and third-party libraries so you can get >started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

翻译一下:

Spring Boot你只需要“run”就可以非常轻易的构建独立的、生产级别的spring应用。
我们为spring平台和第三方依赖库提供了一种固定化的使用方式,使你能非常轻松的开始开发应用程序。大部分Spring Boot应用只需要很少的配置。


为什么要学习SpringBoot

java一直被人诟病的一点就是臃肿、麻烦。当我们还在辛苦的搭建项目时,可能Python程序员已经把功能写好了,究其原因主要是两点:

  • 复杂的配置
    项目各种配置其实是开发时的损耗, 因为在思考 Spring 特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。
  • 混乱的依赖管理
    项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这也是件棘手的问题。并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。

而SpringBoot让这一切成为过去!


SpringBoot的主要特征

Spring Boot 主要特征是:

  • 创建独立的spring应用程序
  • 直接内嵌tomcat、jetty和undertow(不需要打包成war包部署)
  • 提供了固定化的“starter”配置,以简化构建配置
  • 尽可能的自动配置spring和第三方库
  • 提供产品级的功能,如:安全指标、运行状况监测和外部化配置等
  • 绝对不会生成代码,并且不需要XML配置

详解

SpringBoot父工程

SpringBoot提供了一个名为spring-boot-starter-parent的工程,里面已经对各种常用依赖(并非全部)的版本进行了管理,当以该工程为父工程时我们不需要对版本问题过多的关注,直接引入坐标即可!

 <!-- 所有的springboot的工程都以spring父工程为父工程 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
    </parent>

SpringBoot启动器

为了让SpringBoot帮我们完成各种自动配置,我们必须引入SpringBoot提供的自动配置依赖,我们称为启动器。spring-boot-starter-parent工程将依赖关系声明为一个或者多个启动器,我们可以根据项目需求引入相应的启动器,这里引入web启动器

//这里并没有提供version版本信息,因为在父工程中已经声明版本号了。
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

@EnableAutoConfiguration

官网说明:

Enable auto-configuration of the Spring Application Context, attempting to guess and configure beans that you are likely to need. Auto-configuration classes are usually applied based on your classpath and what beans you have defined.

翻译:

开启spring应用程序的自动配置,SpringBoot基于你所添加的依赖和你自己定义的bean,试图去猜测并配置你想要的配置。比如我们引入了spring-boot-starter-web,而这个启动器中帮我们添加了tomcat、SpringMVC的依赖。此时自动配置就知道你是要开发一个web应用,所以就帮你完成了web及SpringMVC的默认配置了!

SpringBoot内部对大量的第三方库或Spring内部库进行了默认配置,这些配置是否生效,取决于我们是否引入了对应库所需的依赖,如果有那么默认配置就会生效。
所以,当使用SpringBoot构建一个项目,只需要引入所需依赖,配置可以交给SpringBoot处理。


@ComponentScan

在这里插入图片描述
大致意思:

spring框架除了提供配置方式的注解扫描<context:component-scan />,还提供了注解方式的注解扫描@ComponentScan。通过basePackageClasses或者basePackages属性来指定要扫描的包。如果没有指定这些属性,那么将从声明这个注解的类所在的包开始,扫描包及子包


@SpringBootConfiguration

在这里插入图片描述

通过这段我们可以看出,在这个注解上面,有一个@Configuration注解。通过注释阅读我们知道:这个注解的作用就是声明当前类是一个配置类,然后Spring会自动扫描到并添加@Configuration的类,并且读取其中的配置信息。而@SpringBootConfiguration是来声明当前类是SpringBoot应用的配置类.


@SpringBootApplication

使用@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan注解申明引导类相对麻烦,SpringBoot提供了一个集成三个特性的注解@SpringBootApplication
在这里插入图片描述


### 默认配置原理 #### SpringBoot的属性注入 在SpringBoot中,提供了一种新的属性注入方式,支持各种java基本数据类型及复杂类型的注入。

1)新建JdbcProperties,用来进行属性注入:
在这里插入图片描述
代码:

application.properties 配置文件

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
    private String url;
    private String driverClassName;
    private String username;
    private String password; 
    // getters 和 setters 省略
}
  • 在类上通过@ConfigurationProperties注解声明当前类为属性读取类
  • prefix="jdbc"读取属性文件中,前缀为jdbc的值。
  • 在类上定义各个属性,名称必须与属性文件中jdbc.后面部分一致,并且必须具有getter和setter方法
  • 不需要指定属性文件的地址,SpringBoot默认会读取文件名为application.properties的资源文件

2)在JdbcConfiguration中使用这个属性:

  • 通过@EnableConfigurationProperties(JdbcProperties.class)来声明要使用JdbcProperties这个类的对象
  • 然后通过以下方式在JdbcConfiguration类中注入JdbcProperties:
  1. @Autowired注入
 @Configuration
  @EnableConfigurationProperties(JdbcProperties.class)
  public class JdbcConfiguration {
  
      @Autowired
      private JdbcProperties jdbcProperties;
  
      @Bean
      public DataSource dataSource() {
          DruidDataSource dataSource = new DruidDataSource();
          dataSource.setUrl(jdbcProperties.getUrl());
          dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
          dataSource.setUsername(jdbcProperties.getUsername());
          dataSource.setPassword(jdbcProperties.getPassword());
          return dataSource;
      }
  
  }
  1. 构造函数注入
 @Configuration
  @EnableConfigurationProperties(JdbcProperties.class)
  public class JdbcConfiguration {
  
      private JdbcProperties jdbcProperties;
  
      public JdbcConfiguration(JdbcProperties jdbcProperties){
          this.jdbcProperties = jdbcProperties;
      }
  
      @Bean
      public DataSource dataSource() {
          // 略
      }
  
  }
  1. @Bean方法的参数注入
@Configuration
  @EnableConfigurationProperties(JdbcProperties.class)
  public class JdbcConfiguration {
  
      @Bean
      public DataSource dataSource(JdbcProperties jdbcProperties) {
          // ...
      }
  }

更优雅的注入方式

如果一段属性只有一个Bean需要使用,我们无需将其注入到一个类(JdbcProperties)中。而是直接在需要的地方声明即可

@Configuration
public class JdbcConfiguration {
    
    @Bean
    // 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中
    @ConfigurationProperties(prefix = "jdbc")
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        return dataSource;
    }
}

直接把@ConfigurationProperties(prefix = “jdbc”)声明在需要使用的@Bean的方法上,然后SpringBoot就会自动调用这个Bean(此处是DataSource)的set方法,然后完成注入。使用的前提是:该类必须有对应属性的set方法!


总结

SpringBoot提供了默认配置,而默认配置生效的条件一般有两个:

  • 引入了相关依赖
  • 自身没有配置

1)启动器

如果不想配置,只需要引入依赖即可,而依赖版本不用过多关注,因为只要引入了SpringBoot提供的stater(启动器),就会自动管理依赖及版本了。
因此,使用SpringBoot第一件事就是找到对应的启动器。

2)全局配置

SpringBoot的默认配置,都会读取默认属性,而这些属性可以通过自定义application.properties文件来进行覆盖。这样虽然使用的还是默认配置,但是配置中的值是由我们自定义的。
因此,使用SpringBoot的第二件事情,就是通过application.properties来覆盖默认属性值,形成自定义配置。

【网格生成】Gmsh快速入门教程 --1.图形化界面使用 初探 Gmsh软件的主界面如下图所示。通过点击菜单“File” -> "Open"可选择打开已经存在的几何模型或网格文件,初次使用可选择tutorial目录下的t1.geo文件。打开后效果如图所示,t1.geo描述的是一个长方体。 接下来依次尝试左侧菜单栏的功能:Geometry(几何)、Mesh(求解器)。Solver模块需依赖外置求解器,不在本文介绍范围内。 Geometry 该菜单下是与几何相关的功能,如新增一个点/面、体,移动一个体等,具体功能很多可以在后续使用中逐渐尝试学习。本文仅介绍几个 阅读详情

相关推荐

随机变量序列 收敛 检验 matlab,利用MATLAB验证样条插值的收敛性

问题提出多项式插值是不收敛的,即插值的节点多,效果不一定就好。对样条函数插值又如何呢?理论上证明样条插值的收敛性是比较困难的,但通过本实验可以验证这一理论结果。.实验内容请按一定的规则分别选择等距或者非等距的插值节点,并不断增加插值节点的个数。考虑实验2.1中的函数或选择其他你有兴趣的函数。(中函数)。实验要求(1)随节点个数增加,比较被逼近函数和样条插值函数误差的变化情况。分析所得结果并与拉格朗...

weixin_30895121的博客 4735

springCloud从零开始

springCloud从零开始

大王叫我来打死程序猿 401

保姆级教程:在LKD3588开发板上为RK3588添加SC2210摄像头驱动(含完整DTS配置)

本文提供了一份详细的教程,指导如何在LKD3588开发板上为RK3588处理器添加SC2210摄像头驱动,包括完整的DTS配置和内核编译步骤。教程涵盖了环境准备、驱动文件添加、DTS配置详解、内核编译与烧录、驱动测试以及常见问题排查,帮助开发者快速实现SC2210传感器在RK3588平台上的集成与优化。

weixin_42641741的博客 480

Spring Boot整合Spring Cloud实现微服务架构学习(一)

  本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接出处:https://blog.youkuaiyun.com/qq_3076499,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 如果对您有帮助 ,请多多支持.多少都是您的心意与支持,一分也是爱,再次感谢!!!打开支付宝首页搜“556723462”领红包,领到大红包的小伙伴...

从放弃到开始 2万+

图像传感器与信号处理——SFR算法/ISO 12233解读

图像传感器与信号处理——SFR算法图像传感器与信号处理——SFR算法1. 前言2. 基于视觉的分辨率测量方法3. 基于边界的SFR算法4. 基于正弦波的SFR算法 图像传感器与信号处理——SFR算法 SFR的全称是Spatial Frequency Response,空间频率响应。介绍SFR算法的参考文献主要是ISO 12233这篇英文文档。和读一般的论文感觉不同,文档读起来更加晦涩难懂,可能是因...

weixin_44580210的博客 1万+

网闸的基本配置

本文详细介绍了网闸的基本配置流程,包括物理连接与初始化、网络基础配置、核心数据交换策略配置、安全增强配置、管理与运维以及测试验证等关键步骤。网闸通过在物理隔离环境下建立"数据摆渡通道",实现特定业务数据的安全交换。配置时应遵循最小化、单向化、内容控制和审计原则,确保只开放必要通道,优先采用单向传输,进行内容安全检查并记录操作日志。不同厂商网闸的配置界面可能不同,但核心逻辑是相通的。

qq_39980997的博客 1843

SpringBoot,SpringCloud入门到精通最简单教程

Spring Boot特点1. 创建独立的Spring应用程序2. 嵌入的Tomcat,无需部署WAR文件3. 简化Maven配置4. 自动配置Spring5. 提供生产就绪型功能,如指标,健康检查和外部配置6. 绝对没有代码生成和对XML没有要求配置废话少说上教程:《史上最简单的 SpringBoot 教程》系列:spring boot(1)-简单搭建 Hello Worldspring boo...

M_Jack的博客 4338

麒麟系统下的多媒体革命:VLC在kylinV10上的性能优化与调试技巧

本文详细介绍了在麒麟kylinV10系统上优化VLC多媒体播放性能的实战技巧,特别针对飞腾FT-2000/4硬件平台。从源码编译调优到硬件加速配置,提供全面的性能提升方案,帮助开发者在国产操作系统上构建高效媒体播放环境。

weixin_29168675的博客 457

spring boot和springCloud学习连接

先说明 :springboot是springcloud的基础,先学习springboot后学习springCloud springBoot:https://blog.youkuaiyun.com/forezp/column/info/15397/2 springCloud:https://blog.youkuaiyun.com/forezp/article/details/70148833 看D版本即可 ...

进化的深山猿 1648

MOSFET导通电阻Rdson全解析:物理组成、公式推导与工程选型要点

在功率电子设计中,MOSFET作为核心开关器件,其导通电阻Rdson直接决定导通损耗与系统效率。从半导体物理角度看,Rdson并非单一固定值,而是由源极电阻、沟道电阻、累积层电阻、JFET区电阻、漂移区电阻及衬底电阻等多个分量串联而成,并随栅极驱动电压、结温以及击穿电压等级发生显著变化。理解Rdson的物理来源与数学表达,有助于工程师在低压大电流与高压小电流等不同场景中合理选型、优化驱动电压并准确估算热损耗。文章从沟道电阻公式出发,深入剖析耐压与导通电阻的物理矛盾、温度系数的影响规律,并给出数据手册参数的正

weixin_29163857的博客 195

YOLO26改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 211

SpringBoot 和 SpringCloud 有什么区别,一起来学习了解他们

Spring Boot和Spring Cloud是两个非常流行的Java开发框架,它们都是由Spring Framework开发的,但是它们的定位和功能有所不同。Spring Boot的定位是快速构建可运行的应用程序,它提供了自动配置、嵌入式Web服务器、安全性、日志、监控等常用功能,使得开发者可以快速构建出一个可运行的应用程序。而Spring Cloud的定位是构建分布式系统,它提供了服务发现、负载均衡、断路器、配置中心等功能,使得开发者可以更加方便地构建出高可用、可扩展、可维护的分布式系统。

Java徐师兄的博客 2865

[RK3568 Android11] 开发之默认授予系统预置的APP权限

目录 一、系统预置的APP权限 二、默认授予系统预置的APP权限 一、系统预置的APP权限 1、在打开系统预置的APP时,都会弹窗提示,并且需要人工确定授予权限; 2、有些客户对定制有需求,需要系统预置的APP自动默认授予权限; 二、默认授予系统预置的APP权限 注意此方法只对系统预置的APP起效果,后期手动安装的APP无效; 修改文件: frameworks/base/services/core/java/com/android/server/pm/per...

~未来可期~ 5059

springboot、springcloud学习记录

springboot、springcloud学习记录1、方志朋的csdn博客,文章篇幅少比较容易理解springboot:csdn博客地址列表:http://blog.youkuaiyun.com/forezp/article/category/6830966/2第一篇博客地址:http://blog.youkuaiyun.com/forezp/article/details/70341651对应的GitHub资源地址:...

careless_2018的博客 256

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

学习springboot,springcloud

向大佬学习 springboot http://www.ityouknow.com/spring-boot.html springcloud http://www.ityouknow.com/spring-cloud.html

王一的博客 112

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

一举通关,Spring+SpringBoot+SpringCloud全攻略,是真的全面

Spring Boot 和 Spring Cloud 已成为 Spring 生态中不可或缺的一环。想成为一名合格的 Java 后端工程师,Spring Framework、Spring Boot、Spring Cloud 这三者必须都牢牢掌握。

m0_72011831的博客 337

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

一、springcloud 入门——笔记

如果您现有的Spring Boot应用程序想要将Spring Cloud添加到该应用程序,则第一步是确定您应该使用的Spring Cloud版本。您在应用中使用的版本将取决于您使用的Spring Boot的版本。,选择您的Spring Boot版本和要使用的Spring Cloud项目。生成项目时,这会将相应的Spring Cloud BOM版本添加到您的Maven / Gradle文件中。跟尚硅谷大佬(阳哥)一起学 springcloud。著作权归作者所有,转载或内容合作请联系作者。

qq_24428851的博客 669

SpringCloud介绍

我们来学习一下SpringCloud,SpringCloud分为两个阶段,一个是初级阶段,一个是高级阶段, 先做一个SpringCloud初级阶段的介绍,SpringCloud一共分为五个章节,第一章节我们主要讲解 SpringCloud微服务架构介绍,对于不同服务架构上的区别,比如我们会讲解单体架构,还有微服务架构, 还有什么是MVC,RPC,SOA,微服务架构与他们之间的区别,然后我们...

Leon_Jinhai_Sun的博客 190

关于学习springboot和springcloud的很不错的教程

  近日,逐步开始学习了springboot和springcloud。本以为很简单,但是随着学习的深入,发现其中有很多地方都需要认真揣摩。凡事都需要循序渐进,有一个好的开端就是成功的一半。于是在浩瀚的网络中各种搜索,希望能够有所收获。功夫不负有心人,果然有很多优秀的文章,通过阅读获益匪浅。这里我强烈推荐一个系列教程,可以说非常适合我这种菜鸟学习。以下就是这位大神关于springboot和sprin...

weixin_30332705的博客 561

SpringCloud学习笔记(一)

---------------------------------------------------------------------2018-08-30-----------------------------------------------------------------------------------        最近一直在忙公司的新项目,几乎可以说是从毕业到公司就在做原...

Konw Nothing 449

初学SpringCloud(一)- SpringCloud是什么

SpringCloud是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称“微服务全家桶”。 官网:https://spring.io/projects/spring-cloud SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。 Spring Cloud架构亮点: SpringCloud与SpringBoo

一路的博客 239

SpringBoot,SpringCloud入门到精通最简单教程 -转载

转载自: https://blog.youkuaiyun.com/ztx114/article/details/78091689 侵权必删

29岁的裴野永远爱你 255

springcloud学习笔记:认识微服务,谈资,技术的迭代演变,支付模块为例 体验demo

springcloud2020 每日格言 学贵心悟,守旧无功。 ——《经学理窟》 整理知识 串一下自己之前的东西 这个阶段该如何学 在学习新知识的同时不忘回顾自己以及拥有的知识 我自己的东西 javaSE 数据库 前端知识 Servlet springboot Mybatis spring Maven Ajax dubbo+zookeeper 我差了的东西 Http 标准的变化 我们在之前以学过了ssm 我们的开发核心在哪里 javaEE标准 spring javaEE开发标准 ​ sp

doomwatcher的博客 349

SpringCloud01 -- 初识

Spring Cloud 是什么? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶”。 Spring Cloud 现状 目前,国内使用 Spring Cloud 技术的公司并不多见,不是因为 Spring

Jsu蘇的博客 334

【SpringCloud01】微服务架构入门

SpringCloud微服务入门

qq_45291280的博客 464
上一篇: 设计模式学习——访问者模式
下一篇: SpringCloud学习——系统架构演变、Dubbo和SpringCloud的对比
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值