在Spring中使用动态参数值自动装配类

时间:2013-07-10 11:52:28

标签: java spring spring-mvc service annotations

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

  1. 从@Service List<String> list中获取数据库中的一些数据(它将返回MainService)。
  2. 将此list用作我ConfigFactory目前@Autowired的其他@Service MainService的构造函数参数。
  3. ConfigFactory触发一个方法,以获得将在我的@Controller类中添加到ModelAndView的最终结果。
  4. 我知道有可能这样:

    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. 
        }
    }
    

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

1 个答案:

答案 0 :(得分:1)

为什么不将列表作为参数传递给getResult()方法? 我想你从init()方法的列表中获取值,并初始化ConfigFactory中的一些属性?不这样做,当几个用户尝试做同样的事情时,你可能会遇到问题。