programing

스프링에서 주석을 통해 생성자에 매개변수 주입

padding 2023. 7. 22. 09:30
반응형

스프링에서 주석을 통해 생성자에 매개변수 주입

Spring Boot 주석 구성을 사용하고 있습니다.생성자가 2개의 매개 변수(문자열, 다른 클래스)를 허용하는 클래스가 있습니다.

과일.자바

public class Fruit {
    public Fruit(String FruitType, Apple apple) {
            this.FruitType = FruitType;
            this.apple = apple;
        }
}

사과.자바

public class Apple {

}

생성자에게 파라미터를 주입하여 위의 클래스를 자동 배선해야 하는 클래스가 있습니다("아이언 프루트", 애플 클래스).

쿡자바

public class Cook {

    @Autowired
    Fruit applefruit;
}

요리사 클래스는 매개 변수가 있는 과일 클래스("아이언 프루트", 애플 클래스)를 자동 배선해야 합니다.

XML 구성은 다음과 같습니다.

<bean id="redapple" class="Apple" />
<bean id="greenapple" class="Apple" />
<bean name="appleCook" class="Cook">
          <constructor-arg index="0" value="iron Fruit"/>
          <constructor-arg index="1" ref="redapple"/>
</bean>
<bean name="appleCook2" class="Cook">
          <constructor-arg index="0" value="iron Fruit"/>
          <constructor-arg index="1" ref="greenapple"/>
</bean>

주석 구성만 사용하여 이를 달성하는 방법은 무엇입니까?

Apple은 스프링 관리 콩이어야 합니다.

@Component
public class Apple{

}

과일 또한:

@Component
public class Fruit {

    @Autowired
    public Fruit(
        @Value("iron Fruit") String FruitType,
        Apple apple
        ) {
            this.FruitType = FruitType;
            this.apple = apple;
        }
}

의 사용법을 기록합니다.@Autowired그리고.@Value주석

요리사가 했어야 했어요.@Component너무.

갱신하다

아니면 당신은 사용할 수 있습니다.@Configuration그리고.@Bean주석:

@Configuration 
public class Config {

    @Bean(name = "redapple")
    public Apple redApple() {
        return new Apple();
    }

    @Bean(name = "greeapple")
    public Apple greenApple() {
        retturn new Apple();
    }

    @Bean(name = "appleCook")
    public Cook appleCook() {
        return new Cook("iron Fruit", redApple());
    }
    ...
}

언급URL : https://stackoverflow.com/questions/30532459/inject-parameters-to-constructor-through-annotation-in-spring

반응형