我有一個彈簧啓動應用程序,我試圖注入一個存儲庫。每次我嘗試使用存儲庫時它都是空的。下面是一個代碼片段:如何使組件的依賴注入工作
我的主要應用
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'包名嗎? –