java获取spring的bean
* 加载spring配置文件,提供getBean接口.
* @author xiongzy
*
*/
public final class BeanLocator {
private static final Logger logger = Logger.getLogger(BeanLocator.class);
/**
* 单实例.
*/
private static BeanLocator instance = null;
/**
* 缺省配置文件名称.
*/
private static final String DEFAULT_CONFIGURATION_FILENAME = "spring/applicationContext.xml";
/**
* 加载配置文件名.
*/
private static String configurationFileName = null;
/**
* spring环境.
*/
private ApplicationContext applicationContext = null;
/**
* 单例模式.
* @return 接口
*/
public static BeanLocator getInstance() {
if (instance == null) {
// 同步控制代码, 防止初始化多次.
synchronized(logger) {
if (instance == null) {
instance = new BeanLocator();
}
}
}
return instance;
}
/**
* 设置配置文件名.
* @param fileName 配置文件名
*/
public static void setConfigurationFileName(String fileName) {
configurationFileName = fileName;
}
/**
* 私有构造.
*/
private BeanLocator() {
if (configurationFileName == null || configurationFileName.length() == 0) {
configurationFileName = DEFAULT_CONFIGURATION_FILENAME;
}
// 得到spring框架bean环境
try{
applicationContext = new ClassPathXmlApplicationContext(configurationFileName);
}catch(Exception e){
logger.error("初始化spring配置文件时发生异常:" + e.getMessage(), e);
throw new RuntimeException("初始化spring配置文件时发生异常:" + e.getMessage(), e);
}
}
/**
* spring getBean 接口.
* @param beanName 接口名称
* @return 接口
*/
public Object getBean(String beanName) {
return applicationContext.getBean(beanName);
}
public static void main(String[] args) {
CityInfoService cityInfoService = (CityInfoService)BeanLocator.getInstance().getBean("cityInfoService");
System.out.println(cityInfoService);
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。