JAva静的ファイル注釈の使用
3039 ワード
Springフレームワークは私たちのコードの作成に大きな便利さをもたらし、特に注釈の使用をもたらしました.しかし、静的ファイルで注釈を使用すると、このときにエラーが表示されるという問題があります.次のコードがあります.
これが一般的なコードで実行されている場合は問題ありませんが、静的コードブロックに入れると問題が発生します.静的コードはプロジェクトの起動時にメモリが割り当てられているため、userServiceにはデータがありません.
この問題を解決するには、次の方法を使用します.
使用する場合は以下のようになります.
@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);
}