本文主要是介绍Spring Boot中获取IOC容器的多种方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring...
1. 直接注入ApplicationContext
@Service public class MyService { @Autowired private ApplicationContext applicationContext; publicChina编程 void DOSomething() { // 通过ApplicationContext获取Bean UserService userService = applicationContext.getBean(UserService.class); // 或者通过名称获取 UserService userService2 = (UserService) applicationContext.getBean("userService"); } }
2. 实现ApplicationContextAware接口
@Component public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext context) throws BeansException { applicationContext = context; } public static ApplicationContext getApplicationContext() { return applicationContext; } public static <T> T getBean(Class<T> clazz) { return applicationContext.getBean(clazz); } public static <T> T getBean(String name, Class<T> clazz) { return applicationContext.getBean(name, clazz); } public static Object getBean(String name) { return applicationContext.getBean(name); } }
3. 通过SpringApplication.run()获取ApplicationContext
@SpringBootApplication public class Application { public static void main(String[] args) { // 启动应用并获取ApplicationContextwww.chinasem.cn android ApplicationContext context = SpringApplication.run(Application.class, args); // 直接从context中获取Bean UserService userServipythonce = context.getBean(UserService.class); userService.doSomething(); } }
4. 通过BeanFactory获取
@Service public class MyService { @Autowired private BeanFactory beanFactory; public void doSomething() { if (beanFactory.containsBean("userService")) { UserService userService = (UserService) beanFactory.getBean("userService"); // 使用userService } } }
5. 通过实现BeanFactoryAware接口
@Component public class MyComponent implements BeanFactoryAware { private BeanFactory beanFactory; @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; } public void doSomething() { UserService userService = (UserService) beanFactory.getBean("userService"); // 使用Bean } }
到此这篇关于Spring Boot中获取IOC容器的多种方式的文章就介绍到这了,更多相关SpringBoot 获取IOC容器内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.cpandroidpcns.com)!
这篇关于Spring Boot中获取IOC容器的多种方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!