zoukankan      html  css  js  c++  java
  • Spring MVC 中一般 普通类调用service

    Spring MVC中一般 普通类调用service

    在Spring MVC中,Controller中使用service只需使用注解@Resource就行,但是一般类(即不使用@Controller注解的类)要用到service时,可用如下方法:

    1、SpringContextUtil

    复制代码
    package com.test.framework.utils;
     
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.NoSuchBeanDefinitionException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
     
    public class SpringContextUtil implements ApplicationContextAware {
     
        private static ApplicationContext applicationContext; // Spring应用上下文环境
     
        // 下面的这个方法上加了@Override注解,原因是继承ApplicationContextAware接口是必须实现的方法
        @Override
        public void setApplicationContext(ApplicationContext applicationContext)
                throws BeansException {
            SpringContextUtil.applicationContext = applicationContext;
        }
     
        public static ApplicationContext getApplicationContext() {
            return applicationContext;
        }
        /**
    * 通过类获取对象
    * @param clazz
    */
    public static Object getBean(Class<?> clazz) {
    return applicationContext.getBean(clazz);
    }
        public static Object getBean(String name) throws BeansException {
            return applicationContext.getBean(name);
        }
     
        public static Object getBean(String name, Class requiredType)
                throws BeansException {
            return applicationContext.getBean(name, requiredType);
        }
     
        public static boolean containsBean(String name) {
            return applicationContext.containsBean(name);
        }
     
        public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
            return applicationContext.isSingleton(name);
        }
     
        public static Class getType(String name)    throws NoSuchBeanDefinitionException {
            return applicationContext.getType(name);
        }
     
        public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
            return applicationContext.getAliases(name);
        }
    }
    复制代码

    2、Spring的配置文件application.xml中进行如下配置

    <bean id="SpringContextUtil" class="com.test.framework.utils.SpringContextUtil" scope="singleton" lazy-init="false" 
    ></bean>

    3、使用

    private HzTakenService hzTakenService = (HzTakenService) SpringContextUtil.getBean(HzTakenService.class);
  • 相关阅读:
    VRRP(Virtual Router Redundancy Protocol)业界标准
    CISCO快速转发
    89、C++中将临时变量作为返回值时的处理过程
    87、C++函数调用的压栈过程
    82、类什么时候会析构?
    84、智能指针的原理、常用的智能指针及实现
    81、构造函数一般不定义为虚函数的原因
    80、构造函数析构函数可否抛出异常
    79、虚析构函数的作用,父类的析构函数是否要设置为虚函数?
    78、构造函数、析构函数的执行顺序?
  • 原文地址:https://www.cnblogs.com/zst666/p/9145699.html
Copyright © 2011-2022 走看看