zoukankan      html  css  js  c++  java
  • spring注解开发AnnotationConfigApplicationContext的使用

    使用AnnotationConfigApplicationContext可以实现基于Java的配置类加载Spring的应用上下文。避免使用application.xml进行配置。相比XML配置,更加便捷。

    示例

    AppConfig.java

    复制代码
    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;
        }
    }
    复制代码

    @Configuration可理解为用spring的时候xml里面的<beans>标签

    @Bean可理解为用spring的时候xml里面的<bean>标签

    Entitlement.java

    复制代码
    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;
        }
    }
    复制代码

    测试

    JavaConfigTest.java

    复制代码
    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();
        }
    }
    复制代码

    结果

    Entitlement
    1
    Entitlement2
    2
    使用AnnotationConfigApplicationContext可以实现基于Java的配置类加载Spring的应用上下文。避免使用application.xml进行配置。相比XML配置,更加便捷。

    示例

    AppConfig.java

    复制代码
    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;
        }
    }
    复制代码

    @Configuration可理解为用spring的时候xml里面的<beans>标签

    @Bean可理解为用spring的时候xml里面的<bean>标签

    Entitlement.java

    复制代码
    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;
        }
    }
    复制代码

    测试

    JavaConfigTest.java

    复制代码
    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();
        }
    }
    复制代码

    结果

    Entitlement
    1
    Entitlement2
    2
  • 相关阅读:
    Spring之InstantiationAwareBeanPostProcessor接口介绍
    Spring之BeanPostProcessor(后置处理器)介绍
    JVM中垃圾收集算法总结
    JVM中对象的回收过程
    zookeeper实现动态感知服务器上下线
    Spring事务的传播行为
    java工厂模式
    Spring加载流程源码分析03【refresh】
    Redis客户端操作之Jedis
    微服务设计的四个原则
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10193321.html
Copyright © 2011-2022 走看看