これはあまりにも質問のnoobではないことを願って、私はまだ春にはかなり新しいです。 Beanクラスに静的メソッドを含めることはできますか?静的メソッドがグローバルで、アプリケーション全体に1つのインスタンスがあり、共有するスレッドがあるが、Beanがそのように定義されていない可能性があるため、最初の考えはnoです。Spring Beanクラスに静的メソッドを含めることはできますか?
この質問を検索しましたが、明確な回答が見つかりませんでした。
これはあまりにも質問のnoobではないことを願って、私はまだ春にはかなり新しいです。 Beanクラスに静的メソッドを含めることはできますか?静的メソッドがグローバルで、アプリケーション全体に1つのインスタンスがあり、共有するスレッドがあるが、Beanがそのように定義されていない可能性があるため、最初の考えはnoです。Spring Beanクラスに静的メソッドを含めることはできますか?
この質問を検索しましたが、明確な回答が見つかりませんでした。
はい、
スプリングビーンには静的メソッドもあります。
@Component
public class Boo {
private static Foo foo;
@Autowired
public Boo(Foo foo) {
Boo.foo = foo;
}
public static void randomMethod() {
foo.doStuff();
}
public static int getThree(){
return 3;
}
}
@Autowiredコンストラクタを使用します。また、このようにそれを行うことがあります。staticフィールドへのハンドオーバー値に@PostConstruct使用
をここでの考え方を引き渡すことですBeanをSpringで構成した後、Beanを静的フィールドに変換します。
@Component
public class Boo {
private static Foo foo;
@Autowired
private Foo tFoo;
@PostConstruct
public void init() {
Boo.foo = tFoo;
}
public static void randomMethod() {
foo.doStuff();
}
}
はそれを収容することができます。
@Service
public class TestService {
@Autowired
private TestDao testDao;
public static void test(){
System.out.println("test");
}
}
@RestController
@RequestMapping("/api/")
public class TestController {
@Autowired
private TestService testService;
@PostMapping("test")
public String test(){
BrandTopNumService.test();
return "ok";
}
}
もちろん、クラス**に静的メソッドを含めることができます。より良い質問は静的メソッドを含んでいなければなりません。静的メソッドはグローバルであり、アプリケーション全体(つまりシングルトン)ごとに1つのインスタンスが存在します(注意してください)。そのため、静的メソッドがスレッドセーフであることを確認する必要があります。 –