SpringMVC的bean的加载及控制

简介: SpringMVC的bean的加载及控制

2:bean的加载及控制

目的:为了防止SpringMVC所管控的bean被Spring加载

2.1:设置过滤规则

@Configuration
//@ComponentScan({"com.itheima.service","com.itheima.dao"})
//设置spring配置类加载bean时的过滤规则,当前要求排除掉表现层对应的bean
//excludeFilters属性:设置扫描加载bean时,排除的过滤规则
//type属性:设置排除规则,当前使用按照bean定义时的注解类型进行排除
//classes属性:设置排除的具体注解类,当前设置排除@Controller定义的bean
@ComponentScan(value="com.itheima",
    excludeFilters = @ComponentScan.Filter(
        type = FilterType.ANNOTATION,
        classes = Controller.class
    )
)
public class SpringConfig {
}

2.2:小注意点

当Spring配置类配置相应的过滤规则后,SpringMVC配置类要有以下注意点:

  • Spring中把它所需要扫描的包路径全给加好
  • 第二种:
@Configuration  //如果加了bean声明,那么把包扫描去掉,否则Spring过滤后,SpringMVC会再次加载
//@ComponentScan("com.itheima.controller")
public class SpringMvcConfig {
}

2.3:web配置类简化开发

原始的是继承AbstractDispatcherServletInitializer接口,并实现三个方法。

现在简化开发继承了AbstractAnnotationConfigDispatcherServletInitializer接口,反射原理。

例:

//web配置类简化开发,仅设置配置类类名即可
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{SpringConfig.class};
    }
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

2.4:测试

现在测试要创建AnnotationConfigApplicationContext对象

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);


相关文章
|
7月前
|
Java Spring
SpringMVC中bean的加载控制
SpringMVC中bean的加载控制
40 0
|
XML 存储 前端开发
解析 SpringMVC 父子容器及九大内置组件加载过程
解析 SpringMVC 父子容器及九大内置组件加载过程
117 1
|
小程序 Java 程序员
SpringMVC bean加载控制 -- SpringMVC快速入门保姆级教程(二)
SpringMVC bean加载控制 -- SpringMVC快速入门保姆级教程(二)
SpringMVC何时加载的controller里的mapping方法
疑问 其实我一直有一个疑问,因为我在跟自己写的controller的生命周期源码的时候,没有发现解析mapping的代码,然后我就在想,什么时候解析并加载的mapping呢??? 结果是一个新的类 RequestMappingHandlerMapping ,惊呆了,我的小伙伴
102 0
|
Java 应用服务中间件 Maven
|
Java Spring
Spring整合SpringMVC时避免Spring加载两次bean的配置方法
Spring整合SpringMVC时避免Spring加载两次bean的配置方法
|
前端开发 Java 开发者
@FeignClient中的@RequestMapping也被SpringMVC加载的问题解决
@FeignClient中的@RequestMapping也被SpringMVC加载的问题解决
369 0
|
Java 数据库连接 网络架构
SpringMVC加载配置Properties文件的几种方式
SpringMVC加载配置Properties文件的几种方式 最近开发的项目使用了SpringMVC的框架,用下来感觉SpringMVC的代码实现的非常优雅,功能也非常强大, 网上介绍Controller参数绑定、URL映射的文章都很多了,写这篇博客主要总结一下SpringMVC加载配置Properties文件的几种方式 1.
3509 0