3.18

本文实现 Spring Boot 后端的用户模块开发,包括数据模型、服务层和 RESTful API 接口。
一、数据模型设计(Entity)
创建用户实体类User.java,位于com.demo.entity包下:
java
package com.demo.entity;

import javax.persistence.*;
import java.time.LocalDateTime;

@Entity
@Table(name = "tb_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false, unique = true, length = 50)
private String username;  // 用户名

@Column(nullable = false, length = 100)
private String password;  // 密码(实际开发应加密)

@Column(nullable = false, length = 50)
private String email;     // 邮箱

@Column(name = "create_time")
private LocalDateTime createTime;  // 创建时间

// 构造方法、getter和setter省略
public User() {}
// ...

}
二、数据访问层(Repository)
创建UserRepository.java接口,继承JpaRepository:
java
package com.demo.repository;

import com.demo.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
// 根据用户名查询用户
User findByUsername(String username);
// 根据邮箱查询用户
User findByEmail(String email);
}
三、服务层(Service)
创建UserService.java接口及实现类:
java
// 接口定义
package com.demo.service;

import com.demo.entity.User;
import java.util.List;

public interface UserService {
User register(User user);
User login(String username, String password);
User findById(Long id);
List findAll();
boolean deleteById(Long id);
}

// 实现类
package com.demo.service.impl;

import com.demo.entity.User;
import com.demo.repository.UserRepository;
import com.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;

@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;

@Override
public User register(User user) {
    // 密码加密(示例用MD5,实际应使用更安全的算法)
    user.setPassword(DigestUtils.md5DigestAsHex(user.getPassword().getBytes()));
    user.setCreateTime(LocalDateTime.now());
    return userRepository.save(user);
}

// 其他方法实现省略
// ...

}
四、控制器层(Controller)
创建UserController.java,暴露 RESTful 接口:
java
package com.demo.controller;

import com.demo.entity.User;
import com.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
private UserService userService;

@PostMapping("/register")
public ResponseEntity<User> register(@RequestBody User user) {
    User newUser = userService.register(user);
    return new ResponseEntity<>(newUser, HttpStatus.CREATED);
}

@PostMapping("/login")
public ResponseEntity<User> login(@RequestParam String username, 
                                 @RequestParam String password) {
    User user = userService.login(username, password);
    if (user != null) {
        return new ResponseEntity<>(user, HttpStatus.OK);
    } else {
        return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
    }
}

}

总结
后端核心模块已完成,包括用户的增删改查功能。下一篇将介绍 Android 客户端如何通过 Retrofit 调用这些 API,并实现用户界面。

posted @ 2025-03-18 21:51  李蕊lr  阅读(33)  评论(0)    收藏  举报