我有一个特定的类用于与需要初始化的服务进行交互。在应用程序生命周期中,唯一有意义的地方是应用程序的开始,因为没有它,Spring应用程序的其余部分无法运行。我有这个想法:@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!");
}
}}这将启动服务并尝试连接,但我有一个大问题。如何在应用程序中传递此类?我需要它在我写的服务端点中的功能。我没有看到任何明显的东西,并且搜索“在Spring启动应用程序中传递类实例”会出现一堆无关的主题。春季靴子是否有一种聪明,干净的方式来做到这一点?我为一个人为的例子道歉。服务的名称是唯一的,我不想违反任何协议。
3 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
一个类实现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();
}
}
添加回答
举报
0/150
提交
取消