161018、springMVC中普通类获取注解service方法

时间:2023-03-09 17:26:48
161018、springMVC中普通类获取注解service方法

1、新建一个类SpringBeanFactoryUtils 实现 ApplicationContextAware

package com.loiot.baqi.utils;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
* -------------------------------------------
* Title : SpringBeanFactoryUtils
* Description : 普通类调用Spring注解方式的Service层bean
* Create on : 2016年11月1日 下午3:12:25
* Copyright (C) strongunion
* @author RICK
* 修改历史:
* 修改人 修改日期 修改描述
* -------------------------------------------
*/
public class SpringBeanFactoryUtils implements ApplicationContextAware { private static ApplicationContext appCtx; /**
* TODO: 此方法可以把ApplicationContext对象inject到当前类中作为一个静态成员变量。
* @Auhor: RICK
* @Date : 2016年11月1日
*/
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
appCtx = applicationContext;
} /**
* TODO: 获取ApplicationContext
* @Auhor: RICK
* @Date : 2016年11月1日
*/
public static ApplicationContext getApplicationContext() {
return appCtx;
} /**
* TODO: 这是一个便利的方法,帮助我们快速得到一个BEAN
* @Auhor: RICK
* @Date : 2016年11月1日
*/
public static Object getBean(String beanName) {
return appCtx.getBean(beanName);
}
}

2、在spring的配置文件.xml中添加

<bean id="springBeanFactoryUtils" class="com.haier.util.SpringBeanFactoryUtils"/>

3、在普通类中使用service

ZpAccountSalaryHistoryService zpAccountSalaryHistoryService = (ZpAccountSalaryHistoryService)SpringBeanFactoryUtils.getBean("zpAccountSalaryHistoryService");