Spring Injection с использованием аннотаций - PullRequest
2 голосов
/ 18 февраля 2020

Я хочу настроить приведенный ниже тип инициализации bean-компонента для аннотации.

Ниже приведен пример конфигурации bean-компонента в типе xml и хочу настроить этот тип bean-компонента с использованием аннотаций.

<bean id="Animal" class="aaa.type.Animal">
    <property name="Animal" value="${Animal}" />
    <property name="AnimalFamily" >
        <bean class="aaa.type.AnimalFamily">
            <property name="AnimalCharactertitic">
                <list>
                    <bean class="aaa.type.AnimalColor">
                        <property name="name" value="Color" />
                        <property name="value" value="${color}" />
                    </bean>
                    <bean class="aaa.type.AnimalType">
                        <property name="name" value="Animal Type" />
                        <property name="value" value="${AnimalType}" />
                    </bean>                     
                </list>
            </property>     
        </bean>
</property>
</bean>

1 Ответ

0 голосов
/ 18 февраля 2020

Вы можете сделать что-то вроде этого:

@Configuration
public class MyConfigurationClass {
    @Bean
    public AnimalCharactertitic animalColor(@Value("${color}") String color) {
        AnimalCharactertitic animalCharactertitic = new AnimalCharactertitic();
        animalCharactertitic.setName("Color");
        animalCharactertitic.setValue(color);
        return animalCharactertitic;
    }

    @Bean
    public AnimalCharactertitic animalType(@Value("${AnimalType}") String animalType) {
        AnimalCharactertitic animalCharactertitic = new AnimalCharactertitic();
        animalCharactertitic.setName("Animal Type");
        animalCharactertitic.setValue(animalType);
        return animalCharactertitic;
    }

    @Bean
    public AnimalFamily animalFamily(@Autowired AnimalCharactertitic animalColor,
         @Autowired AnimalCharactertitic animalType) {

        AnimalFamily animalFamily = new AnimalFamily();

        List<AnimalCharactertitic> animalCharactertitics = new ArrayList<>();
        animalCharactertitics.add(animalColor);
        animalCharactertitics.add(animalType);

        animalFamily.setAnimalCharactertitic(animalCharactertitics);

        return animalFamily;
    }

    @Bean
    public Animal animal(@Value("${Animal}") String animal, @Autowired AnimalFamily animalFamily) {

        Animal animal = new Animal();
        animal.setAnimal(animal);
        animal.setAnimalFamily(animalFamily);

        return animal;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...