zoukankan      html  css  js  c++  java
  • Spring AnnotationConfigApplicationContext

    Spring AnnotationConfigApplicationContext

    概述

    • 通常Spring XML文件用来作为ClassPathXmlApplicationContext 的初始化。@Configuration 标注的类能够用来初始化AnnotationConfigApplicationContext类,这样就可以提供Spring容器的完全的自由的无XML用法
    • AnnotationConfigApplicationContext继承GenericApplicationContext这个通用应用上下文,GenericApplicationContext内部定义了一个DefaultListableBeanFactory实例,GenericApplicationContext实现了BeanDefinitionRegistry接口,所以可以通过AnnotationConfigApplicationContext实例注册bean defintion,然后调用refresh()方法来初始化上下文。
    • AnnotationConfigApplicationContext继承AbstractApplicationContext,AbstractApplicationContext提供了ApplicationContext的抽象实现。

    示例

    package com.myapp.config;
    import com.myapp.Entitlement;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    @Configuration
    public class AppConfig {
        @Bean(name="entitlement")
        public Entitlement entitlement() {
            Entitlement ent= new Entitlement();
            ent.setName("Entitlement");
            ent.setTime(1);
            return ent;
        }
    
        @Bean(name="entitlement2")
        public Entitlement entitlement2() {
            Entitlement ent= new Entitlement();
            ent.setName("Entitlement2");
            ent.setTime(2);
            return ent;
        }
    }
    
    package com.myapp;
    public class Entitlement {
        private String name;
        private int time;
    
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getTime() {
            return time;
        }
        public void setTime(int time) {
            this.time = time;
        }
    }
    
    package com.myapp;
    
    import com.myapp.config.AppConfig;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    public class JavaConfigTest {
        public static void main(String[] arg) {
            AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
            ctx.register(AppConfig.class);
            ctx.refresh();
    
            Entitlement ent = (Entitlement)ctx.getBean("entitlement");
            System.out.println(ent.getName());
            System.out.println(ent.getTime());
    
            Entitlement ent2 = (Entitlement)ctx.getBean("entitlement2");
            System.out.println(ent2.getName());
            System.out.println(ent2.getTime());
    
            ctx.close();
        }
    }
    
  • 相关阅读:
    Key and Certificate Conversion
    openssl
    python http通信实现
    鼠标右键添加cmd
    好文章
    wireshark里无网络接口解决办法
    python垃圾回收
    终于有人把 Docker 讲清楚了
    mongodb的监控与性能优化
    mongodb创建超级用户和普通用户(对应数据库的用户)
  • 原文地址:https://www.cnblogs.com/frankltf/p/11469280.html
Copyright © 2011-2022 走看看