Spring启动获取配置

时间:2016-10-11 15:10:32

标签: spring-boot configuration

我想在Spring启动应用程序中排除所有未使用的配置。问题是我不知道哪一个使用哪个不使用。 是否可以在运行时获取Spring引导应用程序中使用的所有配置并将它们写入从max(i - 1, 1)注释中读取的文件?如果不是有另一种方法可以做这样的事情吗?

1 个答案:

答案 0 :(得分:1)

我个人认为你应该使用Spring-Boot,因为大多数(如果不是全部)自动配置只有在类路径上找到某个类时才会启用。

@自己导入自动配置类

我不知道这是不是一个好主意,但是 可以完全跳过自动配置而不使用val mostActiveUser = followCount.sortBy(- _._2).head 和/或@SpringBootApplication。 相反,将Spring Boot入口点定义为普通bean,@EnableAutoConfiguration@ComponentScan您选择的自动配置类:

@import

您可以导入所需的配置,而不是让AutoConfiguration启动配置(基于类路径上某些类的@Conditional存在)。

这样的事情会让你前进(对于一个最小的网络容器):

@ComponentScan(excludeFilters = @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class))
@Import({EmbeddedServletContainerAutoConfiguration.class})
public class Launcher {
    public static void main(String[] args) {
        SpringApplication.run(Launcher.class, args);
    }
}

请注意,在您意识到并添加其自动配置之前,这可能会导致您禁用某些基本功能。

您将在@Import({EmbeddedServletContainerAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class, DispatcherServletAutoConfiguration.class, ConfigurationPropertiesAutoConfiguration.class, ServerPropertiesAutoConfiguration.class, WebMvcAutoConfiguration.class, MessageSourceAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class}) 中找到自动配置类列表:

spring-boot-autoconfigure-xxx.jar/META-INF/spring.factories