我想用Spring Boot和Spring Data MongoDB開發一個小測試應用程序。因此,在這種情況下,我使用默認配置(如localhost:27017/test database),並嘗試遵循彈簧指南(https://spring.io/guides/gs/accessing-data-mongodb/)。Spring Boot Data MongoDB - 存儲庫爲空
我啓動我的應用程序是這樣的:
@SpringBootApplication
public class Application implements CommandLineRunner {
private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... strings) throws Exception {
(new DummyClass()).load();
}
}
的DummyClass是如下:
@org.springframework.stereotype.Component
@ConfigurationProperties(prefix="dummy")
public class DummyClass {
private static String url;
private List<Project> projects;
@Autowired
private ProjectRepository projectRepository;
public void setUrl(String url) {
DummyClass.url = url;
}
@Override
public void load() {
// (...) creating some project objects
projectRepository.deleteAll();
projectRepository.save(this.projects);
}
}
當執行projectRepository.deleteAll()語句,我收到聯合國NullPointerException異常。
有關信息,該ProjectRepository界面下方:
public interface ProjectRepository extends MongoRepository<Project, String>
{
}
而我的包結構爲: com.test.dummy Application.java com.test.dummy.components DummyClass.java 融爲一體。 test.dummy.domain Project.java com.test.dummy.repositories ProjectRepository.java
你能幫我易懂nd我的錯誤?
注:我使用Spring 1.4.1引導和蒙戈3.2
嗯,你的應用程序#執行方法看起來weired。之前從未見過。你可以刪除它,然後重試?編輯:嗯,這是weired。你正在用新的DummyClass()創建一個對象。這與IoC和DI – smsnheck
的原則相矛盾。謝謝,你完全正確。當你的鼻子到達磨刀石時發生了...... ;-) –