读书笔记 【Spring 实战】 (二) 装配bean

目录

1.Spring 配置的可选方案

2.自动化装配bean

2.1 创建可被发现的 bean

2.1.1 Spring 从两个角度来实现自动化装配:

2.1.2 常用注解:

3.通过 Java 代码装配 bean

4.通过 XML 装配 bean

4.1 配置规范:

4.2 声明bean的方式:

4.3 声明 DI:

2.6 小结


1.Spring 配置的可选方案

 springt提供三种主要的配置方式:

(1)在 XML 中进行显式配置。

(2)在 Java 中进行显式配置。

(3)隐式的 bean 发现机制和自动装配。

尽可能的使用(3)即隐式的bean发现机制和自动装配。

 

2.自动化装配bean

2.1 创建可被发现的 bean

2.1.1 Spring 从两个角度来实现自动化装配:

(1)组件扫描(component scanning):Spring 会自动发现应用上下文中所创建的 bean。

(2)自动装配(autowiring):Spring 自动满足 bean 之间的依赖。

2.1.2 常用注解:

(1)@Component :  表明该类会作为组件类,并告知 Spring 要为这个类创建 bean.【默认bean创建的ID名:类或方法名首字母小写;或者通过@Componet("newBeanID")的方式命名】

(2)@ComponentScan:  在 Spring 中启用组件扫描,如果没有其他配置的话,默认会扫描与配置类相同的包。

(3)@Autowired:  声明进行自动装配

 

3.通过 Java 代码装配 bean

@Bean
public CompactDisc sgtPeppers() {
  return new SgtPeppers();
}

在 JavaConfig 中声明 bean,编写一个方法,这个方法会创建所需类型的实例,然后给这个方法添加 @Bean 注解

 

4.通过 XML 装配 bean

4.1 配置规范:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context" >
  
  <!-- configuration details go here />

</beans>

4.2 声明bean的方式:

 使用 <bean> 元素并指定 class 属性,如:

<bean id="compactDisc" class="soundsystem.SgtPeppers" />

4.3 声明 DI:

使用<constructor-arg> 元素,如

<bean id="cdPlayer" class="soundsystem.CDPlayer">
  <constructor-arg ref="compactDisc">
</bean>

javaConfig与xml方式

package soundsystem;

import java.util.List;

public class BlankDisc implements CompactDisc {

  private String title;
  private String artist;
  private List<String> tracks;

  public BlankDisc(String title, String artist, List<String> tracks) {
    this.title = title;
    this.artist = artist;
    this.tracks = tracks;
  }

  public void play() {
    System.out.println("Playing " + title + " by " + artist);
    for (String track : tracks) {
      System.out.println("-Track: " + track);
    }
  }

}
<bean id="compactDisc" class="soundsystem.BlankDisc">
  <property name="title" value="Sgt. Pepper's Lonely Hearts Club Band" />
  <property name="artist" value="The Beatles">
  <property name="tracks">
    <list>
      <value>Sgt. Pepper's Lonely Hearts Club Band</value>
      <value>With a Little Help from My Friends</value>
      <value>Lucy in the Sky with Diamonds</value>
      <value>Getting Better</value>
      <value>Fixing a Hole</value>
      <!-- ...other tracks omitted for brevity... -->
    </list>
  </property>
</bean>

5. 小结

Spring 框架的核心是 Spring 容器。容器负责管理应用中组件的生命周期,它会创建这些组件并保证它们的依赖能够得到满足,这样的话,组件才能完成预定的任务。

在本章中,我们看到了在 Spring 中装配 bean 的三种主要方式:自动化配置、基于 Java 的显式配置以及基于 XML 的显式配置。不管你采用什么方式,这些技术都描述了 Spring 应用中的组件以及这些组件之间的关系。

尽可能使用自动化配置,以避免显式配置所带来的维护成本。但是,如果确实需要显式配置 Spring 的话,应该优先选择基于 Java 的配置,它比基于 XML 的配置更加强大、类型安全并且易于重构。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值