在 xml 文件中通过 bean 节点来配置 bean
        class:bean 的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参数的构造器
        id:表示容器中的Bean,id唯一。

  • 通过构造器方法来配置bean 的属性:<constructor-arg></constructor-arg>
  • 通过属性注入方法配置bean的属性:<property></property>
  • ref 属性建立bean 之间的引用关系             内部bean:不能被外部bean    引用,只能在内部使用 

可以使用autowire属性指定自动装配的方式,

  •       byName 根据bean 的名字和当前bean 的setter 风格的属性名进行自动装配 若有匹配的则进行自动装配,若没有匹配的,则不装配
  •       byType 根据bean 的类型和当前bean 的属性类型进行地总装配,若IOC容器中有一个以上的类型匹配的bean,则报异常。

抽象bean:bean的abstract属性为true的bean。这样的bean不能被IOC容器实例化,只用来被继承配置
    若某一个bean的class属性没有指定,则该bean必须是一个抽象bean。

bean 配置的继承:使用bean 的parent 属性指定继承那个配置

为bean属性赋值:

<!-- 通过p 命令空间为bean 的属性赋值,需要先导入p 命名空间  相对于传统的配置方式更加的简洁-->
     <bean id="person5" class="com.lzq.spring.collections.Person" p:age="30" p:name="Rose"
         p:cars-ref="cars"></bean>

设置init-method和destroy-method属性,为Bean指定初始化和销毁方法

使用 @Autowired 自动装配 Bean:

@Autowired 注解自动装配具有兼容类型的单个 Bean属性

  • 构造器, 普通字段(即使是非 public), 一切具有参数的方法都可以应用@Authwired 注解
  • 默认情况下, 所有使用 @Authwired 注解的属性都需要被设置. 当 Spring 找不到匹配的 Bean 装配属性时, 会抛出异常, 若某一属性允许不被设置, 可以设置 @Authwired 注解的 required 属性为 false
  • 默认情况下, 当 IOC 容器里存在多个类型兼容的 Bean 时, 通过类型的自动装配将无法工作. 此时可以在 @Qualifier 注解里提供 Bean 的名称. Spring 允许对方法的入参标注 @Qualifiter 已指定注入 Bean 的名称
  •  @Authwired 注解也可以应用在数组类型的属性上, 此时 Spring 将会把所有匹配的 Bean 进行自动装配.
  • @Authwired 注解也可以应用在集合属性上, 此时 Spring 读取该集合的类型信息, 然后自动装配所有与之兼容的 Bean.
  • @Authwired 注解用在 java.util.Map 上时, 若该 Map 的键值为 String, 那么 Spring 将自动装配与之 Map 值类型兼容的 Bean, 此时 Bean 的名称作为键值

Spring 还支持 @Resource 和 @Inject 注解,这两个注解和 @Autowired 注解的功用类似

  • @Resource 注解要求提供一个 Bean 名称的属性,若该属性为空,则自动采用标注处的变量或方法名作为 Bean 的名称
  • @Inject 和 @Autowired 注解一样也是按类型匹配注入的 Bean, 但没有 reqired 属性
  • 建议使用 @Autowired 注解