package com.walker.infrastructure.arguments;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.BeansException;
|
import org.springframework.beans.factory.config.BeanPostProcessor;
|
|
/**
|
* 发现并自动注入'应用程序参数配置'的后处理器实现。
|
* @author shikeying
|
* @date 2014-5-27
|
*
|
*/
|
public class ArgumentsPostProcessor implements BeanPostProcessor {
|
|
private final transient Logger logger = LoggerFactory.getLogger(getClass());
|
|
private ArgumentsManager argumentsManager;
|
|
public void setArgumentsManager(ArgumentsManager argumentsManager) {
|
this.argumentsManager = argumentsManager;
|
}
|
|
@Override
|
public Object postProcessAfterInitialization(Object bean, String beanName)
|
throws BeansException {
|
// TODO Auto-generated method stub
|
if(ArgumentsManagerAware.class.isAssignableFrom(bean.getClass())){
|
if(argumentsManager == null)
|
throw new IllegalStateException("argumentsManager is required!");
|
((ArgumentsManagerAware)bean).setArgumentManager(argumentsManager);
|
logger.info("........inject argumentsManager into: " + beanName);
|
}
|
return bean;
|
}
|
|
@Override
|
public Object postProcessBeforeInitialization(Object bean, String beanName)
|
throws BeansException {
|
return bean;
|
}
|
|
}
|