zoukankan      html  css  js  c++  java
  • Spring boot 梳理

    1. 直接注入(Autowired)
      1. @Configuration
        public class OAConfig {
            @Autowired
            private ApplicationContext applicationContext;
            
            @Bean
            public PersonUtils personUtil(){
                boolean bool=applicationContext.containsBean("aa");
                System.out.println("containsBean:aa:"+bool);
                return new PersonUtils();
            }
        }
        
        
        
        @Component
        public class User {
        
            @Autowired
            private ApplicationContext applicationContext;
        }
    2. 构造器方法注入
      1. @Component
        public class User{
            private ApplicationContext applicationContext;
        
            public User(ApplicationContext applicationContext) {
                this.applicationContext = applicationContext;
            }
        }
    3. 手动构建类实现接口
      1. /**
         * Spring的ApplicationContext的持有者,可以用静态方法的方式获取spring容器中的bean
         *
         * @author yj
         * @date 2018年5月27日 下午6:32:11
         */
        @Component
        public class SpringContextHolder implements ApplicationContextAware {
        
            private static ApplicationContext applicationContext;
        
            @Override
            public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
                SpringContextHolder.applicationContext = applicationContext;
            }
        
            public static ApplicationContext getApplicationContext() {
                assertApplicationContext();
                return applicationContext;
            }
        
            @SuppressWarnings("unchecked")
            public static <T> T getBean(String beanName) {
                assertApplicationContext();
                return (T) applicationContext.getBean(beanName);
            }
        
            public static <T> T getBean(Class<T> requiredType) {
                assertApplicationContext();
                return applicationContext.getBean(requiredType);
            }
        
            private static void assertApplicationContext() {
                if (SpringContextHolder.applicationContext == null) {
                    throw new RuntimeException("applicaitonContext属性为null,请检查是否注入了SpringContextHolder!");
                }
            }
        
        }
  • 相关阅读:
    css
    AcWing 145 超市 (贪心)
    AcWing 144 最长异或值路径 (Trie)
    AcWing 143 最大异或对 (Trie)
    AcWing 142 前缀统计 (Trie)
    AcWing 141 周期 (KMP)
    AcWing 139 回文子串的最大长度 (哈希+二分 / Manacher)
    AcWing 136 邻值查找 (set)
    AcWing 133 蚯蚓 (队列)
    AcWing 131 直方图中最大的矩形 (单调栈)
  • 原文地址:https://www.cnblogs.com/jiangtao1218/p/10187752.html
Copyright © 2011-2022 走看看