不同的Bean由不同的框架加载,例如以下,controller(表现层bean)由springmvc加载,service、dao(业务bean和功能bean)等由spring加载,既可以精准写出要扫描的package,也可以采用排除法:
@Configuration
@ComponentScan(value = "com.yuan",
excludeFilters = @ComponentScan.Filter(
type = FilterType.ANNOTATION,
classes = Controller.class
)
)
//上面的注解含义是:以注解方式排除,排除所有是@controller的注解的bean
public class SpringConfig {
}
注意⭐
有一个传导规则(我自己起的)
虽然SpringConfig
中排除了controller的bean,但是由于扫描了com.yuan
下所有非controller
的包,所以也会扫描到SpringMvcConfig
,由于SpringMvcConfig
中带@Configuration
注解,所以spring也会加载带该注解的类下的内容,所以就会把去掉的com.yuan.controller
中的bean又添加回来。
