JAva静的ファイル注釈の使用

3039 ワード

Springフレームワークは私たちのコードの作成に大きな便利さをもたらし、特に注釈の使用をもたらしました.しかし、静的ファイルで注釈を使用すると、このときにエラーが表示されるという問題があります.次のコードがあります.
@Autowired
private UserService userService;
public static int test(User user){ return int i = userService.addUser(user); }

これが一般的なコードで実行されている場合は問題ありませんが、静的コードブロックに入れると問題が発生します.静的コードはプロジェクトの起動時にメモリが割り当てられているため、userServiceにはデータがありません.
この問題を解決するには、次の方法を使用します.
@Component//    ,          ,               
public class FreezeUtil { @Autowired private UserService userService; private static FreezeUtil freezeUtil; @PostConstruct //@PostConstruct Servle , 。PostConstruct ,init() public void init() { freezeUtil = this; freezeUtil.userService = this.userService; } public UserService getUserService() { return userService; } public void setUserService(UserService userService) { this.userService = userService; } }

使用する場合は以下のようになります.
public static int test(User user){

            //   freezeUtil.userService   userService

          return int i = freezeUtil.userService.addUser(user);

    }