Java Springbean是否使用新关键字初始化依赖项?
我有一些遗留代码,其中类是通过xml定义和初始化的Springbean。它是一个带有字段成员的单例,字段成员是类依赖项。它有一个setter方法,所以我假设它应该通过Spring进行设置,尽管我没有找到任何定义它的xml。依赖项还有一个get()方法,它有一个null检查,如果为null,它会在Spring之外手动创建它,就像这样Java Springbean是否使用新关键字初始化依赖项?,java,spring,dependency-injection,Java,Spring,Dependency Injection,我有一些遗留代码,其中类是通过xml定义和初始化的Springbean。它是一个带有字段成员的单例,字段成员是类依赖项。它有一个setter方法,所以我假设它应该通过Spring进行设置,尽管我没有找到任何定义它的xml。依赖项还有一个get()方法,它有一个null检查,如果为null,它会在Spring之外手动创建它,就像这样 Class Test{ Dependency d; setD(Dependency d){this.d=d;} getD(){
Class Test{
Dependency d;
setD(Dependency d){this.d=d;}
getD(){
if(this.d==null){
this.d = new Dependency();
}return this.d
}
}
我试图理解为什么这个Springbean在Spring之外初始化一个依赖项,如果有的话,它的含义是什么,这只是一个坏的/旧的设计吗?或者我不了解Spring的工作原理。我会说这是一个糟糕的设计,可能作者想为Spring中没有注入D的情况提供退步。另一个想法是试图使D成为一个懒惰的依赖项。你应该探索D里面的东西 通常,您可以使用@Required标记始终应注入的成员。或者只是使用简单而好的构造函数注入。如果您关心惰性注入,那么Spring默认情况下就是这样工作的