Java 将遗留代码转换为Spring依赖项注入
遗留代码片段如下所示。我想做的是将这段代码转换成Spring。但问题是Spring自己管理依赖性。我的问题是如何注入构造函数提供的Java 将遗留代码转换为Spring依赖项注入,java,spring,Java,Spring,遗留代码片段如下所示。我想做的是将这段代码转换成Spring。但问题是Spring自己管理依赖性。我的问题是如何注入构造函数提供的serviceId public class MyService{ public Attribute getAttribute(){ int serviceId =1; new ServiceDao(serviceId).getAttribute(); } } class ServiceDao{ privat
serviceId
public class MyService{
public Attribute getAttribute(){
int serviceId =1;
new ServiceDao(serviceId).getAttribute();
}
}
class ServiceDao{
private int serviceId;
ServiceDao(int serviceId){
this.serviceId = serviceId;
}
public Attribute getAttribute(){
//to get attribute
}
}
基本上,每次调用时都会尝试创建新对象
new ServiceDao(serviceId).getAttribute();
这完全是针对依赖注入的。因为您的逻辑是基于服务ID的,所以您可以创建一个服务类,如下所示
@Service
class ServiceDao{
ServiceDao(){
}
public Attribute getAttribute(int serviceId){
//to get attribute
//return attribute based on service Id,
//if(serviceId==1)
//{ return new Attribute("Red");}
}
}
你的Myservice可以是这样的
@Service
public class MyService{
@Autowired
ServiceDao dao;
public Attribute getAttribute(){
int serviceId =1;
return dao.getAttribute(1);
}
}
在构造函数和settersIs上使用
@Autowired
,即serviceId
值在MyService
中真正硬编码?如果不是,请提供一个关于它来自何处的提示。@CostiCiudatu Hi,这是来自工厂的相同通过id。。新建MyServiceFactory(serviceId),然后致电get Attributel让我知道我的回答是否对您有所帮助。如果行得通,请接受。谢谢,我认为您还应该提供一个构造函数注入的示例。