Spring在代码中获取bean的方法小结

网友投稿 229 2023-06-30


Spring在代码中获取bean的方法小结

一、通过Spring提供的ContextLoader

WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();

wac.getBean(beanID);

这种方式不依赖于servlet,不需要注入的方式。但是需要注意一点,在服务器启动时,Spring容器初始化时,不能通过这种方法获取Spring容器

二、实现接口ApplicationContextAware

定义工具类

public class SpringContextUtil implements ApplicationContextAware {

private static ApplicationContext applicationContext; //Spring应用上下文环境

/**

* 实现ApplicationContextAware接口的回调方法,设置上下文环境

* @param applicationContext

* @throws BeansException

*/

public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

SpringContextUtil.applicationContext = applicationContext;

}

/**

* @return ApplicationContext

*/

public static ApplicationContext getAppliEAITBMYcationContext() {

return applicationContext;

}

/**

EAITBMY* 获取对象

* @param name

* @return Object 一个以所给名字注册的bean的实例

* @throws BeansException

*/

public static Object getBean(String name) throws BeansException {

return applicationContext.getBeahttp://n(name);

}

/**

* 获取类型为requiredType的对象

* 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException)

* @param name bean注册名

* @param requiredType 返回对象类型

* @return Object 返回requiredType类型对象

* @throws BeansException

*/

public static Object getBean(String name, Class requiredType) throws BeansException {

return applicationContext.getBean(name, requiredType);

}

/**

* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true

* @param name

* @return boolean

*/

public static boolean containsBean(String name) {

return applicationContext.containsBean(name);

}EAITBMY

/**

* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。

* 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)

* @param name

* @return boolean

* @throws NoSuchBeanDefinitionException

*/

public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {

return applicationContext.isSingleton(name);

}

/**

* @param name

* @return Class 注册对象的类型

* @throws NoSuchBeanDefinitionException

*/

public static Class getType(String name) throws NoSuchBeanDefinitionException {

return applicationContext.getType(name);

}

/**

* 如果给定的bean名字在bean定义中有别名,则返回这些别名

* @param name

* @return

* @throws NoSuchBeanDefinitionException

*/

public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {

return applicationContext.getAliases(name);

}

}

三、配置bean

总结

以上就是Spring在代码中获取bean的几种方式,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于Vue2的移动端开发环境搭建详解
下一篇:网页挂马方式整理及详细介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~