neo4j 文档_Springboot2.3集成neo4j的过程和踩坑记

本文档记录了在SpringBoot2.3中集成Neo4j的过程,包括启动Neo4j数据库、添加Maven依赖、配置SpringBoot应用、创建Service与Dao,并提供了一个测试接口,成功实现节点保存。过程中遇到了sessionFactory空指针异常的问题,通过配置类解决。详细步骤和完整代码示例可供参考。
摘要由CSDN通过智能技术生成

最近有个需求是要使用neo4j这个数据库,看官方的介绍是个图形数据库,官方没有看到和springboot整合的文档(可能是我没找着),那就自己动手吧,找了好久网上的neo4j的资料很少,好多都是过时了的,大家互相抄,跟着那些没有经过验证的文章让我踩了不少坑。折腾了好久皇天不负有心人终于成功了,那我就把整合的过程记录下来,方便遇到同样问题的小伙伴查看,下面正式开始:

c7384463a8345a89691a52d7ec5a9ca5.png

在浏览器访问http://安装neo4j机器的IP:7474,会出现下面的页面,默认用户名密码是neo4j

a67ac2a53f1f4481f240f2db981ff340.png
de68ba86cba9e4950eff5776a2886ebf.png

登录成功后的界面

至此,neo4j就算是启动成功了,下面我们开始在idea中建立springboot工程,增加下面的maven依赖:

    org.springframework.boot        spring-boot-starter-parent        2.3.3.RELEASEorg.springframework.boot            spring-boot-starter-data-neo4j        org.springframework.boot            spring-boot-starter-web        org.neo4j            neo4j-ogm-http-driver        

在启动类中开启对neo4j的支持:

@SpringBootApplicationpublic class Neo4jdemoApplication {    public static void main(String[] args) {        SpringApplication.run(Neo4jdemoApplication.class, args);    }}

application.properties配置文件:

spring.data.neo4j.uri=http://192.168.2.101:7474spring.data.neo4j.username=neo4jspring.data.neo4j.password=123456

增加配置类(网上的好多人说不需要配置类,其实会报sessionFactory空指针异常):

@Configuration@EnableNeo4jRepositories("com.example.neo4jdemo.dao") // 声明neo4j repository存放地址public class Neo4jConfig {    @Value("${spring.data.neo4j.uri}")    private  String uri;    @Value("${spring.data.neo4j.username}")    private  String userName;    @Value("${spring.data.neo4j.password}")    private  String password;    @Bean    public org.neo4j.ogm.config.Configuration getConfiguration() {        org.neo4j.ogm.config.Configuration configuration = new org.neo4j.ogm.config.Configuration.Builder()                .uri(uri).connectionPoolSize(100)                .credentials(userName, password)                .withBasePackages("com.example.neo4jdemo.dao")                .build();        return configuration;    }    @Bean    public SessionFactory sessionFactory() {        return new SessionFactory(getConfiguration());    }    @Bean("neo4jTransaction")    public Neo4jTransactionManager neo4jTransactionManager(SessionFactory sessionFactory) {        return new Neo4jTransactionManager(sessionFactory);    }}

service类:

@Servicepublic class UserService {    @Autowired    private UserRepository userRepository;    public List getUser(){        return userRepository.getUserNodeList();    }    @Transactional    public void addUser(UserEntity userEntity){        userRepository.save(userEntity);    }}

Dao接口:

@Repositorypublic interface UserRepository extends Neo4jRepository {}

现在就可以启动啦,看看效果:

8e4ef9ffeb634f82d5c8b2065095d3bd.png

启动完美成功

下面我们写个接口测试一下看:

@RestControllerpublic class UserController {    @Autowired    private UserService userService;    @RequestMapping("/addUser")    public String addUserNode(){        UserEntity userEntity = new UserEntity();        userEntity.setName("张三");        userEntity.setAge(20);        userService.addUser(userEntity);        return "success";    }}
bbfa6b4729dace1ab96008bf7bfbc825.png

测试保存一个节点成功

接口请求成功,我们看看数据库的情况

a302dc449429caaa560cff8c780f83df.png

很明显"张三"这个节点已经成功保存了,neo4j和springboot的整合就完成了

完整demo地址:https://gitee.com/vic_miao/neo4jdemo.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值