Java @自动连线注解注入空值

Java @自动连线注解注入空值,java,spring-boot,Java,Spring Boot,我试图在DTO类中自动连接crudepository,但Spring总是注入null,而不是bean 我的代码如下所示: package com.exampleRestApp.task; import com.exampleRestApp.workers.WorkerRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annot

我试图在DTO类中自动连接
crudepository
,但Spring总是注入
null
,而不是bean

我的代码如下所示:

package com.exampleRestApp.task;

import com.exampleRestApp.workers.WorkerRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;


public class TaskDTO {

    private int workerID;
    private String name;
    boolean finished;
    private int taskID;

    @Autowired
    WorkerRepository w; //w==null in this moment

public Task MapToEntity() {
    Task task = new Task();
    task.setName(name);
    task.setFinished(finished);
    task.setTaskID(taskID);
    task.setWorker(w.findOne(task.getTaskID()));
    return task;
}
还有我的工人雷波:

package com.exampleRestApp.workers;

import java.util.List;
public interface WorkerRepository extends CrudRepository<Worker,Integer> {
  List<Worker> findBySurname(String surname);
  List<Worker>findAllByOrderByNameAsc();
}
package com.exampleRestApp.workers;
导入java.util.List;
公共接口WorkerRepository扩展了Crudepository{
列表findBySurname(字符串姓氏);
ListfindAllByOrderByNameAsc();
}

您必须使用
@Repository
@Service
spring注释对WorkerRepository进行注释

@Repository
public interface WorkerRepository extends CrudRepository<Worker,Integer>
@存储库
公共接口WorkerRepository扩展了Crudepository

@neir45,你能发布一下你是如何从调用
MapToEntity()方法的服务中注入
任务数据的吗?原因
TaskDTO
看起来也不像一个合适的弹簧bean@Overridepublic void saveTask(TaskDTO task){repo.save(task.MapToEntity());}请使用正确的代码更新答案,而不是在注释中。您发布的内容也证实了我的建议,即
TaskDTO
不是Springbean,您只需将其与
new
一起传递即可,因为我想自动连接repo not TaskDTO,而您的意思是空值吗<代码>这一刻
指的是不可执行的代码..您甚至没有展示如何使用
TaskDTO
,但看起来它只是一个POJO,您正在通过
new
进行实例化。