Spring动态构造函数值

时间:2012-02-28 02:07:08

标签: java spring

我的英语不好。请理解..

//This is my Spring-mvc-based Controller
@Controller

public class DownloadManageController {
    private DownloadManageService downService;

    @Autowired
    public void setPackService(DownloadManageService downService) {
        this.downService = downService;
    }
}

//This is my Spring-Bean which should have a dynamic value of contructor
Component

public class DownloadManageService {
    private Log log = LogFactory.getLog(DownloadManageService.class);
    private FileAccessObject downloadFileAccessObj = null;

    DownloadManageService(String downloadInfoFile) {
        this.downloadFileAccessObj = new FileAccessObjectImpl(
                "d:/dat/download/" + downloadInfoFile);
    }

}

当服务注入控制器时......我想使downloadInfoFile变量动态取决于请求参数。

2 个答案:

答案 0 :(得分:1)

我建议你创建一个工厂类,你可以在其中传递你想要的路径。

答案 1 :(得分:0)

如果是我,我会这样做:

public class DownloadManageService {
    private Log log = LogFactory.getLog(DownloadManageService.class);
    private FileAccessObject downloadFileAccessObj = null;

    public DownloadManageService() {
    }

    public void setDownloadFileAccessObj... 
}

public class DownloadManageController {
    private DownloadManageService downService;

    @Autowired
    public void setPackService(DownloadManageService downService) {
        this.downService = downService;
    }

    public void exec(){
        ...
        this.downService.setDownloadFileAccessObj(new FileAccessObjectImpl(...))
        ...
    }
}