2017-12-30 22 views
0

방금 ​​시작한 첫 번째 작업은 관리 사용자 계정을 처음 만들 때 응용 프로그램을 시작할 때 봄 부팅 프로젝트를 시작한 것입니다. 이러한 기능을 구현하거나 Spring 기능에서 어떤 종류의 빌드를 사용하는 가장 좋은 방법은 무엇일까? 내 프로젝트에 지금처음으로 응용 프로그램을 시작하기 전에 계정을 설정하는 가장 좋은 방법은

사용자의 목록이 비어 있거나없는 경우 사용자 액세스 http://localhost:8080 내가 확인하고 각 시간 : 사용자 서비스가 빈 목록의 사용자를 반환합니다

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

경우 뷰를 등록 리디렉션됩니다.

필자의 의견으로는 더 나은 방법이 있지만 지식이 부족하기 때문에 어떤 방향으로 가야할지 모르겠다.

누가 가장 좋은 해결책이 될 것이라고 제안 할 수 있습니까? 사용할 수있는 Spring 기능이 있습니까?

답변

2

userService Bean을 초기화하는 동안 계정이 존재하는지 확인할 수 있습니다. @PostConstruct으로 주석 된 userService 클래스에 init 메소드를 생성하십시오. @PostConstruct로 주석 된 메소드는 인수를 가질 수 없으며 클래스가 초기화 된 후 (종속성 삽입 포함) 클래스가 사용되기 전에 시작되도록 보장됩니다. 서비스가 스프링 싱글 톤 빈 (기본값) 인 경우 응용 프로그램 시작 중에 만 검사가 수행됩니다. 이 방법을 사용

,이 같은 보일 것이다 : 물론

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

, 일부 구성 파일에서 관리자 계정 생성에 대한 세부 정보를 제공하거나 그냥 하드 코드가이 방법을 - 있습니다 대부분의 응용 프로그램에서 기본 admin에는 구성을 통해 또는 초기 로그인 후에 변경할 수있는 기본 이름과 암호가 있습니다.

관련 문제