如何避免组件扫描期间在Spring中不需要的bean?

时间:2018-11-10 06:37:19

标签: java regex spring spring-mvc spring-boot

在我的项目中,一包中有大约30粒豆。我只想使用组件扫描从该软件包中加载一个Details bean,以及如何避免加载其他bean?在下面的示例中,我仅对Details bean感兴趣,是否不需要加载其他bean?但是下面的一个不起作用?

Example :

com.spring.test
Student.java
Details.java
Contacts.java

@Configuration
@ComponentScan(basePackages={,"com.spring.test"},
includeFilters=@Filter(type=FilterType.REGEX, pattern="com.spring.test.Details"), excludeFilters=@Filter(type=FilterType.REGEX, pattern="com.spring.test.*^((?!Details).)*$"))
public class AppConfig {


}

2 个答案:

答案 0 :(得分:1)

在您的bean定义中添加@Lazy或在类级别添加@Lazy以延迟加载所有bean。

答案 1 :(得分:0)

您的Java配置文件应带有@Configuration批注。之后,您的Spring应用程序将从该文件加载配置。

请参阅:https://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/ch02.html