方法一
package com.hsh.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringContexts implements ApplicationContextAware {
private static ApplicationContext context;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContexts.context = applicationContext;
}
public static ApplicationContext getContext() {
return context;
}
/**
* 获取spring 管理的bean
* @param name
* @param requiredType
* @return
*/
public static <T> T getBean(String name, Class<T> requiredType) {
return context.getBean(name, requiredType);
}
public static Object getBean(String beanName) {
return context.getBean(beanName);
}
}
方法二
//解决service为null无法注入问题
BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
userOpenidService = (UserOpenidService) factory.getBean("userOpenidService");
获取session和request
/**
* 取request
* @return
*/
public static HttpServletRequest getRequest () {
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
return request;
}
/**
* 取Session
* @return
*/
public static HttpSession getSession () {
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
return request.getSession();
}