context:component-scan扫描使用的use-default-filters

  如下方式可以成功扫描到@Controller注解的Bean,不会扫描@Service/@Repository的Bean。

<context:component-scan base-package="xx.xx.xx.controller">   <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>   
</context:component-scan>

  但是如下方式,不仅仅扫描@Controller,还扫描@Service/@Repository的Bean,可能造成一些问题

  此处只应该加载表现层组件,如果此处还加载dao层或service层的bean会将之前容器加载的替换掉,而且此处不会进行AOP织入,所以会造成AOP失效问题(如事务不起作用)。

<context:component-scan base-package="xx.xx.xx">   <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>   
</context:component-scan>  

  注意:xx.xx.xx包下可能包括controller、service等。

  <context:component-scan>的use-default-filters属性,则默认为true。ClassPathBeanDefinitionScanner会自动注册对@Component、@ManagedBean、@Named注解的Bean进行扫描。

  在进行扫描时会通过include-filter/exclude-filter来判断你的Bean类是否是合法的:即首先通过exclude-filter 进行黑名单过滤;然后通过include-filter 进行白名单过滤;否则默认排除。

  所以不需要扫描@Service/@Repository的Bean,则use-default-filters=“false”禁用掉。

   参考博客:http://jinnianshilongnian.iteye.com/blog/1423971

转载于:https://www.cnblogs.com/lcngu/p/5714673.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021-08-17

三位运算符 最后的连个表达式都需要为同一个类型 所以Integer会自动提升类型为Double ; 所以o1 1.0; 这种写法就不需要统一类型 第一个&#xff1a;两个i,j为两个地址&#xff1b; 第二个&#xff1a;和第三个同。 第三个&#xff1a; 再Integer类中 有静态生命一个数组存…

Redmine性能测试

Redmine部署使用有一个月了&#xff0c;反馈有时很慢。 1、查看log发现&#xff0c;事务更新后要发送Email&#xff0c;如果连接邮件服务器有问题&#xff0c;会等待超时&#xff0c;导致很慢。 2、解决发送邮件问题后&#xff0c;仍然有时慢&#xff0c;ActiveRecord显示要几百…

包装类转换基本数据类型与基本数据类型转换为包装类

包装类转换基本数据类型 基本数据类型转换为包装类 新特性&#xff1a; 自动装箱&#xff08;基本数据类型转换为包装类&#xff09;&#xff1a; 自动拆箱&#xff08;包装类转换基本数据类型&#xff09;&#xff1a; 基本数据类型、包装类向String 的转换 方式1&#xff1…

前端学习(2038)vue之电商管理系统电商系统之优化nprogress加载进度条

main.js import Vue from vue import App from ./App.vue import router from ./router import ./plugins/element.js //导入字体图标 import ./assets/fonts/iconfont.css Vue.config.productionTip false //导入全局样式 import ./assets/css/global.css import TreeTable …

Qt之Concurrent框架

简述 QtConcurrent 命名空间提供了高级 API&#xff0c;使得可以在不使用低级线程原语&#xff08;例如&#xff1a;互斥、读写锁、等待条件或信号量&#xff09;的情况下编写多线程程序&#xff0c;使用 QtConcurrent 编写的程序根据可用的处理器核心数自动调整所使用的线程数…

Eclipse中单元测试

再开发时候只需要Test即可

01-subgradients_notes

Subgradients 次梯度 S. Boyd and L. Vandenberghe Notes for EE364b, Stanford University, Winter 2006-07 April 13, 2008 1 定义 我们称一个矢量g∈Rn是函数f:Rn→R在x∈domf处的次梯度&#xff0c;如果对于所有的z∈domf满足&#xff1a; f(z)≥f(x)gT(z−x)(1)如果f是…

解决Unity3D导出apk失败:Failed to re-package resources

前几天把系统重装了一下&#xff0c;重新安装Unity3D和Android Studio之后发现过去的文件都不能导出了。 错误信息主要包括&#xff1a; CommandInvokationFailure: Failed to re-package resources. See the Console for details.E:\Android\sdk\build-tools\24.0.0\aapt.exe …

代码块的总结

class Mid extends Root{ static { System.out.println("Mid的静态初始化块"); } { System.out.println("Mid的普通初始化块"); } public Mid() { super(); System.out.println("Mid的无参构造器…

改进MySQL Order By Rand()的低效率

Author&#xff1a;flymorn Source&#xff1a;飘易Categories&#xff1a;PHP编程 PostTime&#xff1a;2011-1-14 15:35:07正 文&#xff1a;最近由于需要研究了一下MYSQL的随机抽取实现方法。举个例子&#xff0c;要从tablename表中随机提取一条记录&#xff0c;大家一般的写…

匿名子类对象

匿名对象的意义&#xff1a;一般只使用一次&#xff0c;图方便&#xff0c;不需要重新写一个类。 匿名类通常都是的形式结构通常都是&#xff1a; abstract class A ... 创建匿名类&#xff1a; A a1 new A(){ 重写所有抽象类的方法 } package AbstractTest2; public cla…

内部类访问局部变量的时候,为什么变量必须加上final修饰

这里的局部变量就是在类方法中的变量&#xff0c;能访问方法中变量的类当然也是局部内部类了。我们都知道&#xff0c;局部变量在所处的函数执行完之后就释放了&#xff0c;但是内部类对象如果还有引用指向的话它是还存在的。例如下面的代码&#xff1a; class Outer{ …