普通java类调用spring注解bean

1、工具类

实现ApplicationContextAware,ServletContextAware接口

import java.io.File;
import javax.servlet.ServletContext;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.web.context.ServletContextAware;

public class AppUtil implements ApplicationContextAware ,ServletContextAware {
 
 
 private static Log log = LogFactory.getLog(AppUtil.class);


 
 private static ApplicationContext applicationContext;
 private static ServletContext servletContext;


// public static void init(ServletContext _servletContext) {
//  servletContext = _servletContext;
// }
 
 

 public void setApplicationContext(ApplicationContext contex)
   throws BeansException {
  applicationContext = contex;
  log.info("执行setApplicationContext");
 }

 public void setServletContext(ServletContext contex) {
  servletContext = contex;
  log.info("执行setServletContext");
  
 }
 public static ApplicationContext getContext() {
  return applicationContext;
 }

 public static ServletContext getServletContext() throws Exception {
  return servletContext;
 }

 public static Object getBean(Class<?> cls) {
  System.out.println("applicationContext:"+applicationContext);
  return applicationContext.getBean(cls);
 }

 public static Object getBean(String beanId) {
  System.out.println("applicationContext:"+applicationContext);
  return applicationContext.getBean(beanId);
 }

 public static String getAppAbsolutePath() {
  return servletContext.getRealPath("/");
 }

 public static String getRealPath(String path) {
  return servletContext.getRealPath(path);
 }

 public static String getClasspath() {
  String classPath = Thread.currentThread().getContextClassLoader()
    .getResource("").getPath();
  String rootPath = "";

  if ("\\".equals(File.separator)) {
   rootPath = classPath.substring(1);
   rootPath = rootPath.replace("/", "\\");
  }

  if ("/".equals(File.separator)) {
   rootPath = classPath.substring(1);
   rootPath = rootPath.replace("\\", "/");
  }
  return rootPath;
 }

}

2、在spring文件中注入工具类

<bean id="hrpAppUtil" class="com.test.util.AppUtil" />

<bean id="test" class="com.test.util.Test" >

<property name="testService">
   <ref local="testService" />
  </property>

</bean>

...

3、调用testService这个service

private TestService testService = (TestService) AppUtil.getBean("testService");

testService.save().....

完成


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值