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().....
完成