Spring在代码中获取bean的方法小结
程序员文章站
2024-03-11 19:39:13
一、通过spring提供的contextloader
webapplicationcontext wac = contextloader.getcurrentwe...
一、通过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 getapplicationcontext() { return applicationcontext; } /** * 获取对象 * @param name * @return object 一个以所给名字注册的bean的实例 * @throws beansexception */ public static object getbean(string name) throws beansexception { return applicationcontext.getbean(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); } /** * 判断以给定名字注册的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
<!-- springcontextutil 通过代码获取bean --> <bean id="springcontextutil " class="org.shaofan.demo.utils.springcontextutil"/>
总结
以上就是spring在代码中获取bean的几种方式,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。
上一篇: php实现和c#一致的DES加密解密实例
下一篇: java网上图书商城(9)支付模块