欢迎使用CSDN-markdown编辑器

自动化装配bean

Spring从两个角度来实现自动化装配

  • 组件扫描:Spring自动发现应用上下文所创建的bean
  • 自动装配:Spring自动满足bean之间的依赖

创建可被发现的bean

  • 如果希望在自动化装配中,bean可以被组件扫描到,对于每一个希望不被声明为bean的类,前面需要添加@Component注解
@Component
public class Compact {}

-如果希望生成的bean有独特的命名,可如下生成括号内的新名字

@Compenent("newName")
public class Compact {}

组件扫描

在Spring2.5中引入了组件自动扫描机制,通过在classpath自动扫描的方式把组件纳入到Spring容器中。这大大减少了程序员在配置XML文件上的时间,使得配置文件显得干净,整洁,便于维护。

  • 通过XML启动组件扫描
    在web.xml里面添加< context: component-scan base-package=”包名”>

  • 通过注解启动组件扫描
    在配置类声明前添加注解@ComponentScan会扫描当前配置类下的包,并把bean纳入Spring容器中。

@ComponentScan()
public class CompactConfig{}

自动装配

  • 如果希望将一个类的bean成功注入到另一个类中,可以通过注解@Autowired实现
@Component
public class Compact {
    private CompactInside ci;
    @Autowirred
    public Compact(CompactInside ci) {
        this.ci = ci;
    }
}
@Component
public class Compact {
    private CompactInside ci;
    @Autowirred
    public void setCompact(CompactInside ci) {
        this.ci = ci;
    }
}
  • 如果找不到匹配的bean,那么程序会抛出异常,如果希望程序不被这种情况影响,可以加入required属性。此时自动装配失败,bean处于未装配状态。
@Component
public class Compact {
    private CompactInside ci;
    @Autowired(required=false)
    public Compact(CompactInside ci) {
        this.ci = ci;
    }
}
  • Java依赖注入规范提供了@Inject注解可完成一样的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值