1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
| package com.zjasm.change.config; import com.zjasm.change.service.ChangeMainService; import org.springframework.beans.BeansException; import org.springframework.beans.PropertyValues; import org.springframework.beans.factory.*; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor; import org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; import org.springframework.boot.CommandLineRunner; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.stereotype.Component; import java.lang.reflect.Constructor; @Component public class MyLoadTestConfig implements ApplicationContextInitializer, BeanDefinitionRegistryPostProcessor, BeanFactoryPostProcessor , InstantiationAwareBeanPostProcessor, SmartInstantiationAwareBeanPostProcessor, BeanFactoryAware , BeanNameAware, InitializingBean, FactoryBean<MyLoadTestConfig.TestFactoryInnerBean> , SmartInitializingSingleton, CommandLineRunner, DisposableBean {
@Override public void initialize(ConfigurableApplicationContext applicationContext) { System.out.println("XFFF!=====ApplicationContextInitializer initialize!!!!!!!!"); } @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException { System.out.println("XFFF!=====postProcessBeanDefinitionRegistry!!!!!!"); } @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException { System.out.println("XFFF!=====postProcessBeanFactory!!!!!!"); } @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("[TestInstantiationAwareBeanPostProcessor] ===BeforeInitialization========postProcessBeforeInitialization!!!!!!!!!!!" + beanName); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("[TestInstantiationAwareBeanPostProcessor] ===AfterInitialization=== after initialization " + beanName); return bean; } @Override public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException { System.out.println("[TestInstantiationAwareBeanPostProcessor] ===BeforeInstantiation=== before instantiation " + beanName); return null; } @Override public boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException { System.out.println("[TestInstantiationAwareBeanPostProcessor] ===AfterInstantiation=== after instantiation " + beanName); return true; } @Override public PropertyValues postProcessProperties(PropertyValues pvs, Object bean, String beanName) throws BeansException { System.out.println("[TestInstantiationAwareBeanPostProcessor] ===PROPERTY=== postProcessPropertyValues " + beanName); return pvs; } @Override public Constructor<?>[] determineCandidateConstructors(Class<?> beanClass, String beanName) throws BeansException { System.out.println("[TestSmartInstantiationAwareBeanPostProcessor] determineCandidateConstructors " + beanName); return null; } @Override public Object getEarlyBeanReference(Object bean, String beanName) throws BeansException { System.out.println("[TestSmartInstantiationAwareBeanPostProcessor] getEarlyBeanReference " + beanName); return bean; } @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { System.out.println("[TestBeanFactoryAware] !!!!!setBeanFactory "); } @Override public void setBeanName(String name) { System.out.println("[setBeanName] !!!!!BEANNAME====== " + name); } @Override public void afterPropertiesSet() throws Exception { System.out.println("[afterPropertiesSet] ====== "); } @Override public TestFactoryInnerBean getObject() throws Exception { System.out.println("初始化bean方式====="); return new TestFactoryInnerBean(); } @Override public Class<?> getObjectType() { return TestFactoryInnerBean.class; } @Override public boolean isSingleton() { return true; } public static class TestFactoryInnerBean{ } @Override public void afterSingletonsInstantiated() { System.out.println("[afterSingletonsInstantiated] !!!ALL BEAN AFTERInitialization@@@@@@@@@@"); } @Override public void run(String... args) throws Exception { System.out.println("[CommandLineRunner] @@@@@@@AFTER Application Run"); } @Override public void destroy() throws Exception { System.out.println("[DisposableBean] =====DESTROY====="); } }
|