自动检测注入Bean

本文介绍Spring框架中如何通过<context:component-scan>进行自动扫描和组件注册,减少XML配置,提高开发效率。并通过示例展示如何使用@Component注解标记可被Spring扫描并注册为Bean的类。

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

虽然前面启用注解的时候,SPring配置文件中没有了Property属性标签,但是还是存在Bean标签,为了能够省掉Bean标签,可以使用<context:component-scan>(能完成的工作与前面的<context:annotation-config></context:annotation-config>一样的工作),还可以允许Spring自动检测Bean和定义Bean,这样能够省掉Bean标签
使用<context:component-scan base-package="implement"></context:component-scan>会自动扫描implement之下的所有包及其子包,并查找出能自动注册为Bean的类。但是SPring又是如何直到该扫描哪些Bean呢?我们的做法是在Bean类中加入Component注解,表明这个类被Spring扫描并且注册成为Bean类,此时默认的Id为首字母小写与类名一致。如果想要显示指定一个Bean的Id可以在Componet中加入属性值。demo如下:
如上图所示person为一接口,BlackMan,WhiteMan与YellowMan分别是它的实现类,Server是为test中的类服务的。BlackMan代码如下:
package implement;
import org.springframework.stereotype.Component;

import Interface.*;
@Component("blackMan")//显示定义Bean的Id
public class BlackMan implements person {
public String name="Anny livs african";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Server代码如下:
package implement;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.stereotype.Component;
import Interface.person;
@Component
public class Server {
@Inject
@Named("blackMan")//使用BlackMan的Bean注入
public person p;
public person getP() {
return p;
}
public void setP(person p) {
this.p = p;
}

}


代码如下:

http://download.youkuaiyun.com/detail/muyundefeng/9478377

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值