张小明 2026/1/8 16:23:56
海口网站关键词优化,加工平台英语,携程网站 建设平台分析,北京网站开发建设公司背景
有时我们需要在一些不属于Spring的类中#xff0c;去调用Spring的Service类的方法。
比如#xff0c;在Util类#xff0c;或者main()方法中#xff0c;去调用Service类的方法。
这时#xff0c;可以使用 ApplicationContextAware接口 和 ApplicationContext接口 .
A…背景有时我们需要在一些不属于Spring的类中去调用Spring的Service类的方法。比如在Util类或者main()方法中去调用Service类的方法。这时可以使用 ApplicationContextAware接口 和 ApplicationContext接口 .ApplicationContext 工具类import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; Component public class ApplicationContextUtil implements ApplicationContextAware { private static final Logger LOGGER LoggerFactory.getLogger(ApplicationContextUtil.class); private static ApplicationContext appContext; Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { appContext applicationContext; } public static T T getBean(ClassT clazz) { if (appContext null) { LOGGER.info(appContext is null); return null; } return appContext.getBean(clazz); } }示例比如Service名是 UserServiceImpl 那么初始化如下 UserServiceImpl userService ApplicationContextUtil.getBean(UserServiceImpl.class);ApplicationContextAware接口的源码public interface ApplicationContextAware extends Aware { void setApplicationContext(ApplicationContext var1) throws BeansException; }ApplicationContextAware 接口中只有一个方法 setApplicationContext()我们可以实现 ApplicationContextAware 接口来重写这个方法设置 ApplicationContext 。ApplicationContext接口的源码public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver { String getId(); String getApplicationName(); String getDisplayName(); long getStartupDate(); ApplicationContext getParent(); AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException; }ApplicationContext 接口继承了 EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver。BeanFactoryApplicationContext里面这么多个类和接口我们可以用Idea看一下相关的UML图前面的示例代码 applicationContext 使用了 getBean(Class var); 而在ApplicationContext 中是没有getBean这个方法的。通过上面的UML图可以留意到 ApplicationContext 继承 ListableBeanFactory 而 ListableBeanFactory 继承 BeanFactory。BeanFactory类里面就有 getBean这个方法。getBean方法就可以从Spring容器中返回特定名称的Bean对象。也正因如此ApplicationContext才能够实例化Bean。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
电子商务网站设计代码上海市建设工程备案查询网站
Langchain-Chatchat在项目管理文档检索中的时间轴定位功能 在现代软件开发和大型项目交付过程中,团队每天都在产生大量文档:需求变更、会议纪要、设计评审、验收报告……这些文本构成了项目的“记忆”。但当某位成员问出一句“上次讨论接口调整是哪天&am…
泰安公司网站建设wordpress 付费主题 时间
样式-标题与卡片-备注与尾注-编辑内容-添加指标-添加字段-选择度量如果需要关联查询条件,记得到查询条件增加关联如果需要设置备注里度量的格式,如下
微平台网站支持html5实现游戏建设一个商城网站需要多少钱
汽车芯片赛道,会诞生一匹新黑马吗?本周,备受瞩目的“国产GPU第一股”摩尔线程,发布首次公开发行股票并在科创板上市的发行结果公告。此前,公司预计IPO募集资金总额为80亿元。摩尔线程创始人张建中,曾担任英…
seo网站建设步骤美工素材网站有哪些
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
怎么做好网络销售优就业seo怎么样
YARN容量调度器多队列 Apache YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的资源管理框架,负责集群资源的分配和调度。容量调度器(Capacity Scheduler)是YARN的一种常用调度策略,允许多个组织或用户共享集群资源,同时保证每个队列有最低资源保障。多队列…