mybatis配置通用dao和service时出现org.springframework.beans.factory.BeanCreationException异常
来源:互联网 发布:c语言共用体union例子 编辑:程序博客网 时间:2024/06/05 03:07
本来项目是没有通用dao和service的,但是在网上的资料过后,觉得有时候通用类能节省更多编程时间,不用再去写一些简单的重复代码。
但是,在配置完成后,出现了以下异常:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'menuController':
Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:Error creating bean with name 'userService': Injection of resource dependencies failed;
nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException:
No qualifying bean of type [com.xbsj.web.common.BaseMapper] is defined:
expected single matching bean but found 2: baseMapper,userMapper
第一步,我去把menuController里面的
@Controller@RequestMapping("/menu")public class MenuController {@Resourceprivate UserService userService;@RequestMapping("/menu")public String login(User user) {return "menu/admin";}
@Resourceprivate UserService userService;删了,发现还是报错。
第二步,我去把
@Service@Transactionalpublic class UserServiceImpl extends BaseServiceImpl<UserMapper, User, Integer> implements UserService {
中的继承extends BaseServiceImpl<UserMapper, User, Integer>删了,发现还是报错。
第三步,我找到了BaseServiceImpl,把
Service@Transactionalpublic class BaseServiceImpl<Mapper extends BaseMapper<T, ID>, T extends BaseObject, ID extends Serializable> implements BaseService<Mapper, T,ID> {@Resourceprivate Mapper mapper;@Overridepublic int add(T clazz) {// TODO Auto-generated method stubreturn mapper.add(clazz);}
里面的@Resource删掉了,程序终于跑通了,但是你会发现这时候你使用baseMapper里面定义的方法的时候,就会报空指针了,,,
至此,可以发现,时因为使用了两个@Resource注解,导致创建了baseMapper和userMapper两个mapper。
网上看了几篇配置通用dao和service的文章,最后终于解决问题。
解决问题的关键就是将创建baseMapper对象时,将它创建为userMapper对象。
第一种修改方式:
baseServicImpl:
@Service@Transactionalpublic abstract class BaseServiceImpl<Mapper extends BaseMapper<T, ID>, T extends BaseObject, ID extends Serializable> implements BaseService< T,ID> {private abstract Mapper mapper;public void setMapper(Mapper mapper){this.mapper=mapper;}
userServiceImpl:
@Service@Transactionalpublic class UserServiceImpl extends BaseServiceImpl<UserMapper, User, Integer> implements UserService {@Resourceprivate UserMapper userMapper;@Autowired public void setBaseMapper(){ super.setBaseMapper(userMapper); }
第二种修改方式:
baseServiceImpl:
@Service@Transactionalpublic abstract class BaseServiceImpl<Mapper extends BaseMapper<T, ID>, T extends BaseObject, ID extends Serializable> implements BaseService< T,ID> {public abstract Mapper getMapper();@Overridepublic int add(T clazz) {return getMapper().add(clazz);}
userServiceImpl:
@Service@Transactionalpublic class UserServiceImpl extends BaseServiceImpl<UserMapper, User, Integer> implements UserService {@Resourceprivate UserMapper userMapper;@Overridepublic UserMapper getMapper() {return userMapper;}
最后,程序也能跑通了,问题也完美解决了。
0 0
- mybatis配置通用dao和service时出现org.springframework.beans.factory.BeanCreationException异常
- Spring中配置AOP出现org.springframework.beans.factory.BeanCreationException异常
- 异常处理 org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException异常
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException:
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- org.springframework.beans.factory.BeanCreationException
- Elsa项目成长日记
- Unity破解失败pattern not found解决办法
- 自动识别文字编码并且转换为目标编码(php 正则)
- accp7.0-s2 优化MySchool数据库
- 记录一些网络编程要点
- mybatis配置通用dao和service时出现org.springframework.beans.factory.BeanCreationException异常
- ffmpeg生产rtp流
- Canvas类使用过程中的总结
- mysql 基准测试 sysbench的安装及基本使用方法
- Gradle Error: Failed to open zip file.
- 在Intellij idea 安装VSS插件及其相关配置
- 二叉搜索树的实现
- 【跨域】Ajax调用 跨域问题
- 部分背包问题的贪心算法正确性证明