Java @自动连线注解注入空值
我试图在DTO类中自动连接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
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
进行实例化。