0 0

spring自动注入并过滤的问题0

接口:com.eman.menu.dao.MenuDao

两个实现类:
com.eman.menu.dao.impl.oracle.MenuDaoImpl
com.eman.menu.dao.impl.mssql.MenuDaoImpl

事件类代码:
@Service
@Transactional
public class MenuService {

@Resource
private MenuDao menuDao;

public List<Menu> queryAllMenu() {
System.out.println("------------");

return this.menuDao.findList();
}

public void query() {

}
}

applicationContext.xml 配置
<context:component-scan base-package="com.eman.*.dao" >
<context:exclude-filter type="regex" expression="com.eman.*.dao.impl.oracle.*"/>
</context:component-scan>

我的目的:
    我想通过配置指定spring自动注入实现类的,比如上面的配置我想MenuDao menuDao 对象是获得oracle包下的对象,而不mssql包下的对象。

目前的错误信息是,它同时加载了两个对象,一个是mssql下的,一个是oracle下的,我试过很多次,都不能解决这个问题。我把报错的信息贴出来
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [applicationContext.xml]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'MenuDao' for bean class [com.eman.menu.dao.impl.oracle.MenuDaoImpl] conflicts with existing, non-compatible bean definition of same name and class [com.eman.menu.dao.impl.mssql.MenuDaoImpl]

问题补充:最新测试结果:
<context:component-scan base-package="com.eman.*.dao.*" use-default-filters="true">
<context:exclude-filter type="regex" expression="com.eman.*.dao.impl.oracle.*"/>
</context:component-scan>
它获取的mssql包下的对象,运行成功

<context:component-scan base-package="com.eman.*.dao.*" use-default-filters="true">
<context:exclude-filter type="regex" expression="com.eman.*.dao.impl.mssql.*"/> 
</context:component-scan>

则报错:
java.lang.ClassCastException: com.eman.core.dao.impl.oracle.SysInitDaoImpl cannot be cast to com.eman.core.dao.impl.mssql.SysInitDaoImpl
at com.eman.core.service.SysInitService.contextInitialized(SysInitService.java:30)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2012-7-26 14:45:38 org.apache.catalina.core.StandardContext start

问题补充:已经解决,配置是正确的,只是其它代码写错了。
2012年7月26日 14:19
目前还没有答案

相关推荐

    Spring攻略(第二版 中文高清版).part1

    6.2 在你的Servlet和过滤器中使用Spring 214 6.2.1 问题 214 6.2.2 解决方案 215 6.2.3 工作原理 215 6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4...

    Spring攻略(第二版 中文高清版).part2

    6.2 在你的Servlet和过滤器中使用Spring 214 6.2.1 问题 214 6.2.2 解决方案 215 6.2.3 工作原理 215 6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4...

    从零开始学Spring Boot

    1.19 Spring Boot使用Druid(编程注入) 1.20 Spring Boot普通类调用bean 1.21 使用模板(thymeleaf-freemarker) 1.22 Spring Boot 添加JSP支持 1.23 Spring Boot Servlet 1.24 Spring Boot过滤器、监听器 1.25 ...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Spring API

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    spring in action英文版

     4.2.1 JDBC代码的问题  4.2.2 使用JdbcTemplate  4.2.3 把操作创建成对象  4.2.4 自增键  4.3 介绍Spring的ORM框架支持  4.4 用Spring整合Hibernate  4.4.1 Hibernate概览  4.4.2 管理...

    spring hibernate 日志管理插件

    功能日志:基于java aop思想设计,通过Spring advisorAutoProxy(自动代理)实现controller过滤代理拦截,并提供拦截filter过滤,支持spring EL表达式。 数据日志:设计中提供数据日志注入接口,管理数据日志注入,...

    Spring in Action(第2版)中文版

    7.4.1代理springsecurity的过滤器 7.4.2处理安全上下文 7.4.3提示用户登录 7.4.4处理安全例外 7.4.5强制web安全性 7.4.6确保一个安全的通道 7.5视图层安全 7.5.1有条件地渲染内容 7.5.2显示用户身份验证信息...

    Spring in Action(第二版 中文高清版).part2

    7.4.1 代理Spring Security的过滤器 7.4.2 处理安全上下文 7.4.3 提示用户登录 7.4.4 处理安全例外 7.4.5 强制Web安全性 7.4.6 确保一个安全的通道 7.5 视图层安全 7.5.1 有条件地渲染内容 7.5.2 显示用户...

    Spring in Action(第二版 中文高清版).part1

    7.4.1 代理Spring Security的过滤器 7.4.2 处理安全上下文 7.4.3 提示用户登录 7.4.4 处理安全例外 7.4.5 强制Web安全性 7.4.6 确保一个安全的通道 7.5 视图层安全 7.5.1 有条件地渲染内容 7.5.2 显示用户...

    Spring 3 Reference中文

    4.10.3 使用过滤器来自定义扫描 98 4.10.4 使用组件定义bean 的元数据.. 99 4.10.5 命名自动检测组件 100 4.10.6 为自动检测组件提供范围. 101 4.10.7 使用注解提供限定符元数据. 102

    Spring Boot中文文档.rar

    Spring Beans和依赖注入 18.使用@SpringBootApplication Annotation 19.运行您的应用程序 19.1.从IDE运行 19.2.作为打包应用程序运行 19.3.使用Maven插件 19.4.使用Gradle插件 19.5.热插拔 20....

    struct2.3+spring3.1+mybatis3.3+axis2

    公司项目需要,搭建了SSM框架,当初想更好的熟悉SSM框架的架构及其原理,所以未使用maven,资源中包括所有的jar包,能直接运行在tomcat服务器,框架中使用了Spring的自动扫描,注解注入,AOP异常日志记录,AOP事务,...

    spring3.1中文参考文档

    1.1 依赖注入和控制反转 ............................................................................................................................7 1.2 模块..............................................

    Spring学习

    Springboot框架源码解读学习Spring框架主要有SpirngMVC提供Web功能执行Springboot提供自动配置功能以及大部分常用资源配置整合完成开箱即用SpringCloud定义了一整套整体微服务架构所需组件的解决方案1.这里启动的...

    ssh(structs,spring,hibernate)框架中的上传下载

     第3~9行定义了一个数据源,其实现类是apache的BasicDataSource,第11~25行定义了Hibernate的会话工厂,会话工厂类用Spring提供的LocalSessionFactoryBean维护,它注入了数据源和资源映射文件,此外还通过一些键值...

    springmvc+hibernate 日志管理工具

    功能日志:基于java aop思想设计,通过Spring advisorAutoProxy(自动代理)实现controller过滤代理拦截,并提供拦截filter过滤,支持spring EL表达式。 数据日志:设计中提供数据日志注入接口,管理数据日志注入,...

    基于SSM ( Spring + SpringMVC + Mybatis)开发的知识问答社区+源代码+文档说明

    所有的用户输入都做了拦截与参数过滤,避免XSS攻击与SQL注入等。前端视图的渲染采用的是Thymeleaf模板引擎,它很好的与SpringMVC搭配了起来。数据的物理分页使用的是开源项目Mybatis-Page-Helper ,也是非常的轻量和...

    spring-boot-autoconfigure-browser-detection

    在 Web 环境中自动配置 spring-browser-detection 模块的 Spring Boot 模块。 该模块激活一个新的过滤器,该过滤器根据 HTTP 请求检测客户端... 它还允许使用浏览器接口自动注入控制器方法,以便直接访问浏览器信息。

Global site tag (gtag.js) - Google Analytics