今天我学习使用kotlin和spring boot构建API。在rails和laravel中有一个用于数据库播种器的“工具”,我想知道在kotlin和spring boot中,我以前在google上搜索过并找到了这个答案https://stackoverflow.com/a/45324578/1297435,在spring boot中,我们可以像这样使用EventListerner
@EventListener
public void userSeeder(ContextRefreshedEvent event) {
// my query
// check query size and iteration
}
那是春靴,但在科特林有办法吗?
// main/kotlin/com.myapp.api/seeder/UserSeeder.kt
package com.myapp.api.seeder
import org.springframework.context.event.ContextRefreshedEvent
import com.myapp.api.repository.*
import com.myapp.api.model.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
interface EventListener
@Component
class UserSeeder {
@Autowired
lateinit var repository: UserRepository
@EventListener
fun seedUsername(event: ContextRefreshedEvent) {
val users = repository.findByUsernameBlank()
if (users == null || users!!.size <= 0) {
//
} else {
//
}
}
}
EventListener类在kotlin中不起作用,还是正确?
错误:(15,6)静态编程语言:此类没有构造函数
您可能有问题,因为您将EventListener定义为接口,而不是从org.springframework.context.event
导入它。(请参阅导入下方的接口EventListener
。
但你的实际问题是:我通常使用org。springframework。靴子ApplicationRunner用于此类任务。
import org.springframework.boot.ApplicationArguments
import org.springframework.boot.ApplicationRunner
@Component
class UserSeeder(private val repository: UserRepository) : ApplicationRunner {
override fun run(args: ApplicationArguments) {
val users = repository.findByUsernameBlank()
if (users == null || users!!.size <= 0) {
//
} else {
//
}
}
}
顺便说一句:我还使用了基于构造函数的注入。
问题内容: 我正在尝试分发在几个链接的容器中运行的一组连接的应用程序,这些容器包括一个mongo数据库,该数据库需要: 分发包含一些种子数据; 允许用户添加其他数据。 理想情况下,数据还将保存在链接的数据卷容器中。 我可以使用不装载任何卷的基本实例(dockerhub映像:-本质上是不带该语句的基本mongo Dockerfile )和配置的方式将数据放入容器中: 其中与Dockerfile 位于
我们正在为我们的项目设置Flyway,我们正在重新考虑是否要使用Flyway迁移或手动使用sql控制台或某些引导脚本来播种数据。 我们担心的是,如果我们在Flyway中添加种子数据,这意味着还需要在Flyway中进一步修改这些数据。而且我们可能需要使用field=x或其他一些在某个时间点可能已经无效的条件,因为应用程序可以更改数据。这将是个问题。 在他们的文档中,我看不到任何建议不使用种子数据的内
数据sql是在创建JPA实体之前执行的,它会导致找不到表的错误。有人能帮我吗?我在Spring Boot加载初始数据的链接中看到了相同的问题,但这个问题没有得到回答。
本文向大家介绍Laravel 使用MySQL Dump播种,包括了Laravel 使用MySQL Dump播种的使用技巧和注意事项,需要的朋友参考一下 示例 遵循前面创建种子的示例。本示例使用MySQL Dump在项目数据库中播种表。必须在播种之前创建表。 $sql将成为users.sql转储的内容。转储应具有INSERT INTO语句。存储转储的位置将取决于您。在上面的示例中,它存储在项目目录中
本章节将介绍如何创建一个从数据表 country 中读取国家数据并显示出来的页面。 为了实现这个目标,你将会配置一个数据库连接, 创建一个活动记录类, 并且创建一个操作及一个视图。 贯穿整个章节,你将会学到: 配置一个数据库连接 定义一个活动记录类 使用活动记录从数据库中查询数据 以分页方式在视图中显示数据 请注意,为了掌握本章你应该具备最基本的数据库知识和使用经验。 尤其是应该知道如何创建数据库
使用 JDBC 连接数据库 JAVA应用要连接到数据库,首先需要加载数据库驱动,然后获得一个数据库连接,下面是一个简单的例子: import java.sql.*; public class Test { public static void main(String[] a) throws Exception { Class.forName("org