Spring IOC容器

本文详细介绍了Spring的IOC容器,包括BeanFactory和ApplicationContext的应用,以及如何装载和配置Bean。通过AnnotationConfigApplicationContext容器展示了如何扫描和装配Bean,包括使用@Component、@Service等注解,以及@Primary和@Qualifier的依赖注入。此外,还探讨了Bean的生命周期,属性文件的使用,配置项的读取,以及SpringEL表达式的应用。最后,讨论了Bean的作用域和@Profile在不同环境中的应用。
摘要由CSDN通过智能技术生成

一、Spring IOC容器

1、容器主要功能(BeanFactory容器)

  • 发布Bean实例:
    发布Bean到容器中。
  • 获取Bean
    根据名称获取实例
    根据类型获取实例
    获取Bean类型
    获取Bean别名
    容器是否包含Bean
    是否是单例、多例
    类型是否匹配

2、容器分类

  • 基础容器:BeanFactory
  • 应用容器:ApplicationContext(增加了国际化,环境可配置,事件发布,资源模式解析功能)
  • web应用容器:WebApplicationContext
  • 与XML相关到容器:ClassPathXmlApplicationContext
  • 与注解相关容器:AnnotationConfigApplicationContext

3、装配Bean到IOC容器(Demo)

  • Bean对象
	@Data
	public class User {

    	/**
     	* 名称
    	 */
    	private String name;

    	/**
     	* 年龄
     	*/
    	private Integer age;
	}
  • java配置类
	@Configuration
	public class AppConfig {

    	@Bean(name = "user")
    	public User initUser(){
        	User user = new User();
        	user.setName("xiaoming");
        	user.setAge(20);
        	return user;
    	}
	}
  • IOC容器
	public class AppTest {
    	@Test
    	public void IocTest() {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
        	User user = applicationContext.getBean(User.class);
        	Log.info(user.getName());
    	}
	}

二、使用Spring IOC容器装载和配置Bean(使用AnnotationConfigApplicationContext容器)

1、装载Bean到IOC容器

  • 扫描包批量装配Bean
    需要被Spring管理的Bean使用添加如下注解:@Component,@Service,@Controller
    在java配置类中配置IOC容器要扫描那些包:@ComponentScan

  • @ComponentScan,@ComponentScan(“com.alibaba.*”),@ComponentScan(basePackages={“com.ib.*”,“com.alibaba.*”})指定要扫描的包

  • @ComponentScan(basePackage={“com.ib.*”},excludeFilters{@Filter(classes={Service.class})})排除包中标有@Service注

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值