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

SpringBoot----自定义Start(自定义依赖)

一,为什么要定义Start

向阿里云OSS如果我们要引入的话很麻烦,所以我们可以自定义一些组件,

然后我们只需要在pom文件中引入对应的坐标就可以

二,怎么定义(以阿里云OSS为例)

        1, 定义两个组件模块

  •   org.mybatisspring.boot:mybatis-spring-boot-starter
  • 这个模块中什么代码都不需要有------只需要在pom文件中定义
  1. 自定义aliyun-oos-spring-boot-starter
    1. 其他的都删除只保留
    2. 精简pom文件
  • org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure
  • 在这个包中进行自动配置功能
  1. 自定义aliyun.oss-spring-boot-autoconfigure
    1. 其他的都删除----
    2. -启动类和application配置文件也删除---测试类也删除
    3. 然后再starter中的配置文件中引入autoconfigure依赖----非常重要
    4. 在autoconfigure的pom文件中引入aliyunoss的依赖
  2. 将工具类放到com.aliyun.oss包下面
    1. 定义一个自动配置类AliOSSConfiguration
      package com.aliyun.oss;import org.springframework.boot.context.properties.EnableConfigurationProperties;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;@Configuration
      @EnableConfigurationProperties(AliOSSProperties.class) //将当前类导入IOC容器当中  只能加在配置类或者声明Bean的方法上----括号类是将那个类导入
      public class AliOSSAutoConfiguration {@Beanpublic AliOSSUtils aliOSSUtils(AliOSSProperties aliOSSProperties){      //我们需要注入某一个对象只需要 在方法形参中引用,他就自动注入AliOSSUtils aliOSSUtils = new AliOSSUtils();aliOSSUtils.setAliOSSProperties(aliOSSProperties);return aliOSSUtils;}
      }
      

  3. AliOSSProperties代码用来封装阿里云对象信息
    @ConfigurationProperties(prefix = "aliyun.oss")
    public class AliOSSProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;public String getEndpoint() {return endpoint;}public void setEndpoint(String endpoint) {this.endpoint = endpoint;}public String getAccessKeyId() {return accessKeyId;}public void setAccessKeyId(String accessKeyId) {this.accessKeyId = accessKeyId;}public String getAccessKeySecret() {return accessKeySecret;}public void setAccessKeySecret(String accessKeySecret) {this.accessKeySecret = accessKeySecret;}public String getBucketName() {return bucketName;}public void setBucketName(String bucketName) {this.bucketName = bucketName;}
  4. 自定义自动配置文件(要想Spring启动时自动加载该文件必须配置)--两级目录下创建一个文件文件名为

    org.springframework.boot.autoconfigure.AutoConfiguration.imports
  5. 然后将自动配置文件的全类名复制进去

http://www.lryc.cn/news/215465.html

相关文章:

  • 通过条件竞争实现内核提权
  • vue实现换肤功能
  • 嵌入式软件工程师面试题——2025校招社招通用(八)
  • 背包笔记
  • 【Redis 速通】Redis 在 Linux 上的单机服务快速搭建与部署(附完整流程步骤及命令代码)
  • 前端JavaScript
  • C语言程序设计(第五版)谭浩强 第三章课后题答案
  • uni-app 解决钉钉小程序日期组件uni-datetime-picker不兼容ios问题
  • 【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
  • 视频增强修复软件Topaz Video AI mac中文版支持功能
  • C# 使用Thread类建线程
  • asyncio协程框架
  • TSINGSEE智慧安防:AI人员入侵检测算法的工作原理及应用场景概述
  • Python:PDF转长图像和分页图像
  • 第48天:内置对象方法、 前端基础之BOM和DOM
  • CMake系列EP02: 构建可执行程序和库
  • 比亚迪今年的薪资。。
  • 【OpenCV实现图像找到轮廓的不同特征,就像面积,周长,质心,边界框等等。】
  • 数仓建模—数仓建设概论
  • Docker dnmp 多版本php安装 php8.2
  • Distilling the Knowledge in a Neural Network【论文解析】
  • 基于深度学习的自动驾驶汽车语义分割与场景标注算法研究。
  • 国内可用超丝滑ChatGPT4.0(附网址及微信入口)
  • linux入门---线程的同步
  • UI设计一定不能错过的4款常用工具
  • JavaScript 基础 - 第2天
  • MyBatis和JDBC异同点
  • 关于yarn安装一些东西报错时的处理方法
  • datagrip 使用自定义参数
  • css实现平行四边形按钮