gpt4 book ai didi

java - 在首次应用程序启动之前设置帐户的最佳方法

转载 作者:行者123 更新时间:2023-12-02 02:24:13 24 4
gpt4 key购买 nike

我刚刚启动了一个 Spring boot 项目,其中我的第一个任务是确保应用程序首次启动时创建管理员用户帐户。我只是想知道实现此类功能或使用某种 Spring 功能构建的最佳方法是什么。

现在在我的项目中每次用户访问 http://localhost:8080 时我正在检查用户列表是否为空:

 List<User> users = userService.getAllUsers();
if(users.isEmpty()){
modelAndView.setViewName("register");
} else {
modelAndView.setViewName("home");
}

如果用户服务返回空列表,用户将被重定向到注册 View 。

在我看来,肯定有更好的方法来做到这一点,但由于缺乏知识,我不知道应该朝哪个方向发展。

有人可以建议什么是最好的解决方案吗?是否有我可以使用的 Spring 功能构建?

最佳答案

您可以在初始化userService bean时检查帐户是否存在:在userService类中创建一个init方法,注释为@PostConstruct 。用 @PostConstruct 注解的方法不能有任何参数,并且保证在类初始化(包括依赖注入(inject))之后和使用类之前启动。如果您的服务是 Spring 单例 bean(默认),则仅在应用程序启动期间执行检查。

使用这种方法,它看起来像这样:

@Service
public class UserService {
//some code
@PostConstruct
public void init() {
if(userListIsEmpty())
createAdmin();
}
//some more code
}

当然,通过这种方式,您必须在某些配置文件中提供管理员帐户创建的详细信息,或者只是对其进行硬编码 - 请注意,在大多数应用程序中,默认管理员具有一些可以通过配置更改的默认名称和密码,或者首次登录后。

关于java - 在首次应用程序启动之前设置帐户的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48038237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com