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);
  • 相关阅读:
    10 种保护 Spring Boot 应用的绝佳方法
    Redis 如何分析慢查询操作?
    Spring Boot 主类及目录结构介绍
    Redis 再牛逼,也得设置密码!!
    Spring Data Redis 详解及实战一文搞定
    Spring Boot Redis Cluster 实战干货
    超详细的 Redis Cluster 官方集群搭建指南
    Redis Linux 安装运行实战全记录
    hdu 4790 Just Random (思路+分类计算+数学)
    poj 1328 Radar Installation(贪心)
  • 原文地址:https://www.cnblogs.com/zst666/p/9145699.html
Copyright © 2011-2022 走看看