29-bean的加载控制

文章讲述了如何在Spring框架中分别控制SpringMVC和业务bean的加载,以避免错误的加载。可以通过在@ComponentScan注解中设定扫描范围并排除特定注解(如@Controller)来防止SpringMVC的bean被误加载到Spring管理中。此外,也可以精确指定扫描的包,如只扫描service和dao包。
摘要由CSDN通过智能技术生成

Controller加载控制与业务bean加载控制

SpringMVC相关bean(表现层bean)
Spring控制的bean
  • 业务bean (Service)
  • 功能bean (DataSource等)

一.因为功能不同,如何避免Spring错误的加载到SpringMVC的bean?

加载spring控制的bean的时候排除掉SpringMVC控制的bean

1.SpringMVC相关bean加载控制

  • SpringMVC加载的bean对应的包均在com.itheima.controller包内

2.Spring相关bean加载控制方法

  • 方式一:Spring加载的bean设定扫描范围为com.gy,排除掉包含controller注解的bean
@ComponentScan(
    basePackages = {"com.gy"},
        excludeFilters = {
                @ComponentScan.Filter(
                        type = FilterType.ANNOTATION,
                        classes = Controller.class
                )
        }
)
public class AppConfig {
    // 在这里定义其他的配置

    // 定义其他的 Bean
}

上述代码中,使用 @ComponentScan 注解来指定要扫描的基础包路径为 com.gy。然后,通过 excludeFilters 属性来设置排除规则。

上述代码需要放在一个配置类中(通常以 @Configuration 注解标记),然后在 Spring 的配置中引入这个配置类。

当 Spring 加载时,它将只扫描 com.gy 包下除了 com.gy.controller 包以及其子包外的所有组件,并将它们作为 Bean 进行加载和管理。

  • 方式二:Spring加载的bean设定扫描范围为精准范围,例如service包、dao包等方式
@Configuration
@ComponentScan(basePackages = {"com.example.service", "com.example.dao"})
public class AppConfig {
    // 配置其他Bean...
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值