博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
@Autowired @Transaction @Service同时出现。
阅读量:7073 次
发布时间:2019-06-28

本文共 708 字,大约阅读时间需要 2 分钟。

对于@Autowired,如果只写这些,肯定是根据类型自动装配这个没问题。

@Service

public class AcRoleServiceImpl implements AcRoleService{

  ......

}

这个bean生成后会兼有AcRoleServiceImpl 和AcRoleService两种类型,所以以下两种写法都可以成功装配。

@Autowired

private AcRoleServiceImpl acRoleService;

 

@Autowired

private AcRoleService acRoleService;

 

但是如果@Transaction出现在AcRoleService这个接口中,则只能使用以下方式

@Autowired

private AcRoleService acRoleService;

所以一旦有用到@Transaction一定要用上边这种方式(类型为接口类型)的自动装配。

 

否则会报错,具体原因只能猜测。

 

由于本人没有时间去深究,以下只是猜测内容,以备以后有空再来回头研究,请读者自行屏蔽

 

导致根据类型的自动装配失败的原因无非两种:找不到这种类型的bean或者找到了多个这种类型的bean。

排除出现两个以上AcRoleServiceImpl 类型的bean,那就是AcRoleServiceImpl 没有生成。

而只生成了AcRoleService。

于是可以断定:在扫描到@Transaction时会根据其接口和实现类生成一个类型为其接口类型的bean,而之后扫描到@Service时由于已经生成过了相同类型的bean则不再生成新的bean。

 

转载地址:http://ljkml.baihongyu.com/

你可能感兴趣的文章
Java编程的逻辑 (1) - 数据和变量
查看>>
我的屌丝giser成长记-研一篇(下)
查看>>
raft 分布式协议 -- mongodb
查看>>
[TypeScript] Using Lodash in TypeScript with Typings and SystemJS
查看>>
ASP.Net MVC开发基础学习笔记(1):走向MVC模式
查看>>
storm的例子,一个非常好的网址
查看>>
Python数据预处理:机器学习、人工智能通用技术(1)
查看>>
原来oracle也有像ibm developernetworks这样的社区,厉害,果然是生态链上游的厂商...
查看>>
猜数游戏系统
查看>>
[jQuery]使用jQuery.Validate进行客户端验证(中级篇-上)——不使用微软验证控件的理由...
查看>>
C#中的Json的序列化和反序列化
查看>>
hdu3015(树状数组)
查看>>
oracle ora-12154 无法解析连接字符串
查看>>
行为的抽象即是接口(Interface)
查看>>
2013渣打科营编程马拉松赛样题
查看>>
XSS零碎指南
查看>>
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)...
查看>>
ZStack中的编程技巧
查看>>
tcpdump -i eth0 -n -vvv src or dst port 443
查看>>
如何给你的Android 安装文件(APK)瘦身
查看>>