Tag: spring

如何在没有spring-boot的情况下在spring-webflux中加载配置?

我只是用spring webflux 5.0.0和Kotlin做了一些实验,并且从application.yml加载配置有问题 对于基础项目,我从这个例子spring-kotlin-functional开始 但是,只有手动加载Bean和路由,没有任何来自配置文件的加载或例如如何以这种方式实现@ConfigurationProperties类的模拟。 我已经尝试在豆部分采取环境: data class DbConfig( var url: String = “”, var user: String = “”, var password: String = “” ) fun beans(): BeanDefinitionDsl = beans { bean { //try to load config from path=db to data class DbConfig env.getProperty(“db”, DbConfig::class.java) } bean() //controllers bean { StatsController(ref()) } bean { UserController(ref()) […]

JsonView在Spring + Kotlin中

服务器用JsonView返回空的json: [ { }, { } ] 我只使用Jackson2ObjectMapperBuilder bean来配置jackson : @Bean open fun objectMapperBuilder() = Jackson2ObjectMapperBuilder() .modulesToInstall(KotlinModule()) .propertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES) .featuresToEnable(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS) 控制器: @RestController @RequestMapping(“/api/drivers”) class DriversController @Autowired constructor(val driverService: DriverService) { @JsonView(Views.Public::class) @RequestMapping(“/nearest”) fun nearest(): List { val drivers = driverService.findNearest(49.437551, 32.025263) return drivers } 驱动程序表实体: @Entity @Table(name = “ct_drivers”) data class Driver( @Id @Column(name = “id”) […]

春季数据JPA /hibernate“无法find给定名称的属性”

我们有一个Spring Web应用程序和Hibernate的问题。 它写在Kotlin。 我们有一个抽象的实体 @Inheritance(strategy = InheritanceType.JOINED) abstract @Entity class ContactLogEntry protected constructor() { @GeneratedValue @Id val id: Long = 0 @ManyToOne @JoinColumn protected lateinit var _contact: AbstractContact open val contact: AbstractContact? get() = _contact @ManyToOne protected var _user: User? = null open val user: User? get() = _user 其中一些: @Entity class MailLogEntry() : ContactLogEntry() […]

Spring webflux beanvalidation不起作用

我正在尝试在Webflux中使用beanvalidation。 这是我迄今为止: @PostMapping(“contact”) fun create(@RequestBody @Valid contact: Mono) : Mono { return contact.flatMap { contactRepository.save(it) } .doOnError{ Error(“test”) } } validation不起作用…我期望的Error(“test”)将被显示… 有人有一个工作的例子(Java或Kotlin)? UPDATE 这是一个存储库,所以它可以复制: https : //github.com/jwz104/webflux-validation-test 请求: curl –request POST \ –url http://localhost:8080/tickets \ –header ‘content-type: application/json’ \ –data ‘{ “email”: “”, “name”: “”, “message”: “” }’ 将联系人重命名为ticket,但是一切仍然相同。

Spring Hibernate在初始化数据库时不能添加外键约束

当Spring初始化时,我得到以下exception: https : //pastebin.com/abMuS4v3 这里是发生exception的kotlin代码,它是实体构造函数的一部分: @ElementCollection(fetch = FetchType.EAGER) @CollectionTable(joinColumns = [(JoinColumn(name = “id”))]) @Column(name = “authenticated_factor”) val authenticatedFactors: MutableSet = hashSetOf(), CredentialType是一个枚举类。 有趣的是,这个exception发生在MySQL上,但不在MariaDB上。 提前致谢!

在这种情况下,神秘地转义try-catch块的例外最可能的原因是什么?

我在这样的Kotlin项目中使用Spring WebClient : data class DTO(val name: String) @Component class Runner: ApplicationRunner { override fun run(args: ApplicationArguments?) { try { val dto = get() } catch (e: Exception) { println(“ERROR, all exceptions should have been caught in ‘get’ “) } } } inline private fun get(): TResult? { var result: TResult? = null try { […]

有什么办法可以实现春季webflux的分页和弹簧数据的反应

我试图了解Spring 5的反应部分。我已经创建了简单的rest端点,用于查找所有使用spring web-flux和spring data reactive(mongo)的实体,但是没有看到如何实现分页。 这是我在Kotlin的简单例子: @GetMapping(“/posts/”) fun getAllPosts() = postRepository.findAll() 这是否意味着反应终点不需要分页? 有什么办法从服务器端使用这个堆栈实现分页?

即使使用jackson-datatype-jsr310,Instant也不能被序列化为适当的格式

添加以下依赖项: compile(“com.fasterxml.jackson.module:jackson-module-parameter-names:2.8.9”) compile(“com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.8.9”) compile(“com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.8.9”) 我现在可以通过即时反序列化以下JSON: { “timestamp”: {{$timestamp}} } 到以下对象: Transaction(timestamp=2017-07-02T10:58:18Z) 用下面的类声明 data class Transaction(@NotNull val timestamp: Instant) 但是,当立即序列化后,我得到以下几点: { “timestamp”: 1498992172 } 我正在用Kotlin使用Spring Boot 。

Spring Boot将文本/ JavaScript序列化为JSON

我创建了以下Kotlin数据类: @JsonInclude(JsonInclude.Include.NON_NULL) public data class ITunesArtist(val artistName: String, val artistId: Long, val artistLinkUrl: URL) (一个数据类是一个Kotlin类,可以在编译时自动生成equals,hashcode,toString等 – 节省时间)。 现在我试着使用Spring RestTemplate填充它: @Test fun loadArtist() { val restTemplate = RestTemplate() val artist = restTemplate.getForObject( “https://itunes.apple.com/search?term=howlin+wolf&entity=allArtist&limit=1”, ITunesQueryResults::class.java); println(“Got artist: $artist”) } 它失败: Could not extract response: no suitable HttpMessageConverter found for response type [class vampr.api.service.authorization.facebook.ITunesArtist] and content type [text/javascript;charset=utf-8] […]

无法在Kotlin中创建Spring Data Event Listener

我试着创建一个这样的事件监听器: @Bean open fun beforeSaveEventApplicationListener(): ApplicationListener { return ApplicationListener() { fun onApplicationEvent(event: BeforeSaveEvent) { //Do something with event } } } 。 。 。 但它不会编译。 如果指定了genericstypes,那么编译器将返回: Type argument expected 我究竟做错了什么?