Spring: 获取Bean & Bean初始化
从Spring 应用上下文获取 Bean 的常用姿势 - SegmentFault 思否
package io.deem.waive.config; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.BeanNameAware; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component(value = "customBeanName") public class ComponentBean implements ApplicationContextAware, BeanNameAware, BeanFactoryAware, BeanClassLoaderAware{ private final String deem = "DEEM"; private BeanFactory beanFactory; public ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException{ System.out.println("\033[37;7m" + "applicationContextAware" + "\033[0m"); this.applicationContext = applicationContext; } @Override public void setBeanName(String beanName){ System.out.println("\033[37;7m" + beanName + "\033[0m"); } @Override public void setBeanClassLoader(ClassLoader classLoader){ System.out.println("\033[37;7m" + "BeanClassLoaderAware" + "\033[0m"); } @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException{ System.out.println("\033[37;7m" + "BeanFactoryAware" + "\033[0m"); this.beanFactory = beanFactory; } public BeanFactory getBeanFactory(){ return beanFactory; } }
@Test void waive(){ try(AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext("io.deem.waive")){ ComponentBean bean = annotationConfigApplicationContext.getBean(ComponentBean.class); System.out.println("\033[37;7m" + bean + "\033[0m"); System.out.println("(bean.getBeanFactory()==beanFactory) = " + (bean.getBeanFactory() == beanFactory)); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律