在 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 (将#修改为@)