首页 > 解决方案 > 在springboot中获取存储库对象null

问题描述

我有以下项目结构

https://i.stack.imgur.com/CYXND.png

我的代码文件如下

DemoApplication.java

@SpringBootApplication
public class DemoApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        CarListGrabber grabber = new CarListGrabber();
        grabber.grabCarsWithName("Test");
    }

}

NewCarRepository.java

@Repository
public interface NewCarRepository extends CrudRepository<NewCar, Long> {

}

新汽车.java

@Entity
@Table(name = "new_car_details")
public class NewCar {
    // member variables with default constructor
}

CarListGrabber.java

@Service
public class CarListGrabber {

    @Autowired
    private NewCarRepository newCarRepository;

    // someOtherStuff
}

即使我使用了注释@Repository,@Service 我在服务中得到空存储库对象。

标签: javaspring-bootdependency-injection

解决方案


您正在实例化一个新CarListGrabber的:

CarListGrabber grabber = new CarListGrabber();

它不会进行您需要注入的注射grabber,例如:

@Autowired
CarListGrabber grabber;

推荐阅读