1
は、私はこのようなインタフェースの階層を持っている:Javaの春ブーツコンフィグ標準
public interface Shape {
//code
}
@Component
public class Circle implements Shape {
//code
}
@Component
public class Square implements Shape {
//code
}
私は春ブーツ豆の規則を使用して、これらを配線するための最良の方法を知ってほしいです。
解決方法1:
@Component(value = "Circle")
public class Circle implements Shape {
//code
}
@Component(value = "Square")
public class Square implements Shape {
//code
}
@Configuration
public class ShapeConfig {
@Bean
Foo circleFoo(@Qualifiers("Circle") Shape shape) {
return new Foo(shape);
}
@Bean
Foo squareFoo(@Qualifiers("Square") Shape shape) {
return new Foo(shape);
}
}
解決方法2:
@Component
public class Circle implements Shape {
//code
}
@Component
public class Square implements Shape {
//code
}
@Configuration
public class ShapeConfig {
@Bean
Foo circleFoo(Circle shape) {
return new Foo(shape);
}
@Bean
Foo squareFoo(Square shape) {
return new Foo(shape);
}
}
このケースで最高のJava /春の練習は何ですか?私は少し冗長であることを値と@Qualifierものを見つけたが、具体的な実装で配線が
それはアプリケーションの実装に依存
興味深い質問...私は決定的な答えはありませんが、その場合は解決策2に行きます。私は可能な限り魔法の注釈を避ける方が好きです。あなたは予選で何も得られないので、些細なことを春に委譲するのは無意味なようです。 – SrThompson