当前位置: 首页 > news >正文

惠阳住房和建设局网站自学做网站

惠阳住房和建设局网站,自学做网站,设计一套网站多少钱,外贸出口平台网站一.问题分析 在之前我们配置阿里云OSS对象存储模型时,使用Value注解将配置文件中的属性注入到阿里云OSS的utils工具类当中。但是如果要注入的属性特别多,那么使用Value注解将十分繁琐,因为要一个一个的注入。 为了解决上述问题,我…

一.问题分析

在之前我们配置阿里云OSS对象存储模型时,使用@Value注解将配置文件中的属性注入到阿里云OSS的utils工具类当中。但是如果要注入的属性特别多,那么使用@Value注解将十分繁琐,因为要一个一个的注入。

为了解决上述问题,我们可以引入@ConfigurationProperties注解来一起注入。

二.@ConfigurationProperties注解

首先我们需要定义一个AliOSSProperties.java的属性类,将aliyun.oss的属性加入进去。并为该类加上@Data注解提供get/set方法,加上@Component注解将该类的实例对象作为bean对象注入到容器中,从而可以使用@Autowired注解进行依赖注入。

AliOSSProperties.java

package com.gjw.util;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@Component
@Data
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliOSSProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;
}

我们要使用@ConfigurationProperties注解,并在@ConfigurationProperties注解中定义prefix属性来指定要配置的属性名的前缀。指定之后,@ConfigurationProperties注解就可以实现将对应属性和配置文件中的属性相对应,进而实现值传递。

AliOSSUtils.java

package com.gjw.util;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.UUID;/*** 阿里云 OSS 工具类*/
@Data
@Component  // 使用Component实现控制反转(该工具类不属于controller,service,mapper/Dao)
public class AliOSSUtils {/*@Value("${aliyun.oss.endpoint}")private String endpoint;@Value("${aliyun.oss.accessKeyId}")private String accessKeyId;@Value("${aliyun.oss.accessKeySecret}")private String accessKeySecret;@Value("${aliyun.oss.bucketName}")private String bucketName;
*/@Autowiredprivate AliOSSProperties aliOSSProperties;/*** 实现上传图片到OSS*/public String upload(MultipartFile file) throws IOException {String endpoint = aliOSSProperties.getEndpoint();String accessKeyId = aliOSSProperties.getAccessKeyId();String accessKeySecret = aliOSSProperties.getAccessKeySecret();String bucketName = aliOSSProperties.getBucketName();// 获取上传的文件的输入流InputStream inputStream = file.getInputStream();// 避免文件覆盖String originalFilename = file.getOriginalFilename();String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));//上传文件到 OSSOSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);ossClient.putObject(bucketName, fileName, inputStream);//文件访问路径String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;// 关闭ossClientossClient.shutdown();return url;// 把上传到oss的路径返回}}

在AliOSSUtils.java中,我们通过依赖注入将AliOSSProperties的实例化对象注入进来,并调用其get方法即可完成对应配置的属性值的获取,进而在工具类中使用。

三.@ConfigurationProperties和@Value注解的对比

四.解决出现的警告(可选)

 当使用@ConfigurationProperties注解后,会出现警告,但不影响程序运行。原因是我们没有配置依赖。在pom文件中配置一下该依赖即可,配置后我们在yml文件中输入aliyun后会自动提示出来其要配置的属性值。

pom文件中加入此,解决。

会自动联想出来。

http://www.dtcms.com/a/426609.html

相关文章:

  • 中国能源建设集团招聘网站网站建设哪家好知道万维科技
  • 智慧寄件新体验:快递小程序如何简化日常生活
  • 小程序原生导航栏返回键实现
  • 基于开源AI智能名片的S2B2C商城小程序中搜索联想功能的优化策略研究
  • 精读C++20设计模式——行为型设计模式:迭代器模式
  • 短剧小程序系统开发:构建便捷高效的影视观看平台
  • 瑜伽馆会员约课小程序页面功能梳理
  • 免费领源码-Spring boot的物流管理系统 |可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
  • 南京银城建设 网站中山做网站
  • 多主机Docker Swarm集群网络拓扑可视化监控方案的部署规范
  • 腾讯 AudioStory:统一架构下的长篇叙事音频生成新标杆
  • AI 原生应用:内容创作的 “智能工厂” 革命
  • 做淘宝的货源网站描述建设网站的步骤
  • 免费的 CI/CD 服务,了解一下 GitHub Actions ?
  • 基于 CI/CD 平台将应用程序自动部署到 Kubernetes 集群
  • QT示例 使用QTcpSocket和QTcpServer类实现TCP的自定义消息头、消息体通信示例
  • YDWE编辑器系列教程一:编辑器界面
  • 外贸网站怎么找客户名城建设有限公司网站
  • Linux 系统基础配置:主机名、IP、主机映射、防火墙
  • AI 重构实体经济:2025 传统产业的智能转型革命
  • 【金仓数据库产品体验官】KingbaseES-Oracle兼容性体验
  • 初探 ansible 部署 devops 持续集成持续交付
  • 【VBA】点击按钮,实现将Excel表A数据按格式填入表B
  • 微硕WST8205A双N沟MOSFET,汽车阅读灯静音负载开关
  • LabVIEW与PLC 汽车驻车制动自动调整
  • 【办公类-115-01】20250920职称资料上传01——多个jpg转同名PDF(如:荣誉证书)并自动生成单一文件夹
  • 基于Kafka+ElasticSearch+MongoDB+Redis+XXL-Job日志分析系统(学习)
  • 【龙泽科技】智能网联汽车智能传感器测试装调仿真教学软件
  • JAVA:Spring Boot 集成 BouncyCastle 实现加密算法
  • 石家庄住房和城乡建设局官方网站app模板下载网站