Linux 学习笔记_3_Linux常用命令_3_文件搜索命令
2013-12-26 16:35
936 查看
我也是刚学spring不久,在刚照着别的项目配置完一个springmvc框架的时候,,发现在url写请求,跳转不到controller。经过百度和google后,发现我有个地方忽略了。。
就是<context:component-scan.../>的use-default-filters属性,我设置为false。因为如果不设置这个值,默认为true,就会扫描base-package属性指定的包下的所有的类。--这个在springmvc+spring+hibernate等集成时最容易出问题的地,最典型的错误就是:事务不起作用。
这我也是在百度才知道的。-- <context:component-scan>会交给org.springframework.context.config.ContextNamespaceHandler处理;
-- 如果没有配置<context:component-scan>的use-default-filters属性,则默认为true,在创建ClassPathBeanDefinitionScanner时会根据use-default-filters是否为true来调用如下代码:
就是<context:component-scan.../>的use-default-filters属性,我设置为false。因为如果不设置这个值,默认为true,就会扫描base-package属性指定的包下的所有的类。--这个在springmvc+spring+hibernate等集成时最容易出问题的地,最典型的错误就是:事务不起作用。
这我也是在百度才知道的。-- <context:component-scan>会交给org.springframework.context.config.ContextNamespaceHandler处理;
registerBeanDefinitionParser("component-scan", new ComponentScanBeanDefinitionParser());-- ComponentScanBeanDefinitionParser会读取配置文件信息并组装成org.springframework.context.annotation.ClassPathBeanDefinitionScanner进行处理;
-- 如果没有配置<context:component-scan>的use-default-filters属性,则默认为true,在创建ClassPathBeanDefinitionScanner时会根据use-default-filters是否为true来调用如下代码:
protected void registerDefaultFilters() { this.includeFilters.add(new AnnotationTypeFilter(Component.class)); ClassLoader cl = ClassPathScanningCandidateComponentProvider.class.getClassLoader(); try { this.includeFilters.add(new AnnotationTypeFilter( ((Class<? extends Annotation>) cl.loadClass("javax.annotation.ManagedBean")), false)); logger.info("JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning"); } catch (ClassNotFoundException ex) { // JSR-250 1.1 API (as included in Java EE 6) not available - simply skip. } try { this.includeFilters.add(new AnnotationTypeFilter( ((Class<? extends Annotation>) cl.loadClass("javax.inject.Named")), false)); logger.info("JSR-330 'javax.inject.Named' annotation found and supported for component scanning"); } catch (ClassNotFoundException ex) { // JSR-330 API not available - simply skip. }可以看到默认ClassPathBeanDefinitionScanner会自动注册对@Component、@ManagedBean、@Named注解的Bean进行扫描。
我原本的配置只有Repositroty,和Service,少了对controller的扫描,所以才会跳不到controller。
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
相关文章推荐
- [Linux学习笔记] Linux常用命令 - 文件搜索命令
- Linux学习笔记(5)Linux常用命令之文件搜索命令
- Linux菜鸟学习笔记(常用基本命令之文件搜索)
- Linux 学习笔记_3_Linux常用命令_1_文件管理命令
- 【Linux学习笔记】三、文件搜索命令
- Linux学习笔记之--常用文件操作及目录管理命令
- linux学习笔记:文件搜索命令find
- [Linux学习笔记] Linux常用命令 - 文件管理命令
- 【Linux学习笔记】8:文件搜索命令find
- Linux学习笔记---讲9.2.1 文件系统常用命令----- df 、du等
- Linux学习笔记2——Linux中常用文件目录操作命令
- linux笔记:linux常用命令-文件搜索命令
- 【Linux学习笔记】6:文件搜索命令locate
- 学习笔记☞Linux常用命令【二】 (文件查找统计命令、打包解包命令、管理命令)
- Linux学习笔记3_文件系统常用命令
- 我的Linux学习笔记1(文件操作常用命令)
- Linux学习笔记:常用搜索命令
- Linux学习之——Linux常用命令(三):文件搜索命令
- Linux学习笔记--locate命令(文件搜索命令)
- Linux学习笔记--find命令(文件搜索命令)