Spring-AnnotationConfigApplicationContext

简介

使用AnnotationConfigApplicationContext可以实现基于Java的配置类加载Spring的应用上下文

 

 

复制代码
package com.sixinshuier.springbean.definition;

import com.sixinshuier.springbean.Config.BeanConfiguration;
import com.sixinshuier.springbean.domain.Toy;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * AnnotationConfigApplicationContext 的使用
 */
public class AnntationConfigTest {
    public static void main(String[] args) {
        // 创建BeanFactory 容器
        AnnotationConfigApplicationContext applicationContext=new AnnotationConfigApplicationContext();
        //注册 Configuration Class (配置类)
        applicationContext.register(BeanConfiguration.class);
        // 启动Spring应用的上下文
        applicationContext.refresh();
        // 依赖查找Bean
        Toy toy1= (Toy) applicationContext.getBean("Toy1");
        System.out.println(toy1.getName()+":"+toy1.getSize());

        Toy toy2= (Toy) applicationContext.getBean("Toy2");
        System.out.println(toy2.getName()+":"+toy2.getSize());

        // 关闭spring应用上线文
        applicationContext.close();
    }
}
复制代码

 

 

复制代码
package com.sixinshuier.springbean.Config;

import com.sixinshuier.springbean.domain.Toy;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration //相当于spring xml的<beans>
public class BeanConfiguration {

    @Bean(name = "Toy1")// 相当于<bean>
    public Toy toy(){
        Toy toy=new Toy();
        toy.setName("Football");
        toy.setSize("big");
        return toy;
    }

    @Bean(name = "Toy2")
    public Toy toy1(){
        Toy toy=new Toy();
        toy.setName("Table tennis");
        toy.setSize("small");
        return toy;
    }
}
复制代码

 

posted @   sixinshuier  阅读(178)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示