我有一个弹簧启动应用程序,我试图注入一个存储库。每次我尝试使用存储库时它都是空的。下面是一个代码片段:如何使组件的依赖注入工作
我的主要应用
package com.cisco.ido.no2.deployment;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableAutoConfiguration
@SpringBootApplication
public class No2AlDeviceDeploymentIdApplication {
public static void main(String[] args) {
SpringApplication.run(No2AlDeviceDeploymentIdApplication.class, args);
}
}
我的组件
@Component
@PostBack(route = "no2.deployment", dataClass = String.class, queue = "no2-deployment")
public class DevicePostbackRunnable extends PostBackRunnable<String> {
@Autowired
private DeviceTypeRepository deviceTypeRepository;
public DevicePostbackRunnable() {}
public DevicePostbackRunnable(Class<String> dataClass) {
super(dataClass);
}
@Override
public void processTaskResult(String result, RunningTask runningTask) {
DeviceType dt = deviceTypeRepository.findOne((long)12); // <-----here
int yy = 90;
}
}
这里是我的仓库代码:
package com.cisco.ido.no2.deployment.repositories;
import com.cisco.ido.no2.deployment.entities.DeviceType;
import org.springframework.data.repository.CrudRepository;
public interface DeviceTypeRepository extends CrudRepository<DeviceType, Long> {
}
我对DevicePostBackRunnable包的名字是com.cisco.ido.no2.deployment
。当我拨打DeviceType dt = deviceTypeRepository.findOne
时,它始终为空。有没有办法做到这一点?另外,当我在Rest Controller中注入这个仓库时,它工作正常。
你可以发布你的'春季启动主应用程序包名? –
@andolsizied嗨发布我的主要应用程序 – Luke101
你能发布'DevicePostbackRunnable'包名吗? –