优化 Spring Boot 项目启动速度:高效管理大量 Bean 注入
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
@Configuration
@ComponentScan(basePackages = "com.example.app",
excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class))
public class RootConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
// 其他需要注册为Beans的组件
}
@Configuration
@Import(RootConfig.class) // 这样可以避免重复扫描和实例化Beans
public class WebConfig {
// Web相关配置
}
这个代码示例展示了如何通过@Configuration
和@ComponentScan
来指定Spring Boot扫描的包路径和排除非配置类。同时,它展示了如何创建一个PropertySourcesPlaceholderConfigurer
Bean来替代@PropertySource
注解,以便能够在配置文件中使用占位符。最后,WebConfig
通过@Import
导入了RootConfig
,这样在Web配置中就不需要重复扫描和实例化相同的Beans。
评论已关闭