2017-12-30 52 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で注釈を付けられたメソッドは引数を取ることができず、クラスの初期化(依存性注入を含む)の後でクラスが使用される前に開始されることが保証されています。サービスがスプリングシングルトンBean(デフォルト)の場合、チェックはアプリケーションの起動時にのみ実行されます。このアプローチを使用

、それはこのようなものになります。もちろん

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

を、この方法では、いくつかの設定ファイルで管理者アカウントを作成するための詳細を提供し、またはそれをハードコーディングする必要があります - 注意してほとんどのアプリケーションでは、デフォルトのadminには、設定または初期ログイン後に変更できるデフォルトの名前とパスワードがあります。

関連する問題