Spring笔记一 SpringInAction第二章(一):装配Bean(一)

来源:互联网 发布:怎么开通淘宝直播间 编辑:程序博客网 时间:2024/06/05 06:51

在Springl In Action 第四版中的第一章,主要在介绍Spring.所以就没有过多的笔记。

直接从第二章开始

第二章——装配Bean

1、在Spring中装配Bean有三种方式:XML显示装配、Java代码显示装配(基于Java代码装配)、自动装配

本篇文章讲解使用自动装配Bean:

@Component(value="sgtPeppers")public class SgtPeppers implements CompactDisc {  private String title = "Sgt. Pepper's Lonely Hearts Club Band";    private String artist = "The Beatles";    public void play() {    System.out.println("Playing " + title + " by " + artist);  }  }


1、使用@Component表示创建一个Bean

2、value的值,是个这个Bean设置ID

当创建完一个Bean后,Spring是组件扫描默认不启动的。需要显示启动


采用Java代码启动Spring组件扫描:

这里就需要用到另外两个注解 @Configuration  @ComponentScan

1、创建一个类

2、使用注解

@Configuration@ComponentScan//默认扫描与配置类相同的包public class CDPlayerConfig { }

当然可以指定扫描的包

@Configuration@ComponentScan(basePackages={"sousoundsystem.auto"})//这个注解会使Spring中启用组件扫描,默认扫描与配置类相同的包public class CDPlayerConfig { }
basePackages:指定扫描的包(字符串数组)
basePackagesClasses:指定的包中所包含的类或接口


通过注解为bean实现自动装配

大家先看一个类
@Componentpublic class CDPlayer implements MediaPlayer {  private CompactDisc cd;    public CDPlayer(CompactDisc cd) {    this.cd = cd;  }  public void play() {    cd.play();  }}
这个类的构造器传入一个CompactDisc类的对象,那么我们怎么使用注解让一个Bean直接装配进去呢?
对这个类稍微修改一下,修改如下
@Componentpublic class CDPlayer implements MediaPlayer {  private CompactDisc cd;  @Autowired  public CDPlayer(CompactDisc cd) {    this.cd = cd;  }  public void play() {    cd.play();  }}
@Autowired:表示 Spring会在所有bean中寻找跟这个(方法参数)类型匹配的bean,然后将这个bean传入到构造器的参数中,如果找不到这个bean则抛出异常。
事实上,不仅仅是构造器,还可以包括Setter方法、其他任意方法


第一次写笔记,仅供参考。但愿没有写错!









0 0
原创粉丝点击