Groovy Bean Определения
1. обзор
В этой быстрой статье мы сосредоточимся на том, как мы можем использовать конфигурацию на основе Groovy в наших проектах Java Spring.
2. зависимости
Прежде чем мы начнем, нам нужно добавить зависимость в наш файлpom.xml. Нам также нужно добавить плагин для компиляции наших файлов Groovy.
Давайте сначала добавим зависимость для Groovy в наш файлpom.xml:
org.codehaus.groovy
groovy-all
2.4.12
Теперь давайте добавим плагин:
maven-compiler-plugin
3.7.0
groovy-eclipse-compiler
true
1.8
${project.build.sourceEncoding}
org.codehaus.groovy
groovy-eclipse-compiler
2.9.2-01
Здесь мы используем компилятор Maven для компиляции проекта с помощью компилятора Groovy-Eclipse. Это может варьироваться в зависимости от IDE, которую мы используем.
Последние версии этих библиотек можно найти наMaven Central.
3. Определение бобов
Начиная с версии 4, Spring обеспечивает поддержку конфигураций на основе Groovy. Это означает, чтоGroovy classes can be legitimate Spring beans.
Чтобы проиллюстрировать это, мы собираемся определить bean-компонент, используя стандартную конфигурацию Java, а затем мы собираемся настроить тот же bean-компонент с помощью 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 Конфигурация
Теперь мы видим разницу, когда используем Groovy для настройки ранее созданного компонента:
beans {
javaPersonBean(JavaPersonBean) {
firstName = 'John'
lastName = 'Doe'
}
}
Обратите внимание, что перед определением конфигурации beans мы должны импортироватьJavaPersonBean class. Такжеinside the beans block, we can define as many beans as we need.
Мы определили наши поля как частные, и хотяGroovy makes it look like it’s accessing them directly, it’s doing it using provided getters/setters.
4. Дополнительные настройки компонентов
Как и в случае конфигурации на основе XML и Java, мы можем настраивать не только bean-компоненты.
Если нам нужно установитьalias для нашего bean-компонента, мы можем сделать это легко:
registerAlias("bandsBean","bands")
Если мы хотим определитьscope: компонента
{
bean ->
bean.scope = "prototype"
}
Чтобы добавить обратные вызовы жизненного цикла для нашего компонента, мы можем сделать:
{
bean ->
bean.initMethod = "someInitMethod"
bean.destroyMethod = "someDestroyMethod"
}
Мы также можем указать наследование в определении компонента:
{
bean->
bean.parent="someBean"
}
Наконец, если нам нужно импортировать некоторые ранее определенные bean-компоненты из конфигурации XML, мы можем сделать это с помощьюimportBeans():
importBeans("somexmlconfig.xml")
5. Заключение
В этом уроке мы увидели, как создавать конфигурации bean-компонентов Spring Groovy. Мы также рассмотрели настройку дополнительных свойств для наших bean-компонентов, таких как их псевдонимы, области действия, родительские компоненты, методы инициализации или уничтожения и способы импорта других bean-компонентов, определенных в XML.
Хотя примеры просты, они могут быть расширены и использованы для создания любого типа конфигурации Spring.
Полный пример кода, который используется в этой статье, можно найти в нашемGitHub project. Это проект Maven, поэтому вы можете импортировать его и запустить как есть.