SpringMVC中的bean加载控制

在之前的实例中,一个SpringMVC项目由两个需要加载的配置类SpringConfigSpringMvcConfig,它们分别需要加载不同的内容:
SpringConfig:加载业务bean(service),功能bean(DataSource,SqlSessionFactoryBean,MapperScannerConfigurer等)。
SpringMvcConfig:加载其相关bean(表现层bean),也就是controller包下的类。
那么如何让SpringSpringMVC分开加载各自的内容?
方法一:设置更精细的扫描范围,在SpringMVC的配置类SpringMvcConfig中将其扫描范围设置到controller;在Spring的配置类SpringConfig中将其扫描范围设置到servicedao
方法二:修改Spring配置类,设定扫描范围排除掉controller包中的bean

@Configuration
@ComponentScan(value="com.itheima",
	excludeFilters=@ComponentScan.Filter(
		type = FilterType.ANNOTATION,
		classes = Controller.class
	)
)
public class SpringConfig {
}
  • excludeFilters属性:设置扫描加载bean时,排除的过滤规则
  • type属性:设置排除规则,当前使用按照bean定义时的注解类型进行排除
    ANNOTATION:按照注解排除
    ASSIGNABLE_TYPE:按照指定的类型过滤
    ASPECTJ:按照Aspectj表达式排除,基本上不会用
    REGEX:按照正则表达式排除
    CUSTOM:按照自定义规则排除
  • classes属性:设置排除的具体注解类,当前设置排除@Controller定义的bean

注意:测试的时候,需要把SpringMvcConfig配置类上的@ComponentScan注解注释掉。
因为Spring配置类扫描的包是com.itheima,SpringMVC的配置类SpringMvcConfig上有一个@Configuration注解,也会被Spring扫描到,这样又会扫描到controller

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值