![](/img/trans.png)
[英]Post of properties in a nested list does not seem to work in spring mvc
[英]Spring SmartLifeCycle does not seem to work with post construct
我正在使用Spring SmartLifeCycle來指定bean順序,如下所示:
public class MyBean implements SmartLifecycle {
@PostConstruct
public void init() {
//Do stuff
}
private boolean isRunning = false;
@Override
public boolean isAutoStartup() {
LOGGER.warn("************** is autostartp");
return true;
}
@Override
public void stop(final Runnable callback) {
stop();
callback.run();
}
@Override
public void start() {
LOGGER.warn("************** start ");
isRunning = true;
}
@Override
public void stop() {
LOGGER.warn("************** stop");
isRunning = false;
}
@Override
public boolean isRunning() {
LOGGER.warn("************** is running" + isRunning);
return isRunning;
}
@Override
public int getPhase() {
LOGGER.warn("************** phase " + (Integer.MIN_VALUE));
return Integer.MIN_VALUE;
}
}
該訂單似乎無法正常運行。 所有bean似乎都在考慮該階段之前就已構建,這是由應用程序啟動失敗引起的。
如何解決此問題並正確指定順序? 我使用不正確嗎?
好像您缺少getPhase()方法。 這用於控制實例化bean的順序。 在關機期間,順序相反。
沒有顯式階段的任何bean都會由Spring分配階段0(最常見),或者被賦予一個階段(如果它像JMS偵聽器一樣由Spring管理)。
除非您明確分配一個階段,否則Spring將做出“最佳猜測”,這可能不會產生期望的結果。
@Override
public int getPhase() {
return 1;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.