前言:本文仅供新手阅读,大佬们切忌。我们适合使用Spring来开发程序。Spring提供了一种非常方便的对象管理方式,即IOC,同时也提供了一种非常友好的边界对象注入方式DI。只要是Spring容器管理的类,就可以使用@Resource或者@Autowired注解注入其他Spring容器管理的类。Spring容器管理的类有哪些?只要叫Bean的类就是Spring容器管理的类即可。不明白的可以看看这篇短文:非Spring管理的类中几种方式将Bean交给Spring容器管理应该怎么做?有时候我们只是需要在非Spring托管的类中使用bean,怎么办?“不可能,稀有”“一般碰不得”很多新人可能会这么想,但是!让我告诉你,这将在许多情况下使用。比如我的文章:踩坑的WebSocket实现类中不能使用@Autowired注入对象解决方案。我们定义了一个上下文类。Spring扫描完所有bean后,我们使用该类实现ApplicationContextAware接口,重写setApplicationContext方法,拿到ApplicationContext数据后,放到static属性中。packagecn.donglifeng.shop.common.context;导入org.springframework.beans.BeansException;导入org.springframework.context.ApplicationContext;导入org.springframework.context.ApplicationContextAware;导入org.springframework.lang.NonNull;导入org.springframework.context.ApplicationContextAwarespringframework.stereotype.Component;/***@authorJanYork*@date2023/3/89:33*@descriptionSpringBean上下文*/@ComponentpublicclassSpringBeanContextimplementsApplicationContextAware{privatestaticApplicationContextcontext;@OverridepublicvoidsetApplicationContext(@NonNullApplicationContextapplicationContext)throwsBeansException{context=applicationContext;}/***获取上下文**@return上下文对比*/publicstaticApplicationContextgetContext(){returncontext;}/***根据beanName获取bean**@parambeanNamebean名称*@returnbean对象*/publicObjectgetBean(StringbeanName){returncontext.getBean(beanName);}/***根据beanName和类型获取bean**@parambeanNamebean名称*@paramclazzbean类型*@param
