如何解决在 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 举报,一经查实,本站将立刻删除。