我想使用SpringBoot和SpringDataMongoDB开发一个小测试应用程序。因此,在本例中,我使用默认配置(如localhost:27017/test-database),并尝试遵循spring指南(https://spring.io/guides/gs/accessing-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()语句时,我收到un NullPointerException。
有关信息,请在ProjectRepository界面下方:
public interface ProjectRepository extends MongoRepository<Project, String>
{
}
我的包结构是:com。测验虚拟应用程序。javacom。测验笨蛋组件类。javacom。测验笨蛋域项目。javacom。测验笨蛋存储库项目存储库。JAVA
你能帮我理解我的错误吗?
注意:我使用SpringBoot 1.4。1和Mongo 3.2
在应用程序内部。run()
方法在Spring上下文之外实例化DummyClass(新建DummyClass()
)。这边
@Autowired
private ProjectRepository projectRepository;
未正确实例化。
您应该通过Spring注入您的DummyClass
,而不是通过其构造函数创建新的实例。
例子:
@SpringBootApplication
public class Application implements CommandLineRunner {
private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);
@Autowired
DummyClass dummyClass;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... strings) throws Exception {
dummyClass.load();
}
}
我需要使用spring@Cacheable注释缓存对MongoDB的调用: 不幸的是,使用@Cacheable注释接口中的任何方法都会导致以下异常: 我正在寻找一种方法来缓存对DB的调用(这相当昂贵)。有什么想法吗?
我想知道是否有任何机制可以在Spring Data MongoDB存储库中使用带有注释的?我希望能收到我所拥有的文件数量,而不必获取所有文件。 基本上,这在Java中相当于:
我正在开发一个Spring BootAPI,该API应该在本月晚些时候部署。我们为存储库创建了自己的界面,并扩展了CrudRepository。Spring开机自动连线一切。 我想做的是添加更多日志记录功能,例如。 目前,我们的代码如下所示: 由于Spring配置了所有功能,所以并没有真正看到装饰这些功能以添加日志功能的方法。有人能帮我指出留档,展示一个很好的例子,或者解释日志装饰器背后的概念吗?
我正在试验Spring和MongoDB。在我的项目中,我有一个存储库和一个有调度方法的服务。问题是,存储库没有自动运行,它总是为空。 Autowire在主应用程序类中正常工作(通过实现CommandLineRunner进行测试) 我错过什么了吗? 目录 机器应用。JAVA 工人JAVA LineDataRepository
问题内容: 我想知道在带有注释的Spring Data MongoDB存储库中是否可以使用任何机制?我很想收到我所拥有的文件数量而不必全部获取。 基本上,这等效于Java: 问题答案: 对我来说,这个解决方案就像一个迷住了一样(使用spring-data-mongodb 1.3.1.RELEASE),我也遇到了同样的问题atm并像这样解决了它(这只是我工作中的一小段代码):
我在Spring Boot上还是新手,我在mongoDB数据库中使用Spring-Boot添加了一个名为文章的文档,我想在该文章中添加注释。但是Spring-boot不能在我的应用程序中自动连接我的存储库。 下面是我的Repository类,它实现了ArticleRepositoryCustom接口,该接口包含一个OuterComment方法。 文章库 这是我的Springboot应用程序课程 当