原创内容,转发请保留:http://www.cnblogs.com/iceJava/p/6930118.html,非常欢迎指正,谢谢 之前遇到该问题,今天查看了下 spring 4.x 的代码 一,先理解下 context:component-scan 处理过程: 复制代码 1 2 17 18 19 20 复制代码 二:单例模式下的多实例问题 1. 包结构: MessageController、MessageConsumerListener、MessageProviderService 分别 使用了 @Controller @Service @Service 2. application.xml 配置文件片段 1 2 3 4   不难理解,在该配置下,Spring 容器 扫描到:MessageConsumerListener、MessageProviderService 并实例化, 其中 MessageController 被黑名单排除 3. dispatcher-servlet.xml 配置文件片段 1 2 3 4   Spring MVC 容器 扫描到了 MessageConsumerListener、MessageProviderService、MessageController 并实例化 4. 通过 vituralVM,我们得到了证实: 5. 在 application-servlet.xml 增加 use-default-filters="false" 之后 三:事务失效问题   a. 一般情况下,我们都是在 Spring 配置中事务,因此只有 spring 容器中的 service 对象 被 AOP 注入事务;换句话说, Spring MVC 容器中的service对象 是没有进行 AOP 事务注入的 b. 因为 Spring mvc 中注入的 service 对象是 自身容器中的 对象,而不是 Spring 容器的 备注:第三点,是本人自己的猜想,没来得及去验证。 http://www.cnblogs.com/iceJava/p/6930118.html