带参数构造函数

时间:2017-06-07 09:19:09

标签: java multithreading spring-boot runnable executorservice

我必须在类中实现runnable来创建线程。我需要在线程运行方法中传递数据。最初我通过参数构造函数设置数据,并通过创建带有new的类对象传递它,导致null使用自动装配或@value(因为它不再是弹簧管理),我无法自动装配那些不是bean的构造函数参数

示例代码以便更好地理解:

@Controller
public class UrlShortnerThread implements Runnable {

   // My constructor
   public UrlShortnerThread(List<JobsModel> jobsList, DataWriter dataWriter, Marshaller marshaller) {
    this.jobsList = jobsList;
    this.dataWriter = dataWriter;
    this.marshaller = marshaller;
}

在其他课程中我自动装配

@Autowired
UrlShortnerThread urlShortnerThread;

并尝试使用urlShortnerThread的run方法。

因此,我可以使用spring初始化构造函数,因为构造函数的参数不是bean。

嗨,因为我无法自动装配jobsList(构造函数参数),因为在项目配置期间我无法使用它,并且通过从db获取数据在其中一个控制器中创建列表。我想要的是在子列表中spllit列表并将每个子列表传递给线程以更新子列表的一些内容(通过api)并在xml文件中写入每个子列表。

或者有更好的方法来做到这一点。

0 个答案:

没有答案