Java 自定义Spring引导自动配置模块上的IntelliJ属性文件检测
想象一下这样的项目结构:Java 自定义Spring引导自动配置模块上的IntelliJ属性文件检测,java,spring,spring-boot,intellij-idea,Java,Spring,Spring Boot,Intellij Idea,想象一下这样的项目结构: root |-> libs | |-> some-lib-1-parent | |-> lib-impl | |-> lib-spring-boot-autoconfiguration |-> services |-> some-spring-service-1 |-> some-spring-service-2 模块lib-spring引导自动配置仅包含自动配置类,因此类用@
root
|-> libs
| |-> some-lib-1-parent
| |-> lib-impl
| |-> lib-spring-boot-autoconfiguration
|-> services
|-> some-spring-service-1
|-> some-spring-service-2
模块lib-spring引导自动配置
仅包含自动配置类,因此类用@Configuration
注释并通过/META-INF/spring.factories
注册
此类配置类还经常声明如下配置属性:
root
|-> libs
| |-> some-lib-1-parent
| |-> lib-impl
| |-> lib-spring-boot-autoconfiguration
|-> services
|-> some-spring-service-1
|-> some-spring-service-2
@配置(proxyBeanMethods=false)
@PropertySource(value=“classpath:/lib name.yml”,factory=YamlPropertySourceFactory.class)
@EnableConfigurationProperties(LibSpecificProperties.class)
类MyLibAutoConfiguration{
//bean定义
}
问题在于,文件lib name.yml
(位于模块的/src/main/resources/lib name.yml
)将不会被检测为spring配置文件,并且不会根据生成的属性元数据自动完成或编制文档。这是因为IntelliJ无法将此模块识别为具有spring上下文,因为它不包含用@SpringBootApplication
注释的类。我可以添加该注释,它将按预期工作,但我不希望滥用注释来欺骗IntelliJ