如何写一个公共jar包

1,433 阅读1分钟

第一步,从配置文件注入参数

为了让参数更灵活,通常会使用@Value之类的注解,通过配置文件注入,但是使用@Value会发现你的编辑器无法识别自定义参数,更不能提示完整的参数名。可以使用@ConfigurationProperties标注在实体类上,即可在配置文件通过配置注入参数,需要注入的属性需要有setter方法。

使用@ConfigurationProperties还需要引入以下maven。

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

颜色不再是黄色的⚠,IDEA可通过点击直接跳转到源码 1616660247(1).jpg 标注@ConfigurationProperties的类还需要向spirng注册,可以使用@Component或@EnableConfigurationProperties 1616660272(1).jpg

第二步,引入的jar如何向spring注册

第1种方式,包扫描

使用springBoot的@SpringBootApplication注解中的scanBasePackages或scanBasePackageClasses,这种方式引入jar包后,还需要在启动类修改扫描路径,不推荐。

第2种方式,提供注解

使用注解,在jar包中提供一个启动注解,在引入jar包的项目中,使用注解让jar中的类生效,很多组件都是通过这种方式实现,如下。这种方式比较灵活,但还是需要手动启动。 1616658868(1).jpg 注解主要是通过@Import引入指定的类 1616660065(1).jpg

第3种方式,引入即自动注册

通过在jar包中加入spring.factories文件,来实现自动向spring注册。这种方式引入jar包即可自动注入spring.factories配置的类,最方便。

项目结构如下

1616659406(1).jpg

配置如下

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.common.utils.EmailUtils