博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【spring】spring 通过ApplicationContextAware 获取bean
阅读量:6691 次
发布时间:2019-06-25

本文共 3046 字,大约阅读时间需要 10 分钟。

hot3.png

当对SpringContextUtil 实例时调用setApplicationContext方法设置applicationContext,以便后来可直接用applicationContext **实现ApplicationContextAware **

public class SpringContextUtil implements ApplicationContextAware {    private static ApplicationContext applicationContext;     //Spring应用上下文环境       /**   * 实现ApplicationContextAware接口的回调方法,设置上下文环境      */    @Override  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {      SpringContextUtil.applicationContext = applicationContext;    }         public static ApplicationContext getApplicationContext() {      return applicationContext;    }       /**   * 获取对象      *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);    }  }

action调用:

public class UserAction extends BaseAction implements Action,ModelDriven{            private Users user = new Users();    //不用再加载springContext.xml文件,因为在web.xml中配置了,在程序中启动是就有了.          UserService userService = (UserService) SpringContextUtil.getBean("userService");            public String execute() throws Exception {                   return SUCCESS;      }       public Object getModel() {          return user;      }                 public String getAllUser(){          HttpServletRequest request = ServletActionContext.getRequest();                   List ls=userService.LoadAllObject( Users.class );          request.setAttribute("user",ls);               this.setUrl("/yonghu.jsp");          return SUCCESS;      }  }

转载于:https://my.oschina.net/v512345/blog/831021

你可能感兴趣的文章
我的友情链接
查看>>
Android 核心分析 之七------Service深入分析
查看>>
Regsvr32使用方法
查看>>
柱形图Demo
查看>>
编辑器
查看>>
关闭windows的默认共享
查看>>
react开发环境搭建
查看>>
数据库读写分离
查看>>
社交是微信营销
查看>>
2008 R2 证书服务器应用详解
查看>>
hive 动态分区太多问题
查看>>
Windows Server 2008 RemoteApp(二)---部署激活远程桌面授权服务器
查看>>
读取日志文件开发总结
查看>>
IOS --React Native
查看>>
Linux CPU
查看>>
Linux/Centos ntp时间同步,联网情况和无网情况配置
查看>>
初级网络运维工程师比赛题目
查看>>
跨交换机实现vlan实验报告
查看>>
jquery easyui滚动条部分设置介绍
查看>>
cannot find -lxxx问题
查看>>