spring不支持静态变量的注入解决方案
2016-06-30 11:46
344 查看
I18N工具类
public class I18N {
private static ApplicationContext ctx = BeanContext.ctx;
private static ReloadableResourceBundleMessageSource messageSource;
public static String getMessage(String key, Object... msgParam) {
if(ctx == null){
return key;
}
if(messageSource != null){
messageSource.getMessage(key, msgParam, key, Locale.CHINA);
}
Map<String, ReloadableResourceBundleMessageSource> map = ctx.getBeansOfType(ReloadableResourceBundleMessageSource.class);
if(map.size() == 0){
return key;
}
String beanKey = map.keySet().toArray(new String[]{})[0];
messageSource = map.get(beanKey);
return messageSource.getMessage(key, msgParam, key, Locale.CHINA);
}
}
BeanContext类
public class BeanContext implements ApplicationContextAware {
public static ApplicationContext ctx;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
BeanContext.ctx = context;
}
public static Object getBean(String beanName) {
return ctx.getBean(beanName);
}
public static <T> T getBean(Class<T> clazz) {
return ctx.getBean(clazz);
}
public static <T> Map<String, T> getBeansOfType(Class<T> type) {
Map<String, T> map = ctx.getBeansOfType(type);
if (map == null) {
map = new HashMap<String, T>();
}
return map;
}
}
public class I18N {
private static ApplicationContext ctx = BeanContext.ctx;
private static ReloadableResourceBundleMessageSource messageSource;
public static String getMessage(String key, Object... msgParam) {
if(ctx == null){
return key;
}
if(messageSource != null){
messageSource.getMessage(key, msgParam, key, Locale.CHINA);
}
Map<String, ReloadableResourceBundleMessageSource> map = ctx.getBeansOfType(ReloadableResourceBundleMessageSource.class);
if(map.size() == 0){
return key;
}
String beanKey = map.keySet().toArray(new String[]{})[0];
messageSource = map.get(beanKey);
return messageSource.getMessage(key, msgParam, key, Locale.CHINA);
}
}
BeanContext类
public class BeanContext implements ApplicationContextAware {
public static ApplicationContext ctx;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
BeanContext.ctx = context;
}
public static Object getBean(String beanName) {
return ctx.getBean(beanName);
}
public static <T> T getBean(Class<T> clazz) {
return ctx.getBean(clazz);
}
public static <T> Map<String, T> getBeansOfType(Class<T> type) {
Map<String, T> map = ctx.getBeansOfType(type);
if (map == null) {
map = new HashMap<String, T>();
}
return map;
}
}
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 防御SQL注入攻击时需要注意的一个问题
- Sql2005注入辅助脚本[修改版]
- MySQL注入中导出字段内容的研究通过注入导出WebShell
- 浅析C#静态类,静态构造函数,静态变量
- 浅析MySQL的注入安全问题
- sql server注入建立虚拟目录的方法
- PHP中怎样防止SQL注入分析
- php 静态变量与自定义常量的使用方法
- C#使用带like的sql语句时防sql注入的方法
- mssql注入躲避IDS的方法
- 模拟Spring的简单实现