Lucas
10/23/2017, 10:25 AM@Repository
but a ReactiveMongoTemplate
? Something like this:
fun beans() = beans {
bean {
val databaseName = "person"
val databaseString = "<mongodb://localhost:27017>"
val mongoClient: MongoClient = MongoClients
.create("$databaseString/$databaseName")
ReactiveMongoTemplate(mongoClient, databaseName)
}
}
class PersonHandler(private val repository: ReactiveMongoTemplate)
sdeleuze
10/23/2017, 10:27 AMsdeleuze
10/23/2017, 10:27 AMReactiveMongoTemplate
+ kotlin extensionssdeleuze
10/23/2017, 10:27 AMsdeleuze
10/23/2017, 10:28 AMReactiveFluentMongoOperations
sdeleuze
10/23/2017, 10:29 AMclass EventRepository(private val mongo: ReactiveFluentMongoOperations) {
fun count() = mongo.query<Event>().count()
fun findAll() = mongo.query<Event>().all()
fun findOne(id: String) = mongo.query<Event>().matching(Query(Criteria("firstname").isEqualTo("luke"))).one()
fun deleteAll() = mongo.remove<Event>().all()
}
sdeleuze
10/23/2017, 10:30 AMsdeleuze
10/23/2017, 10:31 AMmp911de
10/23/2017, 10:33 AMAbstractMongoConfiguration
as config base class (https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.mongo-db-factory-java)mp911de
10/23/2017, 10:33 AMLucas
10/23/2017, 10:54 AMReactiveFluentMongoOperations
? It's implementation should be defined inside beans {}
?
registerBean {
val connectionString = ConnectionString("<mongodb://localhost:27017/person>")
val factory = SimpleReactiveMongoDatabaseFactory(connectionString)
ReactiveMongoTemplate(factory)
}
Lucas
10/23/2017, 10:55 AM@Configuration
works with a non @SpringBootApplication
app?Lucas
10/23/2017, 10:55 AMApplication context not configured for this file
.mp911de
10/23/2017, 11:33 AM@Configuration
is a core Spring Framework Annotation enabling Java configurationmp911de
10/23/2017, 11:35 AM@Configuration
is in place since Spring Framework 3Lucas
10/23/2017, 1:14 PMLucas
10/23/2017, 1:15 PMjasper
10/24/2017, 12:18 PM> Task :backend:bootRun
Error: Main method is not static in class kudos.ApplicationConfig, please define the main method as:
public static void main(String[] args)
jasper
10/24/2017, 12:19 PMjasper
10/24/2017, 12:26 PMjasper
10/24/2017, 12:26 PMfun main(args: Array<String>) = SpringApplication.run(ApplicationConfig::class.java, *args)
jasper
10/24/2017, 12:26 PMjasper
10/24/2017, 12:27 PM@JVMStatic
fun main(args: Array<String>) {
SpringApplication.run(ApplicationConfig::class.java, *args)
}
Lucas
10/24/2017, 1:24 PMclass PersonRepositoryIntegrationTest {
private val databaseString = ConnectionString("<mongodb://localhost:27017/personTest>")
private val databaseFactory = SimpleReactiveMongoDatabaseFactory(databaseString)
private val mongo = ReactiveMongoTemplate(databaseFactory)
@test
fun `Should persist two persons`() {
val personToPersist = listOf(
Person("Burce Lee"),
Person("Jackie Chan"))
mongo.insertAll(personToPersist).blockLast() // throws NullPointerException
assertTrue { true }
}
}
Lucas
10/24/2017, 1:25 PMmp911de
10/24/2017, 1:29 PMLucas
10/24/2017, 1:31 PMsrc/
main/
kotlin/
Person.kt
test/
kotlin/
PersonRepositoryIntegrationTest.kt
mp911de
10/24/2017, 1:31 PMLucas
10/24/2017, 1:34 PMLucas
10/24/2017, 1:35 PM