问题标签 [spring-kotlin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1417 浏览

kotlin - 我们可以用 kotlin 构建一个全栈 webapp 吗?

Kotlin 官方文档告诉它支持 Web 开发。以及它对java的替代品。我正在尝试使用 Kotlin 构建一个 Web 应用程序。到目前为止,我在 YouTube 上阅读了很多博客、课程和视频,但我没有成功地想出一个流程。我遇到了这个链接https://medium.com/bcgdv-engineering/building-a-full-stack-web-app-in-kotlin-af8e8fe1f5dc,我无法单独进行。我只需要一个前端并通过正常的 http 请求连接到我的服务器。有没有在 kotlin 中做一个网络应用程序的正确方法。请帮我解决一下这个。提前致谢!

0 投票
1 回答
995 浏览

spring-boot - WebFluxConfigurer 上的 @EnableWebFlux 会按预期自动配置 ThymeleafViewResolver

我正在构建一个从 spring-boot-starter-webflux 开始的 REST api,但我也希望该应用程序使用 webjar 提供一个招摇的 UI。我需要调整 swagger UI 的初始化方式,所以我制作了一个 @Controller,它返回一个 Mono 来触发渲染视图。REST api 还需要一个自定义的 jackson ObjectMapper 并启用蛇案例命名策略等。

Spring Boot Docs说要实现这一点,我应该提供一个扩展 WebFluxConfigurer 的 @Configuration 类,但我应该关闭 @EnableWebflux。这是我到目前为止所拥有的(Kotlin):

配置

控制器

使用此配置,swagger 视图渲染得很好,但是当我尝试发布到我的一个 api 端点时,它抱怨缺少必需的属性(通过发送带有骆驼案例而不是我想要的蛇案例的数据来解决)。如果我将@EnableWebFlux 添加到我的CommonConfig 类,自定义对象映射器会被拾取并且我可以发送蛇案例数据,但随后不会呈现swagger 视图。我得到:

这大概是因为没有注册thymeleaf ViewResolver。

文档确实说如果我想“完全控制 Spring WebFlux,您可以添加自己的带有 @EnableWebFlux 注释的 @Configuration”,这解释了为什么没有 ViewResolver。但这不是我想要的。我想要大部分的 webflux 自动配置,但我想提供我自己定制的 ObjectMapper。这样做的正确方法是什么?

0 投票
1 回答
214 浏览

spring - Kotlin > Spring Boot > 使用路由器 DSL,POST 方法主体,无法将 JSON 转换为 POJO

我正在尝试使用 Kotlin Multiplatform 构建 Petstore Fullstack 应用程序。我正在使用 Spring Router DSL 来定义休息端点。对于 GET 方法,它运行良好。然后我开始研究 POST,下面是我为 POST 方法编写的代码

宠物处理程序.kt

但是,当我点击 POST API 时,我得到了以下异常,

你可以在这个 GitHub repo kotlin-petstore-project中找到完整的项目配置

这是我用来调用 API 的 JSON 请求

你能帮我解决这个问题吗?

提前致谢。

0 投票
2 回答
787 浏览

reactive-programming - 使用 2 个嵌套订阅返回 Mono/Flux

我需要为一个函数返回 Mono / Flux,但这有 2 个嵌套订阅。我正在寻找一个更好的解决方案,仅在这 2 个订阅值可用之后发布 Mono/Flux,然后执行一些操作来派生 finalValue。

最终目标是,函数 getFinalValue() 的订阅者应该能够订阅最终值。我对 Flux 也有类似的需求。最好的方法应该是什么?

0 投票
1 回答
438 浏览

hibernate - Spring data/Hibernate:传递给持久化的分离实体

我得到“传递给持久化的分离实体”,但我不明白有问题的对象如何处于分离状态。
首先是一些上下文。

JpaRepository每个用户和角色两个:

BackendUser实体 - 除了名称 - 有几个不应与此问题相关的字段,外部字段角色来自其基类:

在应用程序启动时,我想确保此 ApplicationRunner 中存在管理员用户:

应用程序在启动时抛出异常并关闭:

org.hibernate.PersistentObjectException:分离的实体传递给坚持:my.package.name.user.UserRole

我在这里理解它的方式是,adminRole在从存储库中检索到它之后立即处于分离状态。

  • 为什么是分离的?我曾假设该方法上的 @Transactional 注释将确保所有事情都发生在同一个持久性上下文中,而这不应该发生。
  • 我怎样才能防止这种情况?有没有办法不必删除级联选项
  • 是否有任何关于 spring/jpa 和 hibernate 如何协同工作的好的信息源 - 到目前为止,我发现的任何东西都没有真正帮助我详细理解这些概念,以及存储库如何隐藏你找到的实体管理和会话概念,当试图阅读休眠时。
0 投票
2 回答
1870 浏览

spring-boot - 如何在 Kotlin 对象中动态添加键值对?

我有 Spring Boot REST api,它返回这样的 JSON 对象-

这直接来源于@Entity这样——

在这里,Spring boot 自动将响应转换为 JSON。getMessage()但是,我想在函数中添加另一个键值对。与此类似 -如何将键/值对添加到 JavaScript 对象?但在 Java/Kotlin 中。

我怎么做?

0 投票
1 回答
439 浏览

spring-boot - Spring Boot 验证列表中的每个字符串(kotlin)

我正在努力验证字符串引导。

我在 Kotlin 中有以下课程:

@field:Size(max = 5)on style 通过 size > 5 可以正常工作

@field:Size(max = 10)通过在列表中有超过 10 个字符串,on items 可以正常工作

如果列表中的字符串之一的大小大于 50 个字符,我不会收到任何错误。

0 投票
1 回答
941 浏览

java - Spring boot + Kotlin + MongoDb: Cannot resolve reference to bean 'mongoTemplate' while setting bean property

I am trying to make a simple application using kotlin and spring boot which connects to mongodb and makes some operations there, however I am facing this issues.

If you guys want to see more details, here is the link of the project on git https://github.com/lucassklp/spring-boot-with-kotlin-example

Anyway I'll add the code here to make it simple:

Output log:

pom.xml

UserController.kt

UserServices.kt

User.kt

UserRepository.kt

application.properties

0 投票
1 回答
740 浏览

spring-boot - 无法使用 azure-servicebus-jms-spring-boot-starter 从 Spring Boot 应用程序写入 Azure 服务总线主题

我正在尝试在 Spring Boot 中使用 JMS 将消息推送到 azure 服务总线主题。

正如你在下面看到的,我已经依赖于azure-servicebus-jms-spring-boot-starter

我已经@EnableJms在我的应用程序中进行了配置,并且我还在我的 application.yml 文件中设置了连接字符串,我已经验证它是正确的,我可以看到它正确连接到服务总线,如这些日志中所示 -

设置此连接后,我将尝试使用我在下面指定的服务向我的服务总线上的主题发送消息,但是我在服务总线上没有看到任何事务。我已经确认目的地是正确的。

因为我没有在此应用程序上使用订阅,所以我没有按照此处spring.jms.servicebus.topic-client-id=<ServiceBusSubscriptionID>指定的方式指定这样做

在我指定主题客户端 ID(一个不同的应用程序)的消费端,我创建了一个虚拟控制器来将示例消息发送到服务总线,它工作正常,这会让我相信我在这个应用程序上缺少一些配置.

但是我不需要在这里指定任何特定的主题客户端 ID,因为我只想推送到主题。一旦我有了服务总线连接字符串,我应该能够将消息推送到我指定的任何主题 -jmsTemplate.convertAndSend(<TOPIC_NAME>, <MESSAGE>)

0 投票
1 回答
284 浏览

functional-programming - [R2DBC-Spring-Data-kofu]:在标准 API 中表达不同

您好,我尝试将 jpql 查询转换为条件 api。sql 查询是 SELECT COUNT(DISTINCT id) FROM `user` WHERE login != :anonymousUser 我刚刚成功地使用条件达到此查询 SELECT COUNT(id) FROM `user` WHERE login != :anonymousUser 这里是代码:

如何引入不同的标准 API?