1. Обзор
В этой краткой статье мы сосредоточимся на том, как мы можем использовать конфигурацию на основе Groovy в наших проектах Java Spring.
2. Зависимости
Прежде чем мы начнем, нам нужно добавить зависимость в ваш pom.xml файл. Нам также нужно добавить плагин для компиляции наших файлов Groovy.
Давайте сначала добавим зависимость от Groovy в наш pom.xml файл:
org.codehaus.groovy groovy 2.5.10
Теперь давайте добавим плагин:
//... org.codehaus.gmavenplus gmavenplus-plugin 1.9.0 addSources addTestSources generateStubs compile generateTestStubs compileTests removeStubs removeTestStubs
Здесь мы используем gmavenplus-плагин со всеми целями .
Последние версии этих библиотек можно найти в Maven Central .
3. Определение бобов
Начиная с версии 4, Spring обеспечивает поддержку конфигураций на основе Groovy. Это означает, что классы Groovy могут быть законными весенними бобами.
Чтобы проиллюстрировать это, мы определим компонент, используя стандартную конфигурацию Java, а затем настроим тот же компонент с помощью Groovy. Таким образом, мы сможем увидеть разницу.
Давайте создадим простой класс с несколькими свойствами:
public class JavaPersonBean {
private String firstName;
private String lastName;
// standard getters and setters
}
Важно помнить о геттерах/сеттерах – они имеют решающее значение для работы механизма.
3.1. Конфигурация Java
Мы можем настроить один и тот же компонент, используя конфигурацию на основе Java:
@Configuration
public class JavaBeanConfig {
@Bean
public JavaPersonBean javaPerson() {
JavaPersonBean jPerson = new JavaPersonBean();
jPerson.setFirstName("John");
jPerson.setLastName("Doe");
return jPerson;
}
}3.2. Заводная конфигурация
Теперь мы видим разницу, когда используем Groovy для настройки ранее созданного компонента:
beans {
javaPersonBean(JavaPersonBean) {
firstName = 'John'
lastName = 'Doe'
}
}Обратите внимание, что перед определением конфигурации beans мы должны импортировать класс Java PersonBean. Кроме того, внутри блока beans мы можем определить столько бобов , сколько нам нужно.
Мы определили наши поля как частные, и хотя Groovy делает вид, что он обращается к ним напрямую, он делает это с помощью предоставленных геттеров/сеттеров.
4. Дополнительные настройки Бобов
Как и в случае с конфигурацией на основе XML и Java, мы можем настраивать не только компоненты.
Если нам нужно установить псевдоним для нашего боба, мы можем сделать это легко:
registerAlias("bandsBean","bands")Если мы хотим определить область действия компонента :
{
bean ->
bean.scope = "prototype"
}Чтобы добавить обратные вызовы жизненного цикла для нашего компонента, мы можем сделать:
{
bean ->
bean.initMethod = "someInitMethod"
bean.destroyMethod = "someDestroyMethod"
}Мы также можем указать наследование в определении компонента:
{
bean->
bean.parent="someBean"
}Наконец, если нам нужно импортировать некоторые ранее определенные компоненты из конфигурации XML, мы можем сделать это с помощью importBeans():
importBeans("somexmlconfig.xml")5. Заключение
В этом уроке мы увидели, как создавать конфигурации Spring Groovy bean. Мы также рассмотрели установку дополнительных свойств для наших компонентов, таких как их псевдонимы, области, родители, методы инициализации или уничтожения, а также способы импорта других компонентов, определенных XML.
Хотя примеры просты, они могут быть расширены и использованы для создания любого типа конфигурации Spring.
Полный пример кода, который используется в этой статье, можно найти в нашем проекте GitHub . Это проект Maven, поэтому вы должны иметь возможность импортировать его и запустить как есть.