Как разместить метод фабрики @Bean в самом классе?

Я создал простую lib для этого, используя setTimeout ().

Исходный код доступен здесь:

https://github.com/miohtama/Krusovice/ BLOB / Master / SRC / инструмент / fade.js

1
задан oberlies 18 March 2019 в 14:00
поделиться

2 ответа

В основном я предпочитаю многоуровневую архитектуру с пружинной загрузкой, поэтому с двумя разными слоями для Configuration и model, например

package app.config

@Configuration
public class MyDataConfig {

// factory method
@Bean
public static MyData loadMyData(ResourceLoader resourceLoader) throws IOException {
    try (InputStream input = resourceLoader.getResource("classpath:data.json").getInputStream()) {
        return new ObjectMapper().readValue(input, MyData.class);
    } 
 }

}

пакет com.model

public class MyData {

// data structure
private Map<String, DataDetail> details;

    // ...
}
0
ответ дан Deadpool 18 March 2019 в 14:00
поделиться

Как ответил Дэдпул, вы должны отделить класс MyData от класса @Configurtion.
@Configuration мета-аннотирован с помощью @Component, поэтому, когда вы аннотируете MyData с помощью @Configuration, Spring также связывает его как обычный bean-компонент, и это делает двойное определение bean-компонентов MyData.

0
ответ дан Harel 18 March 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: