Spring中的装配

Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。

装配(wiring):创建应用对象之间协作的行为。是通过DI完成的。

开发人员需要告诉Spring要创建哪些bean、如何将其装配一起。

Spring中有三种主要的装配机制:

  • 在XML中进行显式装配
  • 在Java中进行显式装配
  • 隐式的bean发现机制和自动装配

三种装配方式可以搭配使用。优先使用自动装配、Java显式装配、XML显式装配。

自动化装配

组件扫描(component scanning)。自动寻找带@Component注解的类,并为其创建bean。
自动装配(autowiring)

Spring中的组件扫描默认不开启,需要通过Java配置类或XML配置文件配置开启。

Java配置类使用@ComponentScan启动组件扫描,默认扫描与配置类相同的包及子包,查找带@Component注解的类,并为其创建bean。

@Configuration
@ComponentScan
public class CDPlayerConfig {
}

XML配置开启组件扫描

<context:component-scan base-package="yourpackage"/>

Java代码配置

在将第三方库的组件装配到应用中时,需要使用显式装配,无法使用自动装配。

@Configuration
public class CDPlayerConfig {
    @Bean(name = "lonelyHeartsClubBand")
    public CompactDisk sgtPeppers() {
        return new SgtPeppers();
    }

    @Bean
    public CDPlayer cdPlayer() {
        return new CDPlayer(sgtPeppers());
    }

    public CDPlayer cdPlayer(CompactDisc compactDisc) {
        return new CDPlayer(compactDisc);
    }
}

@Configuration表名这个类是个配置类,其中包含有如何创建bean的细节。

@Bean注解表明该方法返回一个对象,该对象要注册为Spring上下文中的bean。bean的ID默认是方法名,sgtPeppers,也可以通过name属性来指定。

猜你喜欢

转载自www.cnblogs.com/minguo/p/10889967.html