Set<String> processedBeans = new HashSet<>(); if (beanFactory instanceof BeanDefinitionRegistry) { BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory; List<BeanFactoryPostProcessor> regularP
public class MyInitializingBean implements InitializingBean { private List<String> data; public List<String> getData() { return data; } @Override public void afterPropertiesSet() { // 在此方法中,我们模拟数据加载 data = new ArrayList<>(); data.add("数据1"); data.add("数据2"); data.add(...
二、策略模式示例代码 public interface CalculationStrategy { /** * 计算服务 */ int calculation(int a, int b); /** * 获取计算类型 * @return */ String getCalculationType(); } @Service public class MultiStrategy implements CalculationStrategy { @Override public int calculation(int a, int b) ...
/** * -XX:+TraceClassLoading 通过vm参数观察类加载 * @date 2021/7/5 */ public class Initialization { public static void main(String[] args) { Initialization initialization = new Initialization(); initialization.method1(); //new 一个父class } public void method1() { //new super class ...
将每个beanName对应的bean进行实例化和初始化,首先将每个bean和parentBeanFactory中的beanDifinition进行合并,之后判断是否是FactoryBean,若是则调用getBean(FACTORY_BEAN_PREFIX + beanName)方法实例化FactoryBean,FactoryBean的beanName在Spring容器是以&加beanName的形式存储的,在判断是否是SmartFactoryBean,若是则生成Facto...
public class MyInitializingBean implements InitializingBean { private List<String> data; public List<String> getData() { return data; } @Override public void afterPropertiesSet() { // 在此方法中,我们模拟数据加载 data = new ArrayList<>(); data.add("数据1"); data.add("数据2"); data.add(...
this.handlerAdapters = new ArrayList<>(matchingBeans.values()); // We keep HandlerAdapters in sorted order. AnnotationAwareOrderComparator.sort(this.handlerAdapters); } } else { try { HandlerAdapter ha = context.getBean(HANDLER_ADAPTER_BEAN_NAME, HandlerAdapter.class); ...