12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package com.kmall.common;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.AbstractApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import org.springframework.web.context.ContextLoader;
- /**
- * 加载刷新 Spring 配置
- *
- * @author Scott Chen
- * @date 2017/2/27
- *
- */
- public abstract class SpringApplicationContextSupport {
- private final static Logger logger = LoggerFactory.getLogger(SpringApplicationContextSupport.class);
-
- private static AbstractApplicationContext applicationContext;
-
- /**
- * Create a new ClassPathXmlApplicationContext, loading the definitions
- * from the given XML file and automatically refreshing the context.
- * @param contextConfigPath context file
- * @return
- */
- public static final AbstractApplicationContext loadApplicationContext(final String contextConfigPath) {
- synchronized (logger) {
- if(applicationContext == null){
- logger.info("Initializing Spring context...");
- applicationContext = new ClassPathXmlApplicationContext(contextConfigPath);
- logger.info("Spring context initialized!");
- applicationContext.registerShutdownHook();
- }
- }
-
- return applicationContext;
- }
-
- /**
- * 获取Spring IOC 容器
- * @return
- */
- public static final ApplicationContext getApplicationContext() {
- if(applicationContext == null) {
- return ContextLoader.getCurrentWebApplicationContext();
- } else {
- return applicationContext;
- }
- }
- }
|