我有一個(gè)特定的類用于與需要初始化的服務(wù)進(jìn)行交互。在應(yīng)用程序生命周期中,唯一有意義的地方是應(yīng)用程序的開始,因?yàn)闆]有它,Spring應(yīng)用程序的其余部分無法運(yùn)行。我有這個(gè)想法:@SpringBootApplicationpublic class MyApplication {
public static void main(String[] args) {
try {
MyRequiredService mrs = new MyRequiredService();
mrs.connect(); // This will throw if it fails
run(MyApplication.class, args);
} catch(MyException e) {
System.out.println("Failed to connect to MyRequiredService!");
}
}}這將啟動(dòng)服務(wù)并嘗試連接,但我有一個(gè)大問題。如何在應(yīng)用程序中傳遞此類?我需要它在我寫的服務(wù)端點(diǎn)中的功能。我沒有看到任何明顯的東西,并且搜索“在Spring啟動(dòng)應(yīng)用程序中傳遞類實(shí)例”會(huì)出現(xiàn)一堆無關(guān)的主題。春季靴子是否有一種聰明,干凈的方式來做到這一點(diǎn)?我為一個(gè)人為的例子道歉。服務(wù)的名稱是唯一的,我不想違反任何協(xié)議。
3 回答

開心每一天1111
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
一個(gè)類實(shí)現(xiàn)BeanFactoryPostProcessor,它在普通bean之前是init
@Configuration
public class MyRequiredService implements BeanFactoryPostProcessor,
PriorityOrdered, InitializingBean {
@Override
public int getOrder() {
return Integer.MIN_VALUE;
}
public void connect() {
// ...
}
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
}
@Override
public void afterPropertiesSet() throws Exception {
connect();
}
}
添加回答
舉報(bào)
0/150
提交
取消