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...
}