Приложение Spring Boot, которое использует Groovy для JDBC
У меня есть приложение весенней загрузки, которое предоставляет API ReST. Я рассматриваю разгрузку всех операций чтения SQL в Groovy SQL. Источник данных настраивается в Spring. Я хотел бы Groovy использовать этот источник данных. Кстати, будет несколько объектов DataSource (подключающихся к различным базам данных).
Каков наилучший подход для этого - я хочу лучшее из обоих миров (DI и отличная простота). Приложение должно быть в Spring (по причинам проекта) и будет развернуто на сервере WebLogic с использованием источников данных, определенных в WebLogic.
Моя идея состоит в том, чтобы вызвать метод Groovy, как показано ниже, из метода контроллера ReST Spring-boot:
/student/id
Student getStudentDetails(int id){
@Autowired
@Qualifier("someDataSource");
DataSource myDs;
Student student = GroovySqlUtil.findStudentById(id, myDs); // pass the DS to Groovy sothat GrooySQL can use the DS for executing queries.
return student;
}
Есть ли способ лучше? Может ли Groovy напрямую обрабатывать источники данных (несколько DD)? В этом случае я не буду инициализировать источник данных в конфигурации Spring.
Там нет требования для транзакций, JPA и т. Д. Это чисто операции чтения SQL.
1 ответ
На самом деле Groovy, Java, Gradle и Spring-boot можно смешивать без каких-либо проблем. Я создаю новый сервис ReST в классе Groovy и использовал groovy.Sql. Все отлично работает
Просто, что файл сборки Gradle нуждается в конфигурации ниже:
sourceSets {
main {
groovy {
// override the default locations, rather than adding additional ones
srcDirs = ['src/main/groovy', 'src/main/java']
}
java {
srcDirs = [] // don't compile Java code twice
}
}
}
А также иметь пакет groovy в компонентном сканировании основного класса конфигурации Spring.