Spring 注册Bean

Bean元数据信息在Spring容器中的内部对应物是由一个个BeanDefinition形成的Bean注册表,Spring实现了Bean元数据信息内部表示和外部定义的解耦。
Bean的配置信息是Bean的元数据信息
1. Bean的实现类
2. Bean的属性信息,如数据源的连接数、用户名等
3. Bean的依赖关系,Spring据依赖关系完成Bean之间的装配
4. Bean的行为配置,生命周期范围以及生命周期各过程的回掉函数
在XML文件中定义Bean的时候应该尽可能的使用id而不是name ,id定义的必须是唯一的而name定义的可以不唯一(位于后面的相同的name的Bean会覆盖前面的Bean),当id和name都没有的时候,会自动使用全限定名来获取bean。
依赖注入的两种方式
1. 属性注入:通过setXxx()的方式注入依赖的属性或者对象,要求Bean有默认的构造函数和setXxx()方法,Spring先通过默认构造函数生产Bean然后通过反射的方式调用setXxx()来注入属性值。记住,当类中没有构造函数的时候会生成一个默认的构造函数,当类中有有参数的构造函数的时候要自己写一个默认的构造函数
2. 构造函数注入:保证一些属性在实例化的时候就得到设置,确保Bean实例化之后就可以使用,使用构造函数注入的前提是Bean必须提供带参数的构造函数

循环依赖问题:使用构造函数注入有个前提就是入参的对象必须提前实例化好,这样的话如果两个Bean互相依赖就容易造成死锁的情况。解决方法:改成属性依赖。

3:工厂方法注入:

注入参数详解:
1:字面值通过参数直接注入,
特殊字符可以采用

你可能感兴趣的:(Spring 注册Bean)