Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在首次启动应用程序之前设置帐户的最佳方法_Java_Spring_Spring Mvc_Spring Boot_Spring Security - Fatal编程技术网

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

Java 在首次启动应用程序之前设置帐户的最佳方法,java,spring,spring-mvc,spring-boot,spring-security,Java,Spring,Spring Mvc,Spring Boot,Spring Security,我刚刚启动了一个SpringBoot项目,其中我的第一个任务是确保应用程序在第一次启动时创建了管理员用户帐户。我只是想知道实现这种功能或使用某种内置Spring功能的最佳方式是什么 现在在我的项目中,每次用户访问时,我都会检查用户列表是否为空: List<User> users = userService.getAllUsers(); if(users.isEmpty()){ modelAndView.setViewName("registe

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

现在在我的项目中,每次用户访问时,我都会检查用户列表是否为空:

 List<User> users = userService.getAllUsers();
        if(users.isEmpty()){
            modelAndView.setViewName("register");
        } else {
            modelAndView.setViewName("home");
        }
List users=userService.getAllUsers();
if(users.isEmpty()){
modelAndView.setViewName(“寄存器”);
}否则{
modelAndView.setViewName(“主页”);
}
若用户服务返回空列表,用户将被重定向到注册视图

在我看来,肯定有更好的方法去做,但由于缺乏知识,我不知道我应该往哪个方向走

有人能提出最好的解决方案吗?
是否有内置的Spring功能可供我使用?

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

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

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

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

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

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

@Service
public class UserService {
    //some code
    @PostConstruct
    public void init() {
        if(userListIsEmpty())
            createAdmin();
    }
    //some more code
}
当然,通过这种方式,您必须在一些配置文件中提供创建管理员帐户的详细信息,或者只是硬编码-注意,在大多数应用程序中,默认管理员有一些默认名称和密码,可以通过配置或在初始登录后更改