springboot项目无法读取第三方jar包配置文件,无法注入bean

springboot 项目读取不到第三方jar包的配置类,无法注入bean

工具类:

//这里一定要注意这个注解,否则类不被spring管理,无法注入
@Component
public final class MinioUtils {
  //因为工具类的方法都是静态的方便调用
    private static MinioClient minioClientTemp;
  //先注入一个 非静态的
    @Autowired
    MinioClient minioClient;
  //然后用这个注解 初始化 赋值
    @PostConstruct
    public void init() {
        minioClientTemp = minioClient;
    }
    private MinioUtils(){}

使用jar包的项目使要用到的配置类(根据自己的情况写,需要什么写什么):

@Configuration
@Data
public class Config {
    @Value("${minio.endpoint}")
    private String endpoint;
    @Value("${minio.accessKey}")
    private String accessKey;
    @Value("${minio.secretKey}")
    private String secretKey;

    @Bean
    public MinioClient minioClient(){
        return MinioClient.builder()
                .endpoint(endpoint)
                .credentials(accessKey,secretKey)
                .build();
    }
}

yml配置文件(根据自己的项目写,此配置文件和配置类仅限于本项目)

# 应用名称
spring:
  # 配置文件上传大小限制
  servlet:
    multipart:
      max-file-size: 200MB
      max-request-size: 200MB
minio:
  endpoint: xxxx
  accessKey: xxx
  secretKey: xxx
//启动类一定要扫描包,要不然会注入失败(空指针异常)
@SpringBootApplication()
//这里还需要扫描controller包,否则会404
@ComponentScan(basePackages = {"com.jm.component.minio","com.example.demo"})
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@PostConstruct 注解 参考链接:https://blog.youkuaiyun.com/qq_37248504/article/details/108763378

### Spring Boot 项目启动流程 Spring Boot启动过程主要分为以下几个阶段: 1. **加载配置文件** 当应用程序启动时,`SpringApplication.run()` 方法会被调用。此方法会读取 `application.properties` 或 `application.yml` 文件中的配置项,并将其注入到环境中。 2. **初始化 SpringApplication 实例** 创建 `SpringApplication` 对象的过程中,框架会注册监听器和应用事件处理器,同时设置默认属性。 3. **准备环境** 调用 `prepareEnvironment()` 方法,解析命令行参数并将它们与配置文件结合起来形成最终的应用程序上下文环境。 4. **创建 ApplicationContext 容器** 根据项目的类型(Web 应用或非 Web 应用),选择合适的容器实现类(如 `AnnotationConfigServletWebServerApplicationContext`)。随后加载所有的 Bean 并完成依赖注入。 5. **刷新容器并触发生命周期回调** 执行一系列操作以确保所有组件都已准备好运行,比如扫描包内的注解、实例化单例对象等。最后发布 `ContextRefreshedEvent` 来通知整个上下文已经完全初始化完毕。 --- ### 常见报错及解决方法 #### 一、NoSuchMethodError 和 IllegalStateException 报错 这类错误可能源于不同版本间的 API 不匹配或者是某些必要的条件未满足而引发的状态异常。具体来说: - 需要仔细核对各个库之间的兼容关系; - 查看堆栈跟踪信息定位确切位置后再做针对性调整[^1]。 #### 二、HttpMessageNotReadableException 错误 当控制器接收 JSON 数据失败时常会出现该问题。原因可能是客户端发送过来的内容不符合预期格式或者字段名大小写有差异等问题造成反序列化过程中出现问题。可以通过修改实体类定义增加 @JsonProperty 注解等方式加以修正[^1]。 #### 三、Actuator 相关功能不可用的情况 如果发现 actuator 提供的一些健康检查等功能失效,则应该重点排查以下几点: - 是否遗漏添加 spring-boot-starter-actuator starter 到 pom.xml 中去; - 检查是否有冲突性的 jar 存在影响到了正常的加载逻辑; - 如果涉及安全性方面的考量还需要额外配置好相应的权限控制策略[^2]。 #### 四、HTTP 状态码为 5XX 类型的服务端错误 对于像 500, 502, 503 及 504 这样的服务端级别错误消息而言,往往意味着后台出现了较为严重的状况阻止了请求的成功执行。例如数据库连接断开、第三方接口无响应等情况均有可能导致此类现象的发生。因此建议开发人员密切关注日志记录寻根源所在,并采取相应措施予以排除[^3]。 ```java @SpringBootApplication public class DemoApplication { public static void main(String[] args) { try { SpringApplication.run(DemoApplication.class, args); } catch (Throwable ex) { System.err.println("Failed to start application due to: " + ex.getMessage()); throw new RuntimeException(ex); // Re-throw exception after logging it. } } } ``` 以上代码片段展示了如何捕获全局级别的异常以便更好地理解为什么应用未能成功启动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值