SpringContextUtilsSpring⼯具类SpringContextUtils
import org.apachemons.lang3.StringUtils;
import org.springframework.beans.BeansException;
import t.ApplicationContext;
import t.ApplicationContextAware;
import t.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;
import org.t.request.RequestContextHolder;
import org.t.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.UnsupportedEncodingException;
import java.URLEncoder;
import java.util.Map;
/**
*
* Spring ⼯具类
*/
@Component
public class SpringContextUtils implements ApplicationContextAware {
private static ConfigurableApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = (ConfigurableApplicationContext) context;
}
/**
* 获取ApplicationContext对象
*/
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
/**
* 停⽌应⽤程序
*/
public static void close(){
spring framework版本if(applicationContext != null){
applicationContext.close();
}
}
/**
* 根据bean的名称获取bean
*/
public static Object getBeanByName(String name){
Bean(name);
}
/**
* 根据bean的class来查对象
*/
public static <T> T getBeanByClass(Class<T> clazz){
Bean(clazz);
}
/**
* 根据bean的class来查所有的对象(包括⼦类)
*/
public static <T> Map<String, T> getBeansByClass(Class<T> c){
BeansOfType(c);
}
/**
* 获取HttpServletRequest
*/
public static HttpServletRequest getRequest() {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
Request();
}
/**
* 获取HttpSession
*/
public static HttpSession getSession() {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
Request().getSession();
}
/**
* 获取完整的请求URL
*/
public static String getRequestUrl(){
return getRequestUrl(getRequest());
}
/**
* 获取完整的请求URL
*/
public static String getRequestUrl(HttpServletRequest request){
//当前请求路径
String currentUrl = RequestURL().toString();
//请求参数
String queryString = QueryString();
if(!StringUtils.isEmpty(queryString)){
currentUrl = currentUrl + "?" + queryString;
}
String result = "";
try {
result = de(currentUrl,"UTF-8");
} catch (UnsupportedEncodingException e) {
//ignore
}
return result;
}
/**
* 获取请求的客户端IP
*/
public static String getRequestIp(HttpServletRequest request) {
String ip = Header("X-Forwarded-For");
if(StringUtils.isNoneBlank(ip) && !"unKnown".equalsIgnoreCase(ip)){
//多次反向代理后会有多个ip值,第⼀个ip才是真实ip
int index = ip.indexOf(",");
if(index != -1){
return ip.substring(0,index);
}else{
return ip;
}
}
ip = Header("X-Real-IP");
if(StringUtils.isNoneBlank(ip) && !"unKnown".equalsIgnoreCase(ip)){
return ip;
}
RemoteAddr();
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论