我想在Spring MVC应用程序中执行以下操作:


从我的@Service List<String> list中的数据库中获取一些数据(它将返回MainService)。
使用此list作为我当前在ConfigFactory中@Autowired的其他@Service MainService的构造函数参数。
ConfigFactory触发方法以获取最终结果,该结果将添加到我的@Controller类中的ModelAndView中。


我知道这样做是可能的:

ConfigFactory类:

@Service
public class ConfigFactory(){
    public void init(List<String> list){
        //Use list to initialize ConfigFactory
    }

    public Result getResult(){
        //Do some business logic
        return result;
    }
}


MainService类:

@Service
public class MainService {
    @Autowired ConfigFactory configFactory;

    public Result method(){
        //Get list from database;
        configFactory.init(list);
        Result result = configFactory.getResult();

        //Create a Result that will be later added to controller ModelAndView.
    }
}


但这感觉并不好。所以我被困在这里。有谁知道如何正确实现这一目标?

最佳答案

为什么不将列表作为参数传递给getResult()方法?
我想您从init()方法中的列表中获取值,并且在ConfigFactory中初始化了某些属性?请勿这样做,当多个用户尝试执行相同操作时,您可能会遇到问题。

10-07 15:52