SpringBoot SpringBoot 开发实用篇 2 配置高级 2.1 第三方bean 属性绑定

news2025/7/9 14:07:13

SpringBoot

【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】

SpringBoot 开发实用篇

文章目录

      • SpringBoot
      • SpringBoot 开发实用篇
      • 2 配置高级
        • 2.1 第三方bean 属性绑定
          • 2.1.1 @ConfigurationProperties
          • 2.1.2 @EnableConfigurationProperties
          • 2.1.3 小结

2 配置高级

2.1 第三方bean 属性绑定

2.1.1 @ConfigurationProperties

创建一个新的模块工程

在这里插入图片描述

下一步

在这里插入图片描述

什么都不勾

直接创建

在这里插入图片描述

一个全新的SpringBoot 工程

上来就把配置文件的格式改掉

在这里插入图片描述

加入lombok 依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

在这里插入图片描述

OK

创建一个新的类

package com.dingjiaxiong.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * ClassName: ServletConfig
 * date: 2022/10/19 10:48
 *
 * @author DingJiaxiong
 */

@Component
@Data
@ConfigurationProperties(prefix = "servers")
public class ServerConfig {

    private String ipAddress;
    private int port;
    private long timeout;

}

在配置文件中加入配置值

servers:
  ipAddress: 192.168.0.1
  port: 2345
  timeout: -1

这个就是编的,仅仅用于测试

在这里插入图片描述

现在想让类在加载时,使用配置文件中的属性值

@ConfigurationProperties(prefix = "servers")

在这里插入图片描述

这样就行了,测试

直接在启动类里面测

package com.dingjiaxiong;

import com.dingjiaxiong.config.ServerConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class Springboot13ConfigurationApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext ctx = SpringApplication.run(Springboot13ConfigurationApplication.class, args);
        ServerConfig bean = ctx.getBean(ServerConfig.class);
        System.out.println(bean);
    }

}

直接启动,查看这个打印

在这里插入图片描述

没问题,数据都成功拿到了

现在的问题是,类是我的自己创建的,bean也是,那如果是第三方的咋办?

引入druid 依赖

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

在这里插入图片描述

直接在启动类创建第三方bean

package com.dingjiaxiong;

import com.alibaba.druid.pool.DruidDataSource;
import com.dingjiaxiong.config.ServerConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class Springboot13ConfigurationApplication {

    @Bean
    public DruidDataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        return ds;
    }


    public static void main(String[] args) {
        ConfigurableApplicationContext ctx = SpringApplication.run(Springboot13ConfigurationApplication.class, args);
        ServerConfig bean = ctx.getBean(ServerConfig.class);
        System.out.println(bean);

        DruidDataSource dataSource = ctx.getBean(DruidDataSource.class);
        System.out.println(dataSource);
    }

}

运行结果

在这里插入图片描述

现在打印的是druid 数据源初始化好后的配置值【但其实现在并没有真正进行初始化】

给个值看看

在这里插入图片描述

没毛病【这更说明了druid 数据源是懒加载的】

现在在配置文件中整一组值,给它用

datasource:
  driverClassName: com.mysql.dingjiaxiong.Driver
  

在这里插入图片描述

现在我要这组数据注入到我们写的第三方bean

    @Bean
    @ConfigurationProperties(prefix = "datasource")
    public DruidDataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
//        ds.setDriverClassName("com.mysql.jdbc.Driver");
        return ds;
    }

直接运行测试

在这里插入图片描述

没毛病

回顾一下

在这里插入图片描述

2.1.2 @EnableConfigurationProperties

这个注解是个开关,开启配置属性的功能,可以将配置文件中的属性向对应的类中做属性注入

在这里插入图片描述

寻找绑定,直接测试

在这里插入图片描述

可以看到报错了

读一读

在这里插入图片描述

它意思是它找到了两个,导致匹配失败

其实就是

@EnableConfigurationProperties({ServerConfig.class})

这个注解自动帮我们把class 搞成一个bean了

在这里插入图片描述

把右边的注掉,重启测试

在这里插入图片描述

这次也就出来了

回顾一下

在这里插入图片描述

【注意】:@EnableConfigurationProperties与@Component不能同时使用

这里有个小问题说一下

在这里插入图片描述

Spring Boot Configuration Annotation Processor not configured

意思大概是 SpringBoot 中配置注解的处理器并没有配置

可以直接打开官网

加一个依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
</dependency>

在这里插入图片描述

这样就解决了

2.1.3 小结
  1. @ConfigurationProperties可以为第三方bean绑定属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/9188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ERP系统有哪些品牌?

企业资源规划 (ERP) 系统可以帮助企业在一个系统中管理其整个运营。凭借 CRM、人力资源、会计、供应链管理等功能&#xff0c;优秀的 ERP 系统可以集中并简化每位员工的日常工作。 那么&#xff0c;ERP系统有哪些品牌&#xff1f;哪个好用&#xff1f;下面就来简单介绍几个主流…

Android Studio App开发之网络通信中移动数据格式JSON的讲解以及实战(附源码 超详细必看)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、移动数据格式JSON 网络通信的交互数据格式有两大类&#xff0c;分别是JSON和XML&#xff0c;前者短小精悍&#xff0c;后者表现力丰富&#xff0c;对于App来说&#xff0c;基本采用JSON格式与服务器通信。一是手机流量…

计算机网络的常见面试题

GET 和 POST 的区别 作用 GET用来获取资源&#xff0c;POST用于传输实体主体 参数位置 GET的参数放在URL中&#xff0c;POST的参数存储在实体主体中&#xff0c;并且GET方法提交的请求的URL中的数据多是2048字节&#xff0c;POST请求没有大小限制 安全性 GET方法因为参数放在…

二极管:Irush与我相干!

故事还没结束,我们必须继续讲,继续挖,边说边究。 即使时间us级不会让FUSE同学Open,FUSE后面的兄弟姐妹呢,可以扛住事吗?那可有3.4A的能量冲击啊! 不确定,就有可能。墨菲老人家曾说过:会出错的事总会出错。也就是会发生的事总会发生,只要不给时间加上一个期限,非要给…

外卖项目03---分类管理业务开发

目录 一、公共字段自动填充 41 1.1问题分析 41 ​编辑1.2公共字段自动填充---代码实现并测试 42 1.3公共字段自动填充---功能完善 43 二、新增分类 44 2.1需求分析 44 三、分类信息查询 45 3.1需求分析 45 3.2代码开发 流程分析 四、删除分类 46 4.1需求分析 46 4.2…

教你打造高性能的 Go 缓存库

我在看一些优秀的开源库的时候看到一个有意思的缓存库 fastcache&#xff0c;在它的介绍主要有以下几点特点&#xff1a; 读写数据要快&#xff0c;即使在并发下&#xff1b;即使在数 GB 的缓存中&#xff0c;也要保持很好的性能&#xff0c;以及尽可能减少 GC 次数&#xff1…

基于Fluent求解器进行二次开发到底怎么做?

作者 | 小田老师 Ansys Fluent软件作为通用的流体仿真软件&#xff0c;功能模型虽然多而全&#xff0c;但是缺乏相应的行业专业性。同时仿真分析具有一定的技术门槛&#xff0c;既需要技术人员具备行业基础&#xff0c;也需要积累相关仿真经验&#xff0c;对软件操作要有较高的…

Docker安装Redis

文章目录1.Docker搜索Redis镜像2.Docker拉取镜像3.Docker挂载配置文件4.启动Redis 容器5.测试Redis6.Docker删除Redis1.Docker搜索Redis镜像 命令&#xff1a;docker search <镜像名称> docker search redis可以看到有很多redis的镜像&#xff0c;此处因没有指定版本&…

干货|数据安全治理白皮书4.0(文末附下载链接)

数据安全治理白皮书是国内最早的数据安全治理白皮书系列&#xff0c;围绕数据安全治理&#xff0c;“新理论、新技术、新实践”&#xff0c;一次系统汇总、梳理分析与集中呈现&#xff0c;2018年-2021年&#xff0c;已发布1.0/2.0/3.0三个版本&#xff0c;2022年&#xff0c;已…

线性二分类的实现

神经网络结构 从视觉上判断是线性可分的&#xff0c;使用单层神经网络&#xff1b; 输入层设置两个输入单元&#xff0c;表示经纬度&#xff1a;&#x1d44b;&#x1d465;1,&#x1d465;2 输出层设置一个单元&#xff0c;表示地盘所属阵营&#xff1a; &#x1d467;&…

STC15W单片机防丢语音报警GPS北斗定位测距双机LORA无线手持可充电

实践制作DIY- GC0091-防丢语音报警 一、功能说明&#xff1a; 基于STC15W单片机设计-防丢语音报警 功能介绍&#xff1a; 主机硬件&#xff1a; STC15W4K48S4&#xff08;或者STM32F103CxT6&#xff09;系列最小系统板OLED显示器LORA无线通讯模块GPS北斗双模定位模块蜂鸣器…

RGD环肽:环六肽c(GRGDSP),CAS号: 135432-37-0

c(GRGDSP)是一个环RGD肽。刺激大鼠传入小动脉的收缩。已用于顺铂的靶向给药。结果表明&#xff0c;c(RGDSP)可抑制小鼠B16黑色素瘤细胞在纤连蛋白包被孔上的粘附。 编号: 194990中文名称: RGD环肽&#xff1a;环六肽c(GRGDSP)英文名: cyclo(GRGDSP)CAS号: 135432-37-0单字母: c…

电子统计台账:中文标记月度流水账格式数据的转换,以及过滤模板的普遍适配性

上一个例子展示的台账格式中&#xff0c;月份是阿拉伯数字。本文试着转换中文月份格式的台账数据。 1 新建项目 新建一个项目“测试06_工业生产_中文月度流水账_202101”。 切换到2021年1月。 2 打开数据源文件 打开2个企业数据源文件&#xff1a; 6流水账式中文月份M_1-…

go pprof 实战

为什么要进行性能优化 哪些情况需要进行性能优化 其实关于性能优化的主题&#xff0c;网上已经讨论很多次&#xff0c;这里谈一下我的理解&#xff0c;那么其实核心就是 2 个点&#xff1a; 服务一直高负载&#xff0c;业务增长需要经常扩容架构不能满足业务发展&#xff0c…

[附源码]java毕业设计基于的考研408课程学习平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

阿里云产品经理刘宇:Serverless 的前世今生

2022 年 9 月 24 日&#xff0c;阿里云用户组&#xff08;AUG&#xff09;第 12 期活动在厦门举办。活动现场&#xff0c;阿里云 Serverless 产品经理刘宇&#xff0c;向参会企业代表分享了Serverless 架构的前世今生。本文根据演讲内容整理而成&#xff0c;希望和大家一起探索…

基于SSM花卉商城设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

商业智能BI,助力企业数据文化建设

当今&#xff0c;互联网技术飞速发展&#xff0c;我们每天都在接收者来自各方面的海量信息&#xff0c;这样一个信息爆炸的时代&#xff0c;企业如何看待数据、整理数据、利用数据&#xff0c;又如何从这些数据中发掘出有效的信息&#xff0c;成为企业新的生存技能之一。 数据…

QT -- 多线程 —— moveToThread

视频教程链接&#xff1a; https://www.bilibili.com/video/BV1fL4y1V7QP/?spm_id_from333.880.my_history.page.click&vd_sourceb91967c499b23106586d7aa35af46413 moveToThread函数的功能&#xff1a;给多个任务&#xff08;比如显示多个界面&#xff09;各分配一个线程…

基金交易场景下,如何利用 Apache APISIX 来稳固 API 安全

王晔倞&#xff0c;Apache APISIX Committer&#xff0c;公众号「头哥侃码」作者。 背景介绍 金融领域的企业中&#xff0c;安全是非常重中之重的因素。 通常各类金融企业都会花费大量成本去采购安全相关的设备和硬件&#xff0c;基金管理相关企业更是如此。 根据相关国内基金…