在一个Web应用程序中,管理员(Admin)通常需要进行各种操作,如初始化、查找、保存和删除等。为了实现这些功能并提供相应的API接口,可以使用一个名为AdminController的控制器来处理与管理员相关的请求。
这是一个名为 AdminController
的 Java 类,用于处理与管理员(Admin)相关的 API 请求。下面是代码中各个部分的功能解释:
@RestController
注解表示此类是一个控制器,用于处理 HTTP 请求并返回结果。@RequestMapping("/api/admin")
注解指定了该控制器处理的请求路径的前缀。@Resource
注解标记了两个私有属性adminService
和adminRepository
,用于依赖注入。hasInit()
方法是一个 GET 请求处理器,用于检查是否已经进行了初始化。它通过调用adminRepository.existsAdminByRoles(Role.ROLE_SUPER_ADMIN.getValue())
方法来判断是否存在具有超级管理员角色的管理员。init()
方法是一个 POST 请求处理器,用于进行初始化。如果不存在具有超级管理员角色的管理员,则将传入的admin
对象设置为超级管理员,并保存到数据库中。findAll()
方法是一个 GET 请求处理器,用于获取所有管理员的列表。只有具有超级管理员或管理员角色的用户才能访问该接口(通过@PreAuthorize("hasAnyRole('ROLE_SUPER_ADMIN' ,'ROLE_ADMIN')")
注解进行权限控制)。delete()
方法是一个 DELETE 请求处理器,用于删除指定 ID 的管理员。同样,只有具有超级管理员或管理员角色的用户才能执行该操作。save()
方法是一个 POST 请求处理器,用于保存管理员信息。同样,只有具有超级管理员或管理员角色的用户才能执行该操作。