Spring - 如何注入具体的接口实现?

2024-04-17

我需要通过 @Autowired 注入服务类的具体实现。

服务接口:

public interface PostService {
...
}

执行:

@Service("postServiceImpl")
public class PostServiceImpl implements PostService {
...
}

服务中的方法带有@Transactional注解

现在我想将 postServiceImpl 注入到我的控制器中 - 因为我需要使用实现中的一种方法,该方法不在接口中:

@Autowired
@Qualifier("postServiceImpl")
private PostServiceImpl postService;

I get NoSuchBeanDefinitionException并显示以下消息:

找不到 [ (...) .PostServiceImpl] 类型的合格 bean 依赖项:预计至少有 1 个符合自动装配资格的 bean 这种依赖性的候选者。

当我将控制器中的字段更改为:

private PostService postService

它有效,但我无法使用 PostServiceImpl 中的特定方法。


由于您的方法已注释@Transactional,spring会在运行时创建代理,来注入事务管理代码。 Spring默认使用JDK动态代理对于代理机制,基于接口进行代理。

所以,在这种情况下,spring创建了另一个类来实现PostService接口,并创建该类的 bean。绝对不能自动连接到PostServiceImpl,因为他们是兄弟姐妹。然而,如果你真的想在课堂上自动装配,你可以强制 spring 使用CGLibproxy 而是使用子类化进行代理。你可以通过设置来做到这一点proxyTargetClass=true在你的@EnableTransactionManagement注释,如果您使用的是基于 Java 的配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring - 如何注入具体的接口实现? 的相关文章

  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 从当前日期减去月份 sql

    我正在尝试从今天减去日期 获取 1 个月前直到永远的报告 到目前为止我已经尝试过 DATE SUB NOW INTERVAL 1 MONTH 这是上下文 SELECT contracts currency ROUND SUM CASE WH
  • 如何将 Google Analytics 跟踪 ID 添加到 GitHub Pages

    可能是一个简单的问题 但我现在对添加充满疑问谷歌分析跟踪ID to GitHub 页面 我正在使用 GitHub 自动页面生成器来创建我的 GitHub 页面 但它要求提供 Google Analytics 跟踪 ID 我尝试注册 Goog
  • 我正在尝试导入 GoogleAPIClient 或 GoogleAPIClientForREST

    我正在努力追随谷歌的教程 https developers google com drive ios quickstart ver swift制作他们的 QuickStart 应用程序来学习如何使用 Swift 进行 API 调用 我完全按
  • asp:SqlDataSource 到数据集项

    我的aspx页面上有一个asp SqlDataSource ID SqlDataSource1 工具 我想要在后面的c Sharp代码中做的就是传输数据源返回的记录并将它们放入DataSet中 以便我可以添加分页我的页面 我该怎么做 到目前
  • 如何显示图像

    我尝试使用 IPython display 与以下代码 from IPython display import display Image display Image filename MyImage png 我还尝试使用 matplotl
  • 匹配具有相同发音的单词elasticsearch

    我想匹配拼写不同但发音相同的单词 如 雄 与 雄 平面 与 平 我们可以在elasticsearch中进行这样的匹配吗 您可以使用语音分析插件 https github com elastic elasticsearch analysis
  • 如何完全禁用 UITextView 的滚动?

    我正在使用 UITextView 为 iPad 开发一个简单的文本编辑应用程序 我在使用 UIScrollView 和 UITextView 时总是遇到一些问题 我想我对这两个人的期望太高了 当我将 myTextView text 设置为另
  • 为什么链接时会出现多重定义错误?

    我使用这两个文件here https raw github com elanthis easylogger master easylogger h and here https raw github com elanthis easylog
  • 如何在Java中从字符串中提取多个整数? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我得到了一系列像这样的字符串 123
  • 如何解析 Perl 中的符号链接?

    我有一个象征性的名字java or jre or jre1 5 or jre1 6 or java1 5 or java1 6它将指向相应的目录 考虑到第一个实例 它看起来像 java gt usr java jdk1 5 x x 我的目标
  • NeDB中如何实现持久化存储?

    我在 node webkit 中尝试了 NeDB 它在内存数据上运行良好 但无法存储在持久存储中 绝对没有 node webkit 或 nedb 专家 但这就是我所做的并且它有效 正如 mvanderw 在评论中已经提到的 一定要确保检查自
  • 在 git 中查找文件的第一次提交

    情况 我有一个来自 github 项目的 tar gz 版本 但想弄清楚这是从哪个提交中获取的 它似乎没有被标记 或者从提交消息本身来看是显而易见的 所以我可以计算文件的 sha1 但想知道这些文件属于哪个提交 召唤 git 向导 由于 g
  • 读取图像并确定其是否损坏 C#

    如何确定作为原始字节的图像是否已损坏 是否有任何开源库可以处理 C 中多种格式的此问题 Thanks 尝试从该文件创建 GDI 位图 如果创建 Bitmap 对象失败 则您可以假设图像已损坏 GDI 支持多种文件格式 http msdn m
  • 将代码从 openCV 更新到 openCV2

    我正在尝试将 python 中的一些代码从 openCV 更新为 openCV2 原代码如下 self capture cv CaptureFromCAM 0 cv SetCaptureProperty self capture cv CV
  • 按 SQL IN() 子句中值的顺序排序

    我想知道是否有 可能是更好的方法 按 IN 子句中的值的顺序进行排序 问题是我有 2 个查询 一个查询获取所有 ID 第二个查询检索所有信息 第一个创建了我希望第二个按照其排序的 ID 顺序 ID 以正确的顺序放入 IN 子句中 所以它会像
  • Excel VBA - 1004 运行时错误、应用程序或对象定义错误

    我正在尝试浏览工作表中的一系列单元格并在每个单元格中编写一个公式 但我不断收到错误 Run time error 1004 Application defined or object defined error 代码现在看起来像这样 Sub
  • 可参数化的 JSR-303 验证值

    我使用 JSR 303 bean 验证和 Spring 3 我需要根据用例为注释提供不同的值 例如 值min参数输入 Size min 对于某些验证必须为 1 对于另一种情况必须为 5 我想从属性文件中读取此值 我知道可以从中读取消息参数V
  • C 控制台底部的输入栏

    窗底 一些应用程序 如 vim mutt aptitude 包含 用于输出的顶部窗口部分和 底部供用户输入或显示状态 假设有一个子进程用于输出 另一个子进程用于接受用户输入 目的是允许在您键入输入或查看状态的同时更新输出 Actions U
  • Access 2010编译错误用户定义类型未定义

    我将 2003 年的数据库转换为 2010 年的数据库 并且 2003 年创建的 VBA 脚本在 2010 年不起作用 我收到一条消息 指出存在 编译错误 未定义用户定义的类型 我没有 VBA 脚本编写经验 也没有创建脚本 但了解它在数据库
  • Spring - 如何注入具体的接口实现?

    我需要通过 Autowired 注入服务类的具体实现 服务接口 public interface PostService 执行 Service postServiceImpl public class PostServiceImpl imp