Spring配置的可选方案

本文介绍Spring框架中的自动装配机制,包括组件扫描与自动满足bean之间的依赖。通过示例讲解如何使用@Component注解定义组件类及如何通过@Autowired实现依赖注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。它提供了三种主要的装配机制。
  • 在XML中进行显示装配
  • 在Java中进行显示装配
  • 隐式的bean发现机制和自动装配

  1. 自动装配
  •  组件扫描(component scanning):Spring会自动发现应用上下文所创建的bean
  • 自动装配(autowiring):Spring自动满足bean之间的依赖
     实例:
组件类:
package cn.barathrum;
import org.springframework.stereotype.Component;

@Component//该注解表明该类会作为组件类,并告知Spring要为这个类创建bean
class SgtPeppers implements CompactDisc{
    private String title "Sqt. Pepper's Lonely Hearts Club Band";
    private String artist "The Beatles";
    public void play(){
        System.out.print("play "+title+" by "+artist);
    }
}

配置类:
package cn.barathrum;

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

@Configuration//定义Spring装配规则
@ComponentScan//这个注解能够在Spring中启动组件扫描
public class CDPlayerConfig {
}

通过为bean添加注解实现自动装配
package cn.barathrum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class CDPlayer implements MediaPlayer {
    private CompactDisc cd;
   
    @Autowired
    public CDPlayer(CompactDisc cd) {
        this.cd = cd;
    }
    public void play() {
        cd.play();
    }
}
这里,可以为组件扫描的bean命名,例如@Component("Alias")
设置组件扫描的基础包,如果我们没有为@ComponentScan设置任何属性,它会按照默认规则以装配类所在的包作为基础包来扫面组件,如果你想指定不同的基础包或者想扫描多个基础包,你可以在@ComponentScan的value属性指定包的名称。
如:@ComponentScan("pacjage")//指定单个基础包 ,这里也可以这样写 @ComponentScan(basePackages="package")
       @ComponentScan(basePackages={"package`","package2"})   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值