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!");
                }
            }
        
        }
  • 相关阅读:
    苹果一体机发射Wi-Fi
    iphone 屏蔽系统自动更新,消除设置上的小红点
    data parameter is nil 异常处理
    copy与mutableCopy的区别总结
    java axis2 webservice
    mysql 远程 ip访问
    mysql 存储过程小问题
    mysql游标错误
    is not writable or has an invalid setter method错误的解决
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
  • 原文地址:https://www.cnblogs.com/jiangtao1218/p/10187752.html
Copyright © 2011-2022 走看看