java - Spring中具有动态参数值的 Autowiring 类

标签 java spring spring-mvc service annotations

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

  1. 从我的 @Service List<String> list 中的数据库获取一些数据(它将返回 MainService ) .
  2. 使用这个list作为其他@Service ConfigFactory 的构造函数参数我目前在 MainService 中@Autowired .
  3. 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 中的一些属性?不要这样做,当多个用户尝试执行相同的操作时,您可能会遇到问题。

关于java - Spring中具有动态参数值的 Autowiring 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17569953/

相关文章:

java - Spring MVC GET @ModelAttribute java.util.Date 类型带时间戳

java - 测试 spring-boot @service 类

java - 当两个线程试图修改/访问 HashMap 中的同一个键时会发生什么?

java - JPA和Hibernate Search的方法是什么?

java - Spring MVC InternalResourceViewResolver - 无法显示我的页面

java - 无法在 Spring 引导中更新文档。在 mongorepository.save 上获取 E11000 重复键错误

spring - 在将它们添加到 MongoDB 之前,如何在 Spring Data 中处理插入请求?

java - 在 Spring 3 MVC 中管理 session

java - 如何使用 iText 获取 AcroField 属性?

java - Android 中的 ListActivities 如何与 ListView 配合使用?