用idea从头构建一个后端程序

使用 IntelliJ IDEA 从头构建 Spring Boot 后端程序的详细步骤


一、创建 Spring Boot 项目
  1. 打开 IntelliJ IDEA

    • 点击 New Project → 选择 Spring Initializr

  2. 配置项目基本信息

    • Name: 输入项目名称(例如 DemoBackend

    • Location: 选择项目存储路径

    • Type: Maven

    • Language: Java

    • Packaging: Jar

    • Java Version: 选择你的 JDK 版本(如 11 或 17)

    • Spring Boot Version: 推荐选择稳定版本(如 3.1.5)

  3. 添加依赖

    • 必选依赖

      • Spring Web(构建 RESTful API)

      • Spring Data JPA(数据库操作)

      • MySQL Driver(连接 MySQL 数据库)

    • 其他可选依赖(根据需求添加):

      • Lombok(简化代码)

  4. 生成项目

    • 点击 Create,等待 IDEA 自动生成项目结构。


二、配置数据库连接
  1. 修改 application.properties 文件

    • 路径:src/main/resources/application.properties

    • 添加以下配置(根据你的数据库信息调整):

      properties

      复制

      # 数据库连接
      spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false
      spring.datasource.username=root
      spring.datasource.password=root
      
      # JPA 配置
      spring.jpa.hibernate.ddl-auto=update
      spring.jpa.show-sql=true
      spring.jpa.properties.hibernate.format_sql=true
  2. 验证数据库连接

    • 启动 MySQL 服务,确保数据库 mydb 存在。

    • 运行项目(右键 DemoApplication → Run),如果控制台无报错,表示连接成功。


三、编写实体类(Entity)
  1. 创建实体类 DashboardData

    • 路径:src/main/java/com/example/demo/entity/DashboardData.java

    • 代码:

      java

      复制

      @Entity
      @Table(name = "dashboard_data")
      public class DashboardData {
          @Id
          @GeneratedValue(strategy = GenerationType.IDENTITY)
          private Long id;
      
          private String subtitle;
          private String top;
          private String dataName;   // 对应数据库字段 data_name
          private Integer dataValue; // 对应数据库字段 data_value
          private String dataColor;  // 对应数据库字段 data_color
      
          // Getters and Setters(可用 Lombok @Data 简化)
      }
    • 注意:若未使用 Lombok,需手动生成 Getter 和 Setter。


四、创建 Repository 接口
  1. 新建接口 DashboardDataRepository

    • 路径:src/main/java/com/example/demo/repository/DashboardDataRepository.java

    • 代码:

      java

      复制

      public interface DashboardDataRepository extends JpaRepository<DashboardData, Long> {
      }

五、编写 Service 层
  1. 创建服务类 DataService

    • 路径:src/main/java/com/example/demo/service/DataService.java

    • 代码:

      java

      复制

      @Service
      public class DataService {
          @Autowired
          private DashboardDataRepository dataRepository;
      
          public List<DashboardData> findAll() {
              return dataRepository.findAll();
          }
      }

六、编写 Controller 层
  1. 创建控制器 DataController

    • 路径:src/main/java/com/example/demo/controller/DataController.java

    • 代码:

      java

      复制

      @RestController
      @RequestMapping("/api/data")
      public class DataController {
          @Autowired
          private DataService dataService;
      
          @GetMapping
          public List<DataItemDTO> getAllData() {
              // 调用服务层获取原始数据
              List<DashboardData> entities = dataService.findAll();
              // 转换为 DTO 格式
              return entities.stream()
                      .map(DataItemDTO::new)
                      .collect(Collectors.toList());
          }
      }
  2. 创建 DTO 类 DataItemDTO

    • 路径:src/main/java/com/example/demo/dto/DataItemDTO.java

    • 代码:

      java

      复制

      public class DataItemDTO {
          private String subtitle;
          private String top;
          private Map<String, Object> data;
      
          public DataItemDTO(DashboardData entity) {
              this.subtitle = entity.getSubtitle();
              this.top = entity.getTop();
              this.data = new HashMap<>();
              this.data.put("name", entity.getDataName());
              this.data.put("value", entity.getDataValue());
              this.data.put("color", entity.getDataColor());
          }
      
          // Getters and Setters
      }

七、配置跨域(CORS)
  1. 新增配置类 CorsConfig

    • 路径:src/main/java/com/example/demo/config/CorsConfig.java

    • 代码:

      java

      复制

      @Configuration
      public class CorsConfig implements WebMvcConfigurer {
          @Override
          public void addCorsMappings(CorsRegistry registry) {
              registry.addMapping("/api/**")
                      .allowedOrigins("http://localhost:8081") // Vue 前端地址
                      .allowedMethods("GET", "POST");
          }
      }

八、运行与测试
  1. 启动 Spring Boot 应用

    • 右键 DemoApplication → Run

  2. 使用 Apifox 测试 API

    • 发送 GET http://localhost:8080/api/data

    • 预期响应:

      json

      复制

      [
        {
          "subtitle": "675人(2345次/4533元)",
          "top": "23%",
          "data": {
            "name": "数据1",
            "value": 445,
            "color": "#0E4CFF"
          }
        },
        // 其他数据条目...
      ]

九、常见问题解决

  1. 数据库连接失败

    • 检查 application.properties 中的数据库 URL、用户名、密码。

    • 确保 MySQL 服务已启动。

  2. 字段映射错误

    • 在实体类中使用 @Column 注解显式指定数据库字段名:

      java

      复制

      @Column(name = "data_name")
      private String dataName;
  3. 跨域请求被拦截

    • 确认 CorsConfig 中 allowedOrigins 配置了正确的 Vue 前端地址。

  4. 数据未返回预期格式

    • 检查 DTO 转换逻辑,确保字段名与前端一致。


十、扩展建议

  1. 添加数据初始化脚本

    • 在 src/main/resources/data.sql 中插入测试数据:

      sql

      复制

      INSERT INTO dashboard_data (subtitle, top, data_name, data_value, data_color) VALUES
      ('675人(2345次/4533元)', '23%', '数据1', 445, '#0E4CFF'),
      ('600人(2345次/4533元)', '39%', '数据2', 60, '#B405FD');
  2. 增强错误处理

    • 使用 @ControllerAdvice 全局异常处理,返回统一错误格式。

  3. 日志记录

    • 在 application.properties 中添加日志级别配置:

      properties

      复制

      logging.level.root=INFO
      logging.level.org.springframework.web=DEBUG

通过以上步骤,你可以从零开始构建一个完整的 Spring Boot 后端程序,并通过 API 提供符合前端需求的数据。后续开发中,逐步添加业务逻辑和安全性(如 JWT 鉴权)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值