项目结构

your-project
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ ├── controller
│ │ │ │ └── TestController.java
│ │ │ ├── dao
│ │ │ │ ├── UserDicDao.java
│ │ │ │ └── UserRepository.java
│ │ │ ├── entity
│ │ │ │ ├── User.java
│ │ │ │ └── UserDic.java
│ │ │ └── YourProjectApplication.java
│ │ └── resources
│ │ └── application.properties
│ │ └── application.yml
├── pom.xml

结构解释

解释

  • your-project: 顶层目录,包含整个项目的所有文件和子目录。
    • src: 源代码目录。
      • main: 主应用程序代码目录。
        • java: 包含 Java 源文件的目录。
          • com: 按照 Java 包命名惯例的目录结构。
            • example: 项目的主包名,包含所有项目相关的子包和类。
              • controller: 控制器层,处理 HTTP 请求。
                • TestController.java: 一个示例控制器类,用于测试数据库连接。
              • dao: 数据访问层,包含存储库接口。
                • UserDicDao.java: Neo4j 存储库接口。
                • UserRepository.java: MySQL 存储库接口。
              • entity: 实体层,包含应用程序的数据模型类。
                • User.java: MySQL 实体类。
                • UserDic.java: Neo4j 实体类。
              • YourProjectApplication.java: 主应用程序类,包含 main 方法,用于启动 Spring Boot 应用程序。
        • resources: 资源文件目录,包含配置文件等非 Java 文件。
          • application.properties: Spring Boot 配置文件,以属性文件格式编写。
          • application.yml: Spring Boot 配置文件,以 YAML 文件格式编写。
    • pom.xml: Maven 项目的配置文件,定义了项目的依赖、构建配置等。

每个文件的具体内容和用途

1. application.properties 或 application.yml

这些文件位于 src/main/resources 目录下,用于配置 Spring Boot 应用程序。选择其一使用即可,不需要同时使用。

application.properties:

# MySQL 配置
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# Neo4j 配置
spring.neo4j.uri=bolt://localhost:7687
spring.neo4j.authentication.username=neo4j
spring.neo4j.authentication.password=your_password

application.yml:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database_name
    username: your_username
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver

  neo4j:
    uri: bolt://localhost:7687
    authentication:
      username: neo4j
      password: your_password

2. 实体类

User.java 位于 src/main/java/com/example/entity 目录下,表示 MySQL 的一个实体类:

package com.example.entity;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    private Long id;
    private String name;

    // getters and setters
}

UserDic.java 位于 src/main/java/com/example/entity 目录下,表示 Neo4j 的一个实体类

package com.example.entity;

import org.neo4j.ogm.annotation.GeneratedValue;
import org.neo4j.ogm.annotation.Id;
import org.neo4j.ogm.annotation.NodeEntity;

@NodeEntity
public class UserDic {
    @Id
    @GeneratedValue
    private Long id;
    private String name;

    // getters and setters
}

3. 存储库接口

UserRepository.java 位于 src/main/java/com/example/dao 目录下,用于 MySQL 数据库操作:

package com.example.dao;

import com.example.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

UserDicDao.java 位于 src/main/java/com/example/dao 目录下,用于 Neo4j 数据库操作:

package com.example.dao;

import com.example.entity.UserDic;
import org.springframework.data.neo4j.repository.Neo4jRepository;

public interface UserDicDao extends Neo4jRepository<UserDic, Long> {
}

4. 控制器

TestController.java 位于 src/main/java/com/example/controller 目录下,测试 MySQL 和 Neo4j 数据库连接:

package com.example.controller;

import com.example.dao.UserRepository;
import com.example.dao.UserDicDao;
import com.example.entity.User;
import com.example.entity.UserDic;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class TestController {

    @Autowired
    private UserRepository userRepository;

    @Autowired
    private UserDicDao userDicDao;

    @GetMapping("/testMysql")
    public List<User> testMysqlConnection() {
        return userRepository.findAll();
    }

    @GetMapping("/testNeo4j")
    public List<UserDic> testNeo4jConnection() {
        return userDicDao.findAll();
    }
}

5. 主应用程序类

YourProjectApplication.java 位于 src/main/java/com/example 目录下,包含 main 方法启动 Spring Boot 应用程序:

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories;

@SpringBootApplication
@EnableJpaRepositories(basePackages = "com.example.dao")
@EnableNeo4jRepositories(basePackages = "com.example.dao")
public class YourProjectApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourProjectApplication.class, args);
    }
}

测试连接

启动应用程序并访问以下 URL 来测试连接:

MySQL: http://localhost:8080/testMysql
Neo4j: http://localhost:8080/testNeo4j

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐