@Service 中带有 Kotlin 的 Spring Boot @Autowired 始终为 null

2024-05-07

目前,我尝试使用 Kotlin 重写我的 Java Spring Boot 应用程序。我遇到了一个问题,在我所有的类中都用@Service依赖注入无法正常工作(所有实例都null)。这是一个例子:

@Service
@Transactional
open class UserServiceController @Autowired constructor(val dsl: DSLContext, val teamService: TeamService) {
  //dsl and teamService are null in all methods
}

在 Java 中执行相同的操作不会出现任何问题:

@Service
@Transactional
public class UserServiceController
{
    private DSLContext dsl;
    private TeamService teamService;

    @Autowired
    public UserServiceController(DSLContext dsl,
                             TeamService teamService)
    {
        this.dsl = dsl;
        this.teamService = teamService;
    }

如果我用注释该组件@Component在 Kotlin 中一切正常:

@Component
open class UserServiceController @Autowired constructor(val dsl: DSLContext, val teamService: TeamService) {
  //dsl and teamService are injected properly
}

Google 为 Kotlin 提供了许多不同的方法@Autowired我尝试过,但结果都一样NullPointerException我想知道 Kotlin 和 Java 之间有什么区别以及如何解决这个问题?


我刚刚遇到了完全相同的问题 - 注入效果很好,但添加 @Transactional 注释后,所有自动装配字段都为空。

My code:

@Service
@Transactional  
open class MyDAO(val jdbcTemplate: JdbcTemplate) {

   fun update(sql: String): Int {
       return jdbcTemplate.update(sql)
   }

} 

这里的问题是,Kotlin 中的方法默认是 Final 的,因此 Spring 无法为该类创建代理:

 o.s.aop.framework.CglibAopProxy: Unable to proxy method [public final int org.mycompany.MyDAO.update(...

“打开”方法修复了问题:

固定代码:

@Service
@Transactional  
open class MyDAO(val jdbcTemplate: JdbcTemplate) {

   open fun update(sql: String): Int {
       return jdbcTemplate.update(sql)
   }

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

@Service 中带有 Kotlin 的 Spring Boot @Autowired 始终为 null 的相关文章

  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

    我有一个 JTable 其中有一列包含 JComboBox 我有一个附加到 JComboBox 的 ItemListener 它会根据任何更改进行操作 但是 ItemListener 没有获取更改的 ComboBox 所在行的方法 当组合框
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 在 Spring Boot 应用程序中自动装配 ObjectMapper

    我需要在 Spring boot 应用程序中使用默认的 ObjectMapper 作为单例实例 我可以简单地在我的应用程序中 autowire ObjectMapper 在Spring boot应用程序中默认创建的实例 而不创建 Bean
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

  • 如何访问 Google Cloud Platform Compute Engine VM 实例的 SSH 密钥?

    我通过 Google Cloud Web 控制台从 CentOS 6 x 映像创建了一个新实例 我在创建表单上看到一个空白 我可以在其中粘贴现有的 SSH 密钥 因为这是我的第一个实例 所以我还没有 我以为它会像 Amazon EC2 一样
  • 即使用户正在积极使用应用程序,Azure AD Easy Auth 也会过期

    我们有一个使用 Azure Active Directory 轻松身份验证 的单页应用程序 SPA 例如无代码解决方案 当用户第一次打开应用程序时 这似乎工作正常 他们将被重定向到 Microsoft 登录页面 他们可以进行身份 验证 然后
  • Angular 2 - 检查图像 URL 是否有效或损坏

    我正在从 API 获取大量图像 URL 并将它们显示在 Angular 2 Web 应用程序中 有些 URL 已损坏 我想用本地存储在我的网络服务器上的默认图片替换它们 有人建议如何测试 url 并在状态代码 404 的情况下替换损坏的图像
  • 创建另一个进程的 HWND 的子窗口? (例如屏幕保护程序预览)

    我正在用 Java 编写一个屏幕保护程序 它主要适用于 Windows 但我更希望它尽可能便携且实用 根据http support microsoft com kb 182383 http support microsoft com kb
  • 如何将 OData 查询字符串转换为 .NET 表达式树

    完全重写这个问题 因为我现在比以前理解得更多 我试图将 OData 查询字符串直接抽象为 NET 表达式树 似乎有很多关于此的问题和文章 但没有答案提供依赖于的抽象解决方案soley on the Microsoft Data OData命
  • 当数据帧预排序时 pandas.groupby.nsmallest 会丢弃多索引

    我正在使用 pandas 0 22 0 python 版本 3 6 4 groupby与 nsmallest方法查找数据帧每组中的最小项目 这是一个示例数据框 gt gt gt import pandas as pd gt gt gt df
  • iPhone 4 移动网络应用程序像素缩放问题

    我无法让我的移动 Web 应用程序在 iPhone 4 上正确呈现 根据 Wikipedia iPhone 4 的像素为 960 宽 x 680 高度 而其他 iPhone 的像素为 480 宽 x 340 像素 在我当前的构建中 图像和
  • Word 插件 - 如何读取自定义文档属性

    我正在使用 Office JS API 开发 Word 插件 目前 我可以通过执行以下操作向 Word 文档添加自定义属性 context document properties load context document properti
  • 找不到“Attributes.inc”文件

    我一直在使用中提供的标题include llvm and include llvm c尝试制作我自己的编译器 但是 每当我尝试编译时 都会收到此错误 没有llvm IR Attributes inc在我的文件或我见过的任何 LLVM 项目中
  • 将 Django 模型映射到外部 API

    上下文 我有一个外部 API 提供数据并允许发布新数据或修补现有数据 API 响应示例 response requests get http api band 4 print response json id 4 name The Beat
  • 更改 NSIS 安装程序属性

    我有一个基于 NSIS 的安装程序文件 名为安装程序 当我进入 属性 gt 详细信息 时 缺少许多详细信息 当我运行安装程序时 UAC 请求提升权限 这是可以的 但发布者是 未知 我如何在最终设置这些属性安装程序 最好只更改 NSIS 安装
  • XAMPP无法安装xdebug

    你好 我已经安装了 xampp 将 php ini 更改为 XDebug zend extension C xampp php ext php xdebug 2 2 3 5 3 vc9 dll xdebug profiler append
  • 单选按钮文本对齐问题

    我正在 asp net 中工作 并且有单选按钮列表 我想根据需要对齐它们的文本 这是我目前拥有的 我想让它们像这样 EDIT 其次 当我单击 Ages From 单选按钮时 我会显示一个 div 如下所示 当我单击返回 All Ages 单
  • 有没有办法检测 Alt 键被按在哪一侧(右或左)?

    Is there a way that we can detect which side the Alt key was pressed on i e distinguish between left or right Alt I saw
  • GWT:将自定义小部件添加到单元格丢失自定义小部件的事件

    我们的要求是使用以下命令制作一个可编辑的网格CellTable在其单元格中包含自定义小部件 自定义小部件具有文本框和与文本框关联的搜索按钮 要将自定义小部件添加为单元格 请创建以下子类AbstractEditableCell类 由 GWT
  • 使用 Moq 模拟实体框架 6 ObjectResult

    如何使用 Moq 模拟 Entity Framework 6 ObjectResult 以便对依赖 EF 数据库连接的代码进行单元测试 沿着这些思路阅读了大量的问题和答案 并从我所读到的内容中收集了许多有价值的信息 我已经实现了我认为相当优
  • 在 tidycensus 中使用 purrr() 而不是 lapply 任意城市/县对?

    我有一个巨大的 lapply 正在运行来下载数据文件 但看起来很笨拙 但 mapply 似乎不对 因为我不想要所有州 县的组合 我听说过关于 map 的好消息 任何人都可以提供一个示例 说明如何在以下代码中使用 purrr 命令 map l
  • 是否可以使用 Drupal api 获取用户列表?

    我想获取已分配特定角色的所有用户的列表 我可以编写自己的 SQL 但我想尽可能多地使用 api 您可以使用entity load来获取用户数组 这是将为管理员用户创建所有电子邮件列表的示例 用于发送通知
  • Asp net Core 获取用户Windows用户名

    在ASP net CORE mvc中构建内联网 我需要获取当前用户的Windows用户名进行登录 我不需要使用Windows身份验证自动登录用户 我已经有一个自定义登录控制器来做到这一点 我只需要他的用户名 它在本地工作正常 但在 IIS
  • @Service 中带有 Kotlin 的 Spring Boot @Autowired 始终为 null

    目前 我尝试使用 Kotlin 重写我的 Java Spring Boot 应用程序 我遇到了一个问题 在我所有的类中都用 Service依赖注入无法正常工作 所有实例都null 这是一个例子 Service Transactional o