package org.springcamp.security;
import javax.annotation.PostConstruct;
import javax.servlet.ServletContext;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanClassLoaderAware;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.MessageSource;
import org.springframework.context.MessageSourceAware;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.context.weaving.LoadTimeWeaverAware;
import org.springframework.core.io.ResourceLoader;
import org.springframework.instrument.classloading.LoadTimeWeaver;
import org.springframework.jmx.export.notification.NotificationPublisher;
import org.springframework.jmx.export.notification.NotificationPublisherAware;
import org.springframework.web.context.ServletContextAware;
/**
* @author keesun
*
*/
public class BeanLifeCycleTestBean implements BeanNameAware,
BeanClassLoaderAware, BeanFactoryAware, ResourceLoaderAware,
ApplicationEventPublisherAware, MessageSourceAware,
ApplicationContextAware, ServletContextAware, BeanPostProcessor,
InitializingBean, LoadTimeWeaverAware, NotificationPublisherAware,
BeanDefinitionRegistryPostProcessor{
public BeanLifeCycleTestBean() {
System.out.println("생성자를 호출하였습니다 !!!!!!!!!!!");
}
String beanName;
ClassLoader classLoader;
BeanFactory beanFactory;
ResourceLoader resourceLoader;
@PostConstruct
public void init() {
System.out.println("BeanLifeCycleTestBean @PostConstruct 실행합니다.");
}
public void setBeanName(String beanName) {
System.out.println("setBeanName() 실행합니다.");
this.beanName = beanName;
}
public String getBeanName() {
return beanName;
}
public void setBeanClassLoader(ClassLoader classLoader) {
System.out.println("setBeanClassLoader() 실행합니다.");
this.classLoader = classLoader;
}
public ClassLoader getClassLoader() {
return classLoader;
}
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
System.out.println("setBeanFactory() 실행합니다.");
this.beanFactory = beanFactory;
}
public BeanFactory getBeanFactory() {
return beanFactory;
}
public void setResourceLoader(ResourceLoader resourceLoader) {
System.out.println("setResourceLoader() 실행합니다.");
this.resourceLoader = resourceLoader;
}
public ResourceLoader getResourceLoader() {
return resourceLoader;
}
public void setApplicationEventPublisher(ApplicationEventPublisher arg0) {
System.out.println("setApplicationEventPublisher() 실행합니다.");
}
public void setMessageSource(MessageSource arg0) {
System.out.println("setMessageSource() 실행합니다.");
}
public void setApplicationContext(ApplicationContext context)
throws BeansException {
System.out.println("setApplicationContext() 실행합니다.");
}
public void setServletContext(ServletContext servletContext) {
System.out.println("setServletContext() 실행합니다.");
}
public Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException {
System.out.println("postProcessBeforeInitialization()에서 " + beanName
+ "실행합니다.");
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException {
System.out.println("postProcessAfterInitialization() " + beanName
+ "실행합니다.");
return bean;
}
public void afterPropertiesSet() throws Exception {
System.out.println("afterPropertiesSet() 실행합니다.");
}
public void customInit() {
System.out.println("customInit() 실행합니다.");
}
public void postProcessBeanFactory(
ConfigurableListableBeanFactory beanFactory) throws BeansException {
System.out.println("postProcessBeanFactory() 실행합니다.");
}
public void setNotificationPublisher(NotificationPublisher arg0) {
System.out.println("setNotificationPublisher() 실행합니다.");
}
public void setLoadTimeWeaver(LoadTimeWeaver arg0) {
System.out.println("setLoadTimeWeaver() 실행합니다.");
}
public void postProcessBeanDefinitionRegistry(
BeanDefinitionRegistry registry) throws BeansException {
System.out.println("postProcessBeanDefinitionRegistry() 실행합니다.");
}
}