spring--基础--03--依赖注入(DI)

spring–基础–03–依赖注入(DI)


代码地址

https://gitee.com/DanShenGuiZu/learnDemo.git

1、介绍

管理Bean之间的依赖关系,比如说A类中含有B类。

2、依赖注入方式

  1. 基于带参构造函数的依赖注入
  2. 基于setter方法的依赖注入,调用bean的setter方法来实现的。

3、案例

3.1、基于带参构造函数的依赖注入

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

输出:

..... Creating shared instance of singleton bean 'hello8_1'
Hello8--->helloword

3.2、基于setter方法的依赖注入

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3、内部Beans

bean的范围内定义的bean

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.4、注入集合

  1. list:注入一列值
  2. set:注入一列值
  3. map:注入键值对(k-v)的集合,k,v可以是任何类型。
  4. props:注入键值对(k-v)的集合,k,v都是字符串类型。
配置和代码

<bean id="hello11" class="com.example.demolearn.other.spring.demo1.Hello11">
	<property name="list1">
		<list>
			<value>1</value>
			<value>2</value>
			<!--注入对象引用-->
			<ref bean="hello9"/>
			<!--注入 null和空字符串的值-->
			<value>""</value>
		</list>
	</property>
	<property name="set1">
		<list>
			<value>3</value>
			<value>4</value>
			<ref bean="hello9"/>
		</list>
	</property>
	<property name="map">
		<map>
			<entry key="1" value="f1"/>
			<entry key="2" value="f2"/>
			<entry key="3" value-ref="hello9"/>
		</map>
	</property>
	<property name="props">
		<props>
			<prop key="01">one</prop>
			<prop key="02">two</prop>
		</props>
	</property>
</bean>



@Data
public class Hello11 {

	private List  list1;
	private Set  set1;
	private Map map;
	private Properties props;


	public static void main(String[] args){
		String pathHello = "./other\\Bean.xml";
		AbstractApplicationContext context = new ClassPathXmlApplicationContext(pathHello);
		Hello11 hello11 =(Hello11)context.getBean("hello11");


		System.out.println("----------list-------");

		for(Object o : hello11.getList1()){
			System.out.println(o.toString());
		}

		System.out.println("----------set1-------");
		for(Object o : hello11.getSet1()){
			System.out.println(o.toString());
		}
		System.out.println("----------map-------");
		for(Object key : hello11.getMap().entrySet()){
			System.out.println(key.toString());
		}
		System.out.println("----------props-------");

		for(Object key : hello11.getProps().entrySet()){
			System.out.println(key.toString());
		}
	}

}



输出
----------

----------list-------
1
2
com.example.demolearn.other.spring.demo1.Hello9@77846d2c
""
----------set1-------
3
4
com.example.demolearn.other.spring.demo1.Hello9@77846d2c
----------map-------
1=f1
2=f2
3=com.example.demolearn.other.spring.demo1.Hello9@77846d2c
----------props-------
02=two
01=one


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
spring-beans.jar是Spring框架中的一个核心JAR文件,它包含了Spring容器的基本组件BeanFactory和ApplicationContext,以及与Bean相关的一系列类和接口。如果没有spring-beans.jar,Spring框架将不能运行。 首先,Spring框架的核心思想是依赖注入(Dependency Injection,DI)和控制反转(Inversion of Control,IOC)。这意味着对象之间的依赖关系将不再由对象自身管理,而是由Spring容器来管理。在这种情况下,Spring容器必须能够创建和管理对象的实例,以及管理它们之间的依赖关系。这就是spring-beans.jar的作用。 BeanFactory是Spring容器的基本组件之一。它是一个工厂类,负责管理Bean的生命周期、创建Bean实例、管理Bean的依赖关系和Bean之间的通信。ApplicationContext是BeanFactory的扩展,除了BeanFactory的功能,它还提供了事件机制、AOP(面向切面编程)、异常处理等其他的功能。Spring框架的大部分应用程序都需要使用BeanFactory或ApplicationContext来管理Bean。 另外,spring-beans.jar还包含了一系列与Bean相关的类和接口。例如,BeanInfo、BeanDefinition、BeanWrapper、BeanPostProcessor、InitializingBean、DisposableBean等,这些类和接口提供了在Bean创建、初始化、销毁等过程中的扩展点,可以让开发者在这些过程中加入自己的逻辑,实现自己的扩展。 总之,spring-beans.jar可以说是Spring框架的核心之一,没有它,Spring框架将不能运行。它提供了创建、管理Bean实例以及它们之间的依赖关系、扩展点等功能,是Spring框架中不可替代的重要组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值