第一步,从配置文件注入参数
为了让参数更灵活,通常会使用@Value之类的注解,通过配置文件注入,但是使用@Value会发现你的编辑器无法识别自定义参数,更不能提示完整的参数名。可以使用@ConfigurationProperties标注在实体类上,即可在配置文件通过配置注入参数,需要注入的属性需要有setter方法。
使用@ConfigurationProperties还需要引入以下maven。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
颜色不再是黄色的⚠,IDEA可通过点击直接跳转到源码
标注@ConfigurationProperties的类还需要向spirng注册,可以使用@Component或@EnableConfigurationProperties
第二步,引入的jar如何向spring注册
第1种方式,包扫描
使用springBoot的@SpringBootApplication注解中的scanBasePackages或scanBasePackageClasses,这种方式引入jar包后,还需要在启动类修改扫描路径,不推荐。
第2种方式,提供注解
使用注解,在jar包中提供一个启动注解,在引入jar包的项目中,使用注解让jar中的类生效,很多组件都是通过这种方式实现,如下。这种方式比较灵活,但还是需要手动启动。
注解主要是通过@Import引入指定的类
第3种方式,引入即自动注册
通过在jar包中加入spring.factories文件,来实现自动向spring注册。这种方式引入jar包即可自动注入spring.factories配置的类,最方便。
项目结构如下
配置如下
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.common.utils.EmailUtils