分享

Spring中bean的三种装配机制之

 quasiceo 2018-08-06

基本介绍

  关于各种配置,从来没搞懂过。但是觉得框架发展这么快,而且结构这么宏大,其实现微观上来讲应该从来没有一种标准方式、更没有说是固定的几种。比如Spring专有的@Component、@Autowired注解,大多数情况下都可以被javax.inject包下的@Named和@Inject代替。本博文汇总《Spring 实战 第四版》2.1和2.2内容。
  自动装配是使用spring满足bean依赖的一种方法,满足以来的过程中,spring会在应用上下文中为某个bean寻找其依赖的bean
  Spring中bean有三种装配机制,分别是:
1. 在xml中显示配置;
2. 在java中显示配置;
3. 隐式的bean发现机制和自动装配。
这里我们主要讲第三种:自动化的装配bean。

自动化的装配bean

  Spring的自动装配需要从来能个角度来实现,或者说是两个操作:
    1.组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean;
    2.自动装配(autowiring):spring自动满足bean之间的依赖,也就是我们上篇博文说的IoC/DI
  组件扫描和自动装配组合发挥巨大威力,使的显示的配置降低到最少

一.bean自动装配的基本方式及测试

  这里以“光碟机”和“cd播放器”为例来介绍自动装配的基本实现方式。假设我们有个光碟接口CompacDisc,其具体实现类为各个明星的专辑,实现如下:

package com.example.springboot.demo.soundsystem;

import org.springframework.stereotype.Component;

@Component//表明该类会作为组件类,告知spring为这个类创建bean
public class SgtPeppers implements CompactDisc {

    private String title="ye hui mei";
    private String artist="zhou jie lun";

    @Override
    public void play() {
        System.out.println("playing "+title+" by "+artist);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

  通过@Component告知Spring为SgtPeppers 创建bean是不够的,我们还需要让spring知道去哪里扫描可能带有@Component的类,盲目的全局扫描是不可行的。这里我们使用在配置类中使用@Component注解启用组件扫描,也就是@Configuration+@ComponentScan。简单的一逼,实例如下:

package com.example.springboot.demo.soundsystem;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多