📅  最后修改于: 2023-12-03 15:25:09.577000             🧑  作者: Mango
本篇文章介绍如何使用 Java 编写一个实现 RoleList API 的程序。RoleList API 是一种用户权限管理接口,通过它可以添加、编辑、删除用户角色,以及为不同的用户分配不同的角色。
在本文中,我们将使用 Spring Boot 框架来编写这个程序,并使用 MySQL 数据库存储用户和角色信息。
以下是实现 RoleList API 的步骤:
首先,我们需要创建一个 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>
在本程序中,我们需要两个实体类: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
}
接下来,我们需要创建 UserDAO 和 RoleDAO 类,用于在数据库中读取和写入数据。
public interface UserDAO extends JpaRepository<User, Long> {
User findByUsername(String username);
}
public interface RoleDAO extends JpaRepository<Role, Long> {
Role findByName(String name);
}
我们可以在 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);
}
}
接下来,我们需要在 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);
}
}
打开 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
最后,在 IDE 中或使用命令行启动程序,并访问 http://localhost:8080/api/roles 进行测试。
通过本文,您已经学会如何使用 Java 和 Spring Boot 框架来编写一个实现 RoleList API 的程序。有了这个程序,您可以为您的应用程序添加用户角色管理功能。