Size: a a a

Spring Framework and more

2019 May 25

S🕶

Sander 🕶 in Spring Framework and more
Mikhail Yandimirov
Можно заинжектить Set<Converter> в конфигурацию и этот set запихать в ConversionServiceFactoryBean
так а я что делаю? я ведь код выше скинул =/ вопрос как сделать так чтоб, не приходилось это вручную добавлять каждый разб когда создаешь конвертер.
источник

MY

Mikhail Yandimirov in Spring Framework and more
Sander 🕶
так а я что делаю? я ведь код выше скинул =/ вопрос как сделать так чтоб, не приходилось это вручную добавлять каждый разб когда создаешь конвертер.
Ты можешь заинжектить коллекцию бинов, а не добавлять их вручную
источник

S🕶

Sander 🕶 in Spring Framework and more
можешь показать как это сделать? я нашел только такой способ но правильный ли он?
public ConversionService getConversionService(ApplicationContext applicationContext) {
       Map<String, Converter> beansList = applicationContext.getBeansOfType(Converter.class);
источник

MY

Mikhail Yandimirov in Spring Framework and more
@Autowired
Set<Conveter> converters;

Spring найдёт все бины, имплементирующие интерфейс Conveter и запихает в эту коллекцию
источник

MY

Mikhail Yandimirov in Spring Framework and more
Я же кинул ссылку выше
источник

S🕶

Sander 🕶 in Spring Framework and more
idea говорит что так делать не рекомендуется
источник

MY

Mikhail Yandimirov in Spring Framework and more
Sander 🕶
idea говорит что так делать не рекомендуется
Что пишет?
источник

S🕶

Sander 🕶 in Spring Framework and more
field injection is not recommended
источник

S🕶

Sander 🕶 in Spring Framework and more
я поэтому такой вариант и не использую
источник

MY

Mikhail Yandimirov in Spring Framework and more
Ну сделай через конструктор :)
источник

MY

Mikhail Yandimirov in Spring Framework and more
А не через филды
источник

S🕶

Sander 🕶 in Spring Framework and more
ты уверен что так делают, не работает такое для @Configuration. @yandimirov
источник

S🕶

Sander 🕶 in Spring Framework and more
Mikhail Yandimirov
Ну сделай через конструктор :)
не работает такой способ
источник

MY

Mikhail Yandimirov in Spring Framework and more
Точно, у тебя же конфигурация. Ну я не вижу ничего криминального, чтобы заинжектить через поля в таком случае
источник

S🕶

Sander 🕶 in Spring Framework and more
Mikhail Yandimirov
Точно, у тебя же конфигурация. Ну я не вижу ничего криминального, чтобы заинжектить через поля в таком случае
через филды?
источник

S🕶

Sander 🕶 in Spring Framework and more
Sander 🕶
можешь показать как это сделать? я нашел только такой способ но правильный ли он?
public ConversionService getConversionService(ApplicationContext applicationContext) {
       Map<String, Converter> beansList = applicationContext.getBeansOfType(Converter.class);
но такой вариант тоже работает, он не правильный?
источник

MY

Mikhail Yandimirov in Spring Framework and more
Угу, а вообще ты можешь прям в аргументы метода, который отдаёт ConversionService заинжектить коллекцию
источник

MY

Mikhail Yandimirov in Spring Framework and more
Sander 🕶
но такой вариант тоже работает, он не правильный?
Ну почему, тоже рабочий метод, просто через @Autowired тебе меньше телодвижений совершать надо
источник

S🕶

Sander 🕶 in Spring Framework and more
public ConversionService getConversionService(List<Converter> converters) {
источник

S🕶

Sander 🕶 in Spring Framework and more
я все получаю сразу как ты и говорил, через метод
источник