0
点赞
收藏
分享

微信扫一扫

第三方 jar 包扫描不到 bean 问题

MaxWen 2021-09-23 阅读 116
Java 开发

如果你提供了一个Jar包供第三方用户使用,那么你这个jar包中的Bean,能被第三方加载么?

最近开发中遇到问题是这样的,自己开发的Jar包,因为包路径和项目路径不一样,比如Jar包主要代码包为 com.ec 而项目主要路径为 com.auth,在项目中直接
@Autowired,加载不到类。

    @Autowired
    private RequestServiceUtil requestServiceUtil;

研究了一下,需要在自己的 Jar 包进行一下配置,即可实现注入。

将配置放在指定的文件中即可,使用者会自动加载,从而避免的代码的侵入:

  1. 在资源目录下新建目录 META-INF
  2. 在 META-INF 目录下新建文件 spring.factories
  3. 在文件中添加
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.ec.GDSRequestServiceUtilImpl,com.ec.StarterAutoConfig

  1. StarterAutoConfig 类内容如下:
@Import({SpringUtil.class})
//@ConditionalOnMissingBean({SpringUtil.class})
@EnableConfigurationProperties({GDSConfig.class, ApplicationSltConfig.class})
public class StarterAutoConfig {
}
  1. pom 添加如下依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

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

打包上传到 maven 私服,即可。

2019.11.14 18:36
上海 虹桥V1

举报

相关推荐

0 条评论