📜  实现 RoleList API 的Java程序(1)

📅  最后修改于: 2023-12-03 15:25:09.577000             🧑  作者: Mango

实现 RoleList API 的 Java 程序

简介

本篇文章介绍如何使用 Java 编写一个实现 RoleList API 的程序。RoleList API 是一种用户权限管理接口,通过它可以添加、编辑、删除用户角色,以及为不同的用户分配不同的角色。

在本文中,我们将使用 Spring Boot 框架来编写这个程序,并使用 MySQL 数据库存储用户和角色信息。

前置条件
  • 了解 Java 编程语言
  • 学习过 Spring Boot 框架
  • 熟悉 MySQL 数据库
实现步骤

以下是实现 RoleList API 的步骤:

  1. 创建项目并添加依赖
  2. 创建实体类
  3. 创建数据访问对象(DAO)
  4. 创建服务层(Service)
  5. 创建控制器(Controller)
  6. 添加数据库配置
  7. 启动程序
步骤 1:创建项目并添加依赖

首先,我们需要创建一个 Spring Boot 项目,并添加以下依赖:

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
  </dependency>
</dependencies>
步骤 2:创建实体类

在本程序中,我们需要两个实体类:User 和 Role。我们可以在 Spring Boot 项目中创建一个名为 model 的包,并在其中创建这两个类。

@Entity
@Table(name = "users")
public class User {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
 
    @Column(nullable = false, unique = true)
    private String username;
 
    @Column(nullable = false)
    private String password;
 
    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(
        name = "user_roles",
        joinColumns = @JoinColumn(name = "user_id"),
        inverseJoinColumns = @JoinColumn(name = "role_id"))
    private Set<Role> roles;
 
    // 省略 getter 和 setter
}

@Entity
@Table(name = "roles")
public class Role {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
 
    @Column(nullable = false, unique = true)
    private String name;
 
    // 省略 getter 和 setter
}
步骤 3:创建数据访问对象(DAO)

接下来,我们需要创建 UserDAO 和 RoleDAO 类,用于在数据库中读取和写入数据。

public interface UserDAO extends JpaRepository<User, Long> {
    User findByUsername(String username);
}
 
public interface RoleDAO extends JpaRepository<Role, Long> {
    Role findByName(String name);
}
步骤 4:创建服务层(Service)

我们可以在 service 包中创建 UserService 和 RoleService 类,用于在控制器中调用此类的方法。

@Service
public class UserService {
 
    @Autowired
    private UserDAO userDAO;
 
    public User findByUsername(String username) {
        return userDAO.findByUsername(username);
    }
 
    public void save(User user) {
        userDAO.save(user);
    }
}
 
@Service
public class RoleService {
 
    @Autowired
    private RoleDAO roleDAO;
 
    public Role findByName(String name) {
        return roleDAO.findByName(name);
    }
 
    public void save(Role role) {
        roleDAO.save(role);
    }
}
步骤 5:创建控制器(Controller)

接下来,我们需要在 controller 包中创建 RoleController 类,并使用它来处理 HTTP 请求。

@RestController
@RequestMapping("/api/roles")
public class RoleController {
 
    @Autowired
    private RoleService roleService;
 
    @GetMapping
    public List<Role> list() {
        return roleService.findAll();
    }
 
    @PostMapping
    public void add(@RequestBody Role role) {
        roleService.save(role);
    }
 
    @DeleteMapping("/{id}")
    public void delete(@PathVariable Long id) {
        roleService.delete(id);
    }
}
步骤 6:添加数据库配置

打开 src/main/resources/application.properties 文件,并添加以下配置:

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/rolelist?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
步骤 7:启动程序

最后,在 IDE 中或使用命令行启动程序,并访问 http://localhost:8080/api/roles 进行测试。

结论

通过本文,您已经学会如何使用 Java 和 Spring Boot 框架来编写一个实现 RoleList API 的程序。有了这个程序,您可以为您的应用程序添加用户角色管理功能。