gpt4 book ai didi

java - 将遗留代码转换为 Spring 依赖注入(inject)

转载 作者:行者123 更新时间:2023-11-30 10:00:15 24 4
gpt4 key购买 nike

遗留代码片段如下所示。我想要做的是将此代码转换为 Spring。但问题是 Spring 自行管理依赖关系。我的问题是如何注入(inject)构造函数提供的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();

这纯粹是反对依赖注入(inject)。由于您的逻辑基于服务 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);

}


}

关于java - 将遗留代码转换为 Spring 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58163517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com