Spring의 ApplicationContext를 획득할 수 있는 provider 추가

This commit is contained in:
ParkSeongMin
2015-10-16 09:03:04 +00:00
parent eb2c96d6e9
commit 34f43a58f2
10 changed files with 95 additions and 9 deletions

View File

@@ -0,0 +1,24 @@
package com.nexacro.spring.context;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
* Spring의 Bean을 획득하기 위한 ApplicationContext를 제공한다.
* @author Park SeongMin
*
*/
public class ApplicationContextProvider implements ApplicationContextAware {
// 참고 URL
// http://blog.jdevelop.eu/?p=154
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
// ApplicationContext가 초기화 된 후 호출 된다.
SpringAppContext.getInstance().setApplicationContext(applicationContext);
}
}

View File

@@ -1,4 +1,4 @@
package com.nexacro.spring.servlet;
package com.nexacro.spring.context;
import java.io.IOException;
import java.io.InputStream;

View File

@@ -1,4 +1,4 @@
package com.nexacro.spring.servlet;
package com.nexacro.spring.context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

View File

@@ -0,0 +1,60 @@
package com.nexacro.spring.context;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.springframework.context.ApplicationContext;
public class SpringAppContext {
/*
* @autowired 자동처리 시에는 아래와 같이 처리 하면 된다.
*
* ApplicationContext ctx = AppContext.getApplicationContext();
* Honeypotbean honey = ctx.getBean(HoneyPotBean.class);
*
*/
public final static SpringAppContext INSTANCE = new SpringAppContext();
private final ReadWriteLock lock = new ReentrantReadWriteLock();
private final Lock readLock = lock.readLock();
private final Lock writeLock = lock.writeLock();
private ApplicationContext ctx;
private SpringAppContext() {
}
public static SpringAppContext getInstance() {
return INSTANCE;
}
/**
* Injected from the class “ApplicationContextProvider” which is
* automatically loaded during Spring-Initialization.
*/
public void setApplicationContext(ApplicationContext applicationContext) {
writeLock.lock();
try {
this.ctx = applicationContext;
} finally {
writeLock.unlock();
}
}
/**
* Get access to the Spring ApplicationContext from everywhere in your
* Application.
*
* @return
*/
public ApplicationContext getApplicationContext() {
readLock.lock();
try {
return this.ctx;
} finally {
readLock.unlock();
}
}
}

View File

@@ -8,7 +8,7 @@ public class ExceptionTracer {
private static final Logger LOGGER = LoggerFactory.getLogger(ExceptionTracer.class);
public void trace(Exception exception) throws Exception {
LOGGER.error(exception.getMessage());
LOGGER.error(exception.getMessage(), exception);
}
}

View File

@@ -22,14 +22,14 @@ import org.springframework.web.method.support.ModelAndViewContainer;
import com.nexacro.spring.NexacroConstants;
import com.nexacro.spring.annotation.ParamDataSet;
import com.nexacro.spring.annotation.ParamVariable;
import com.nexacro.spring.context.NexacroContext;
import com.nexacro.spring.context.NexacroContextHolder;
import com.nexacro.spring.data.NexacroFirstRowHandler;
import com.nexacro.spring.data.convert.ConvertDefinition;
import com.nexacro.spring.data.convert.NexacroConvertException;
import com.nexacro.spring.data.convert.NexacroConvertListener;
import com.nexacro.spring.data.convert.NexacroConverter;
import com.nexacro.spring.data.convert.NexacroConverterFactory;
import com.nexacro.spring.servlet.NexacroContext;
import com.nexacro.spring.servlet.NexacroContextHolder;
import com.nexacro.xapi.data.DataSet;
import com.nexacro.xapi.data.DataSetList;
import com.nexacro.xapi.data.PlatformData;

View File

@@ -21,7 +21,7 @@ import com.nexacro.spring.data.convert.NexacroConvertListener;
* 2015. 8. 9. Park SeongMin 최초 생성
* </pre>
*/
@Deprecated
public class NexacroWebSecurityListener implements NexacroConvertListener {
@Override

View File

@@ -28,7 +28,7 @@ import com.nexacro.xapi.data.VariableList;
* 2015. 8. 11. Park SeongMin 최초 생성
* </pre>
*/
@Deprecated
public abstract class SecurityUtil {
public static void checkSecurity(PlatformData platformData) throws SecurityException {

View File

@@ -10,6 +10,8 @@ import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.nexacro.spring.NexacroConstants;
import com.nexacro.spring.context.NexacroContext;
import com.nexacro.spring.context.NexacroContextHolder;
import com.nexacro.xapi.data.Debugger;
import com.nexacro.xapi.data.PlatformData;
import com.nexacro.xapi.tx.HttpPlatformRequest;

View File

@@ -11,10 +11,10 @@ import org.springframework.util.StopWatch;
import org.springframework.web.servlet.view.AbstractView;
import com.nexacro.spring.NexacroConstants;
import com.nexacro.spring.context.NexacroContext;
import com.nexacro.spring.context.NexacroContextHolder;
import com.nexacro.spring.data.NexacroFirstRowAccessor;
import com.nexacro.spring.data.NexacroFirstRowHandler;
import com.nexacro.spring.servlet.NexacroContext;
import com.nexacro.spring.servlet.NexacroContextHolder;
import com.nexacro.spring.util.NexacroUtil;
import com.nexacro.xapi.data.DataSet;
import com.nexacro.xapi.data.DataSetList;