通过Spring中的注释将构造函数注入到构造函数中

时间:2015-05-29 14:40:36

标签: spring-boot spring-annotations

我正在使用Spring Boot注释配置。我有一个类,其构造函数接受2个参数(字符串,另一个类)。

Fruit.java

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

Apple.java

public class Apple {

}

我有一个类需要通过向构造函数注入参数来自动装配上面的类(" iron Fruit",Apple类)

Cook.java

public class Cook {

    @Autowired
    Fruit applefruit;
}

厨师班需要使用参数自动装配Fruit类("铁水果",Apple类)

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>

如何仅使用注释配置来实现它?

1 个答案:

答案 0 :(得分:13)

Apple必须是一个弹簧管理的bean:

var previous=null;
function focusMe(el) {
  if(previous!=null){
    previous.style.backgroundColor = "white";
  }
  el.style.backgroundColor = "red";
  previous=el;
}

水果:

@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