私は3つのクラスを持っています。 CurrencyUtil
はNumberFormatter
が必要です。 NumberFormatter
は、CurrencyUtil
が必要とするため、CurrencyUtilFactory
にのみ注入されます。春 - コンストラクタに渡されないフィールドがほとんどありません
CurrencyUtil
に直接NumberFormatter
を注入する方法はありますか?
ありがとうございます!
CurrencyUtil
public class CurrencyUtil {
private final LocalizationHelper localizationHelper;
private final NumberFormatter numberFormatter;
public CurrencyFormatter(final LocalizationHelper localizationHelper, final NumberFormatter numberFormatter) {
this.localizationHelper = localizationHelper;
this.numberFormatter = numberFormatter;
}
public String prettyPrint(final Currency amount) {
}
}
CurrencyUtilFactory
public class CurrencyUtilFactory {
@Autowired
private NumberFormatter numberFormatter;
public CurrencyUtil create() {
...
final LocalizationHelper localizationHelper = ....;
return new CurrencyUtil(localizationHelper, numberFormatter)();
}
}
て、NumberFormatter
@Component
public class NumberFormatter {}
PS:これに対する申し立ては次のとおりです。
ありがとう!私はこの例ではうまくやっていませんでした。私は今それを修正した。本質的に、NumberFactoryは、CurrencyUtilが必要とするため、CurrencyUtilFactoryにのみオートワイヤードされます。それを直接CurrencyUtilにAutowireする方法はありますか? – user544192
SpringがマネージドBeanでない場合、どのように 'CurrencyUtil'に何を注入したいですか?たぶんJavaConfigが役立つかもしれません。更新された答えを見てください。 – pgiecek