Рубрики
Без рубрики

Определения заводных бобов

Узнайте, как мы можем использовать конфигурацию на основе Groovy в наших проектах Java Spring.

Автор оригинала: baeldung.

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, поэтому вы должны иметь возможность импортировать его и запустить как есть.