我有一个服务DocumentServiceImpl。在这里面我想运行一个方法index()的class GlobalSearch背景。@Service@RequiredArgsConstructor public class DocumentServiceImpl implements DocumentService { ... any code@Transactional public void save(){... Thread indexTread = new Thread(new GlobalSearch(file, id), "GlobalSearch"); indexTread.start();.... }}方法index使用类GlobalSearch的从类ExtractTextFromFile方法。我使用构造函数和Lombok注释@RequiredArgsConstructor注入类ExtractTextFromFile@Component@RequiredArgsConstructor public class GlobalSearch implements Runnable{ public final ExtractTextFromFile extractTextFromFile; (41 lines) public File file; public Long id; public GlobalSearch(File File, Long id){ this.file = file; this.id = id;}public void index(File file, Long id) { File textFile = extractTextFromFile.toText(file, id); ... code of this method}@Overridepublic void run() { index(file, id);}...other methodspublic void search(){...}public String delete(){...}}..但IDE给出Variable 'extractTextFromFile' might not have been initialize了public final ExtractTextFromFile extractTextFromFile;如果我使用注入:@AutowiredExtractTextFromFile extractTextFromFile;然后给出错误:Exception in thread "GlobalSearch" java.lang.NullPointerExceptionat bps.module.zxc.component.GlobalSearch.index(GlobalSearch.java:41)at bps.module.zxc.component.GlobalSearch.run(GlobalSearch.java:136)at java.lang.Thread.run(Thread.java:748)此类ExtractTextFromFile:@Component@RequiredArgsConstructor public class ExtractTextFromFile { public File toText(File file, Long id) { extractFromPfd(); extractFromWord(); } extractFromPfd(){...}; extractFromWord(){...}; }
2 回答
![?](http://img1.sycdn.imooc.com/545865da00012e6402200220-100-100.jpg)
蓝山帝景
TA贡献1843条经验 获得超7个赞
我解决了这个问题,删除了GlobalSearch和ExtractTextFromFile类的注解@Component,然后将它们初始化为简单的句点
GlobalSearch globalSearch = new GlobalSearch()
...和
ExtractTextFromFile extractTextFromFile = new ExtractTextFromFile()
添加回答
举报
0/150
提交
取消