Конфигурация Spring Java: укажите только классJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Конфигурация Spring Java: укажите только класс

Сообщение Anonymous »

Я занимаюсь переносом некоторых конфигураций Spring на основе Xml в Java.

Раньше я сознательно смешивал Xml с сопоставлениями @Component в каждом конкретном случае как средство документирования неочевидных bean-компонентов.

Типичный вариант использования: Я объявляю bean-компоненты, которые будут изменять поведение самого Spring, я объявлю их явно, а не позволю им быть обнаруженными, просто для улучшения ясности файла конфигурации.

Однако часто этим bean-компонентам требуется определенная степень @Autowiring. Если я создаю компонент самостоятельно в конфигурации Java, я становлюсь ответственным за выполнение этого подключения, что бессмысленно.

Существует ли чистая конфигурация Java вариант, который явно возвращает класс Spring и позволяет ему управлять созданием экземпляра?

т.е.:

Дано класс:

Код: Выделить всё

public class MyFunkySpringBean implements InitializingBean {
@Autowired Foo foo;
}
В конфигурации XML это будет объявлено так просто:
Есть ли эквивалент в синтаксисе Java, где я могу явно объявить класс bean-компонента для Spring, но не нести ответственность за предоставление фактического экземпляра, оставляя это Spring.

Например:

Код: Выделить всё

@Configuration
public class MyAppConfig {

// Explictly provide the class, not the instance to Spring
@Bean
public MyFunkySpringBean funkyBean; // No instance -- it's up to Spring to build
}
Чтобы внести ясность: я не хочу этого делать:

Код: Выделить всё

@Configuration
public class MyAppConfig {

@Bean
public MyFunkySpringBean funkyBean() {
MyFunkySpringBean bean = new MyFunkySpringBean();
bean.foo = new Foo();
// other dependencies go here
return bean;
}

}
Существует ли подобная возможность в Spring?

Подробнее здесь: https://stackoverflow.com/questions/233 ... class-only
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»