微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Spring 容器外使用 Vertx 和 spring-data-neo4j

如何解决在 Spring 容器外使用 Vertx 和 spring-data-neo4j

我们有 DAO 层,它使用 Spring 数据与 Neo4j 进行通信。在 DAO 层内部,它使用 spring 注释 @Autowired@Repository 等。我们有用 Vertx 编写的 API 层。 DAO 层用作 Vertx 应用程序内部的库。我可以在 Guice 的帮助下使用 @Inject 注入模型。但是,像 personDo.findByName('test') 这样的代码块失败了,因为它无法在 spring env 之外连接到 neo4j。关于如何在没有 spring 应用程序的情况下使用 spring 数据的任何建议或指示?

DAO 层

// PersonDao.java
@Repository
public interface PersonDao extends CustomerDaoCustom,BaseDao<CustomerDo> {
    Optional<PersonDo> findByName(String name);
}

顶点应用:

import com.example.dao.PersonDao;
import com.example.models.PersonDo;
...

@Inject
private PersonDao personDao;
...

public void findPerson(ServiceRequest request,Handler<AsyncResult<ServiceResponse>> resultHandler) {
    String personName = "Sam";
    logger.info("Example: finding person with name={}",personName);
    Optional<PersonDO> personopt = personDao.findByName(personName);
    personopt.ifPresentOrElse(person -> {
      logger.info("\t Person found: {}",person);
      logger.info("\t Person UUID: {}",person.getUuid());
      logger.info("\t Details: {}",person.dump());
    },() -> logger.info("\t Person with name={} not found",personName));

personDao 为 null 而不是 org.springframework.data.neo4j.repository.query.SimpleQueryByExampleExecutor@379ce046

如果我使用 spring boot 应用程序启动我的 vertx 服务,这可以在 API 中轻松实现,但我试图不在我的 API 层中使用 Spring boot。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。