SpringBoot详细注入配置(2)

Springboot2.6.2运用注解@ConfigurationProperties从配置文件application.yaml中获取配置信息注入对象的属性 阅读详情

SpringBoot注入配置(2)

接下来就是讲一下SpringBoot注入配置的一些详细的东西,也是通过结合网上和其他视频学习总结出来的内容,全手敲实践虽然会有取自其他地方的内容。这里提前多谢大家的阅读并且有地方的问题批评指正即可。

1、引言

在以前学习spring的时候,我们通常会创建一个xml文件。比如在配置连接池时,我们往往会以下进行创建:

<!--配置druid连接池>
<bean id = "dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    <property name="url" value= "${jdbc.url}" />
    <property name = "username" value="${jdbc.username}" />
    <property name = "password" value="${jdbc.password}" />

当然,这种方法还要创建一个配置文件来编写连接池对应的password、url和username。

那么学习springboot中,我们现在又该怎么面对这个问题(配置连接池)呢?

这就要了解spring框架的历史了。

2、spring的历史

以下内容借鉴参考自:Spring框架每个版本的特性及历史介绍

spring1.X的项目路径如下:

在这里插入图片描述

当时spring还处于完全xml格式的配置,对于程序员配置环境而言确实非常头疼。

spring2.X的源码项目结构路径如下:

在这里插入图片描述

在spring2.0中,增添了注解的支持。虽然目前我们添加的spring包依赖应该使用的版本差不多是5.0+,但是前期很多地方的学习还只是到2.X的内容范围。(不过了解两者的配置对日后对spring3.0及以上的了解应该会更加详细。)

到了spring3.X,我们开始增添Java类的配置,其结构已经跟我们目前maven依赖的5.X相类似了。

到了spring3.0以后,Spring的注解已经非常完善了,因此在这个版本内spring推荐使用完全的java配置来代替以前的xml。

3、注入

3.1 spring注解注入

spring注解配置主要靠java类和一些注解,当然常见的注解如下:

  • @Configuration:声明一个类作为配置类,代替xml文件
  • @Bean:声明在方法上,将方法的返回值加入Bean容器,代替标签
  • @value:属性注入
  • @PropertySource:指定外部属性文件

1、引入druid连接池依赖

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>1.1.10</version>
</dependency>

2、创建一个jdbc.properties,编写jdbc属性

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/xaf
jdbc.username=root
jdbc.password=root

3、尝试编写代码

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
	@Value("${jdbc.url}")
	String url;
	@Value("${jdbc.driverClassName}")
	String driverClassName;
	@Value("${jdbc.username}")
	String username;
	@Value("${jdbc.password}")
	String password;
	@Bean
	public DataSource dataSource() {
		DruidDataSource dataSource = new DruidDataSource();
		dataSource.setUrl(url);
		dataSource.setDriverClassName(driverClassName);
		dataSource.setUsername(username);
		dataSource.setPassword(password);
		return dataSource;
	}
}
@Configuration`是声明我们这个类是一个配置类。

`@PropertySource("classpath:jdbc.properties")`指定属性文件路径是:`classpath:jdbc.properties`

通过@value属性注入值

通过@Bean将`dataSource()`方法声明成一个注册Bean的方法,Spring会自动调用该方法,将方法的返回值加入Spring容器中。默认的对象名id=方法名。

4、注入@Autowired

比如说我在下面创建一个测试:

@RestController
public class HelloController {
	@Autowired
	private DataSource dataSource;
	@GetMapping("hello")
	public String hello() {
		return "hello, spring boot!" + dataSource;
	}
}

此时就将第3步的内容注入到DataSource中来。之后测试运行时可以通过debug来查看是否注入成功。

3.2 springBoot属性注入

在前面的内容我们看着使用之前没用过的注解的方式来完成属性注入,而这里我们来通过使用springBoot来提供新的属性注入的方式,它支持各种java基本数据类型和复杂类型的注入。

1、新建一个类,用来进行属性注入:

@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
	private String url;
	private String driverClassName;
	private String username;
	private String password;
	// ... 略
	// getters 和 setters
}

首先使用@ConfigurationProperties(prefix = "jdbc")注解声明当前类为属性读取类。其中的prefix读取文件时,读取的数据要有jdbc为前缀的值。

在类上定义各个属性,名称必须与属性文件中 jdbc. 后面部分一致。注意有个点。

当然我们如果没有指定属性文件的地址,所以我们需要把jdbc.properties名称改为 application.properties,这是SpringBoot默认读取的属性文件名:

2、创建另一个类使用属性

@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
	@Bean
	public DataSource dataSource(JdbcProperties jdbc) {
		DruidDataSource dataSource = new DruidDataSource();
		dataSource.setUrl(jdbc.getUrl());
		dataSource.setDriverClassName(jdbc.getDriverClassName());
		dataSource.setUsername(jdbc.getUsername());
		dataSource.setPassword(jdbc.getPassword());
		return dataSource;
	}
}

通过 @EnableConfigurationProperties(JdbcProperties.class) 来声明要使用 JdbcProperties 这个类的对象

然后你可以通过以下方式注入JdbcProperties:

  • @Autowired注入
@Autowired
private JdbcProperties prop;
  • 构造函数注入
private JdbcProperties prop;
public JdbcConfig(Jdbcproperties prop){
	this.prop = prop;
}
  • 声明有@Bean的方法注入参数
@Bean
public Datasource dataSource(JdbcProperties prop){
	// ...
}

3.3 springBoot属性注入—@ConfigurationProperties的优点

  • Relaxed binding:即松散绑定。它不严格要求属性文件中的属性名与成员变量名一致。支持驼峰,中划线,下划线等等转换,甚至支持对象引导。

比如:user.friend.name:代表的是user对象中的friend属性中的name属性,显然friend也是对象。@value注解就难以完成这样的注入方式。

  • meta-data support:元数据支持,帮助IDE生成属性提示(写开源框架会用到)。

3.4 优化

基于如上的注入方式,springboot还能更加优化的注入。

比如说对于一段属性只有一个bean使用,就可以直接在需要的地方声明即可:

@Configuration
public class JdbcConfig {
	@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方法!

4、自动配置原理

首先我们就从我们上面介绍的和Application启动类的注解进行简单的介绍。

4.1 @SpringBootApplication

该注解一般放置于一个项目的启动器上,即Application类中。这个注解是用来将启动类注入到容器中,定义容器扫描的范围,加载classpath环境的一些bean。

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
		@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {

	/**
	 * Exclude specific auto-configuration classes such that they will never be applied.
	 * @return the classes to exclude
	 */
    ...
}

最开始所标注的粗体字,分别就是由如上代码的第一行到第三行的注解实现完成。

4.1.1 @SpringBootConfiguration

该注解说明这是一个springboot的配置类,再次进入:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}

我们在第四行看到了全注解配置@Configuration,说明这个启动器是一个配置类。再次点击进入:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";
}

第四行中的@Component就是说明将一个bean注入到容器中。

补充:在我们一般学习spring中主要学习的四个注解中有提及:

@controller:   controller控制器层(注入服务)
@service :      service服务层(注入dao)
@repository :  dao持久层(实现dao访问)
@component:  标注一个类为Spring容器的Bean,(把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)

这就是能够实现将启动类注入到容器的原因,并且详细化将其声明成springboot配置类。

4.1.2 @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. For example, if you
 * have {@code tomcat-embedded.jar} on your classpath you are likely to want a
 * {@link TomcatServletWebServerFactory} (unless you have defined your own
 * {@link ServletWebServerFactory} bean).
  • 简单来说,就是这个注解的使用,springBoot会猜测你的使用,即猜测你想要怎么配置spring。(Auto-configuration classes are usually applied based on your classpath and what beans you have defined)
  • 假设你添加了tomcat依赖在你的路径下,那么这个启动器会帮你添加tomcat的依赖。此时自动配置就知道你是要开发一个web应用(大致是这个意思)。

这就是Application能够定义容器扫描的范围的原因。因为它能够自行判断你要使用什么依赖。

4.1.3 @ComponentScan
    @AliasFor("value")
    String[] basePackages() default {};

    Class<?>[] basePackageClasses() default {};
  • 配置组件扫描的指令。提供了类似与<context:component-scan>标签的作用。通过basePackageClasses或者basePackages属性来指定要扫描的包。如果没有指定这些属性,那么将从声 明这个注解的类所在的包开始,扫描包及子包。
  • 因为我们的@SpringBootApplication注解声明的类就是main函数所在的启动类,因此扫描的包是该类所在包及其子包。所以,一般启动类会放在一个比较前的包目录中,这就是为什么将Application放到前面的缘故。

这也能间接实现加载classpath环境的一些bean的功能,我们通常会@Bean注解来声明一个类等等,使得spring能够自动调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。而SpringIOC容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。

4.2 默认配置原理

这里另外讲一下为什么sspringboot能够完成根据你引入的依赖来生效对应的默认配置呢?

首先进入spring-boot-autoconfiguration依赖下:

在这里插入图片描述

看的出来它能够完成的引入依赖远不止是web那么简单。

接下来进入WebMvcAutoConfiguration:

在这里插入图片描述

@Configuration
@ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)

根据里面内容的注解选取一部分看,这里的的注解如上所示:

  • @Configuration :声明这个类是一个配置类
  • @ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })

这里的条件是OnClass,也就是满足以下类存在:Servlet、DispatcherServlet、WebMvcConfigurer,其中 Servlet只要引入了tomcat依赖自然会有,后两个需要引入SpringMVC才会有。这里就是判断你是否引入了相 关依赖,引入依赖后该条件成立,当前类的配置才会生效!

  • @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)

这个条件与上面不同,是说环境中没有指定的Bean这个才生效。意思同上。

总结

以上就是对SpringBoot注入配置的介绍,后续就会根据跟其他主流框架的整合来进行简单的介绍。谢谢大家的阅读。

2.2 Spring boot 配置分析 - 通过工厂方式注入bean 本章主要写的是 Spring5 通过实现FactoryBean 的方式 来注入Bean 。 初始条件: 1. Java version : 1.8 2. maven vesion: 1.3.9快速链接: 2.1 Spring5 快速入门 第一步:创建一个简单结构(quickstart)的 Maven 工程 第二步:将 Spring5 的依赖加入项目的 POM 文件中: <de 阅读详情

相关推荐

SpringBoot 2.x学习(三):为属性注入配置文件中的值:@Value 注解的使用

文章目录@Value 注解的简单介绍@Value 注解的使用 @Value 注解的简单介绍 @Value 注解的使用

liyananBest的博客 1034

关于SSH中Filter中使用dao,Service层的方法

在SSH框架中使用Filter过滤器要注意以下几点: 比如在完成用户自动登录的时候,使用到Filter来完成自动登录的功能.如果直接在SSH中使用Filter,那么在自己定义的Filter类中的dao,service层的方法都调用不了. 比如 user1 = dao.login(user2); 这个地方直接在Filter自定义的类中调用dao层的login方法的时候会报空指针的异常. ...

qq_40125268的博客 805

Springboot2.6.2运用注解@ConfigurationProperties从配置文件application.yaml中获取配置信息注入对象的属性值

Springboot2.6.2运用注解@ConfigurationProperties从配置文件application.yaml中获取配置信息注入对象的属性值

askvinson的博客 556

SpringBoot Dao层常用注解

@Repository:作用在DAO层,将该类依赖注入,其他层就可以调用该mapper,如果启动类添加了@MapperScan注解,就不需要再写这个注解。 @Data:注解在实体类上,为该实体类提供getter、setter方法,提供equals方法以及hashcode方法。 @Accessors: @TableName @Accessors @EqualsAndHashCode @TableId @NotEmpty @TableField ...

a519525531的博客 5701

5 个 springboot配置文件注入参数说明

在SpringBoot中注入各种类型(String,List,Map,Object)配置在开发过程中,绝大多数场景都是要使用一些配置项的。至于配置项如何注入到应用程序中,一直没有过多的关注过。今天抽了点时间实际试了下,这里做个简单的记录,便于需要的朋友了解下。在下面的讲述中,针对下面的一组配置来进行说明,分别演示读取字符串String、列表List、哈希表Map和对象Object进行说明。开发框架为Springboot。

【优快云】 3771

SpringBoot2.6 升级到springBoot2.7 H2,JPA,Security问题

升级SpringBoot2.7 H2,JPA,Security等问题

。。。。。。。 1675

Spring Boot之过滤器 Filter注入的方式

第一种 @WebFilter(filterName = "myFilter",urlPatterns = "/*") public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest reques

Jay的博客 5963

postman响应体:“msg“: “请求缺失签名Sign“、 “msg“: “请求缺失时间戳“

请求标头有Sign、Timestamp,但是直接将网址复制到postman时,Headers没有自动生成这两个参数,所以运行时会报错。

m0_46862648的博客 1706

SpringBoot项目中过滤器Filter的配置

关于springboot中filter的两种配置方法

m0_66607230的博客 8311

比亚迪 10C 闪充技术全解析:超高速离子通道与双电子流设计如何颠覆电动车补能格局?

性能碾压主流方案参数宁德时代6C比亚迪10C优势幅度最大电流700A1000A+43%内阻降幅30%50%+67%5分钟补能240公里400公里+67%

百态·数智思维 | 聚焦大数据、量化与未来AI 1122

深入解析AndroidManifest.xml与device_admin.xml:打造完美DeviceOwner应用配置

本文深入解析了Android企业级开发中DeviceOwner应用的核心配置文件AndroidManifest.xml与device_admin.xml。详细阐述了如何精准声明DeviceAdminReceiver、定义管理策略,并提供了通过ADB命令进行设置与验证的实战指南,帮助开发者构建权限完整、配置正确的设备所有者应用。

ice55的博客 680

springboot2.x 中 @Configuration类中,无法使用@Value注入配置

springboot2.x 中 @Configuration类中,无法使用@Value注入配置,获取的一直为null,此时需要通过Environment来获取,但是配置类需要实现EnvironmentAware接口。 /** * 实现EnvironmentAware接口的目的是, * 在@Configuration中无法通过@Value注解注入配置, * 所以通过Environment获取配置,但是需要实现EnvironmentAware接口 */ @Configuration public c

ghhgc的博客 3831

《涨知识啦29》-DBR的工作原理及其在VCSEL中的作用

分布式布拉格(Distributed Bragg Reflection,简称DBR)反射镜是垂直腔面发射激光器(Vertical-Cavity Surface-Emitting Laser,简称VCSEL)的重要组成部分。典型的DBR反射镜是由1/4ni波长厚度的高折射率和低折射率材料交替组成(ni是该层的折射率)。其反射率取决于组成对数、边界条件以及折射率差。 图1 布拉格反射镜的工作原理 DBR反射镜的工作原理如图1所示。根据反射原理,当光从光疏介质n1射向光密介质n2(折射率n2>n1)时,反

simucal的博客 7983

2 -【 SpringBoot 配置方式 】- 2 SpringBoot 的属性注入

SpringBoot 的属性注入

何以小城大事的博客 249

【软件介绍】RVC本地部署使用方法

【摘要】RVC是一款功能强大的开源语音转换工具,具有实时处理、多音效选择、高质量音频处理等特点。文章详细介绍了RVC的安装与使用方法:1)配置Python环境;2)根据电脑系统选择对应安装包解压;3)启动程序进入浏览器操作界面。重点讲解了声音克隆的关键步骤:建议使用短音频素材,选择合适训练方法(推荐pm或rmvpe),设置100次训练轮数,生成的模型文件存入weights文件夹。最后通过上传音频即可实现声音克隆。操作过程需注意保持程序运行状态,并提供了相关资源下载地址。

心动的那一刻,记忆便盛开了花 2977

有限元分析必看:如何用ANSYS检查关键区域的网格质量(附操作截图)

本文聚焦有限元分析中决定仿真精度的关键环节,详细讲解了如何利用ANSYS Workbench对关键区域进行网格质量检查与优化。文章提供了从思维转变、实战操作到指标解读的完整流程,强调通过命名选择、Worksheet过滤器等工具实现定向检查,并给出了针对结构分析的关键区域网格质量阈值建议,帮助工程师提升仿真结果的可靠性与效率。

weixin_29200741的博客 466

SpringBoot2.0热部署devtool和配置文件自动注入实战

SpringBoot热部署devtool和配置文件自动注入实战 十四 14 1、SpringBoot2.x使用Dev-tool热部署 简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用 官方地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/...

Java编程基础 197

freeswitch系列二 kamailio 5.0安装及实现kamailio集成freeswitch

kamailio是个纯粹的SIP服务器。本文介绍先如何在debian8下安装debian5.0,然后详细介绍如何实现使用kamailio做freeswitch均衡负载。kamailio同时实现做为代理服务器、注册服务器、重定向服务器。

不积跬步无以至千里; 不积小流无以成江海 1万+

Spring Boot2篇 - 三、Spring Boot 配置文件(yaml配置注入)

三、Spring Boot 配置文件(yaml配置注入) 3.1 配置文件和yaml语法学习 3.1.1 配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的 application.properties 语法结构 :key=value application.yml 语法结构 :key:空格 value **配置文件的作用 :**修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了 比如我们可以在配置文件中修改

cV展示的学习园 658

华为OD机试 - 商品推荐多属性排序 - 数组(Python/JS/C/C++ 双机位A卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。双十一来临,小王准备买某个购物平台买坚果。在输入坚果时,页面默认按照综合推荐列表。小王想知道这个综合排序时如何完成的,于是便开始思考算法题。经过一番操作后,完成它的多个关键词排序算法。希望你给小王提供一份正确的排序结果,验证其实现算法结果的准确性

学Java,找哪吒 622

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

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

SpringBoot2.x学习(二):为属性注入配置文件中的值:@ConfigurationProperties注解的使用

文章目录@ConfigurationProperties 简单介绍@ConfigurationProperties 使用示范创建两个 javaBean在 SpringBoot 全局配置文件写入需要注入的值application.yml 写法application.properties 写法在类上加上 @ConfigurationProperties 注解测试 @ConfigurationPrope...

liyananBest的博客 1209

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

springboot(2)——yaml配置注入

1 yaml配置注入 yaml文件更强大的地方在于,他可以给我们的实体类直接注入匹配值 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的**【application.yaml】** 配置文件的作用:修改SpringBoot自动配置的默认值。 yaml基础语法 说明:语法要求严格! 1、空格不能省略 2、以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。 3、属性和值的大小写都是十分敏感的。 例子 程序 Dog.java package com.zs.helloword

一个搬砖工人 189

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数学建模模型总结

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

SpringBoot2——配置文件

spring boot还可以加载YAML类型的文件,而且也推荐我们使用YAML类型文件来注入bean的属性,接下来我们学习一下YAML文件的基本语法 基本语法 key: value;kv之间有空格 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 '#'表示注释 字符串无需加引号,如果要加,’'与""表示字符串内容 会被 转义/不转义 数据类型 字面量:单个的、不可再分的值。如:date、boolean、

Yellow_Star的博客 473

spring boot2.0整合activeMQ,配置连接池,启动项目报错,JmsMessagingTemplate无法注入

上一篇讲到在整合activeMQ如何将queue和topic两种模式共存:spring boot2.0整合activeMQ,实现p2p和topic两者消息模式兼容共存 然后还遗留了一个问题,有读者评论因为配置文件里一句启用连接池导致项目启动报错,只要把那句配置注释掉或者改为false就可以了,这实际上是治标不治本,因毕竟流量大的时候不启用连接池效率会很低: # 启用连接池 spring.activ...

eumenides_的博客 9046

springboot——(2)URL配置、依赖注入、Get/Post传参、热部署

创建一个springboot工程,添加@RestController注解及控制器函数后,即实现了基本的http请求的响应,可参考我的博文创建工程并做好简单的配置。https://mp.youkuaiyun.com/postedit/81870492 下面做一些简单的实践学习,主要包括:修改http请求的端口路径,从配置文件中注入属性(其实就是模拟一下获取后台数据),解析http请求的参数并给予反馈,热部署避...

qifengsunny的博客 7602

Apollo 客户端集成 SpringBoot 的源码分析(2)-配置属性的注入更新

文章目录前言1. 客户端配置属性注入 SpringBoot 源码分析1.1 Apollo 组件的注入1.2 Apollo 配置属性的更新 前言 在上一篇文章 Apollo 客户端集成 SpringBoot 的源码分析(1)- 启动时配置获取 中,笔者分析了 Apollo 客户端拉取远端配置并将其嵌入 SpringBoot 的主要流程,本文主要分析 Apollo 配置属性注入 SpringBoot 框架,真正生效的原理 1. 客户端配置属性注入 SpringBoot 源码分析 Apollo 配置属性注入到 S

谈谈1974 1518
上一篇: 初识Rasa Core(1)
下一篇: SpringBoot整合springMVC(3)
Xiao艾扶
博客等级 码龄7年 187粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao艾扶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值