Spring中自动检测并申明bean

本文详细介绍了在Spring框架中通过自动检测和声明Bean的方法,包括使用<context:component-scan>替换<context:annotation-config/>进行包扫描,以及在类上添加@component等注解实现自动声明Bean。此外,还提供了批量检测和申明bean的方法,通过过滤器实现对实现了特定接口的类的自动扫描。

    在Spring中申明bean,一般情况是在XML中用<bean id=""  class="">标签来指定一个类并为其取一个id。但是这样效率很低,Spring提供了自动检测并申明bean的方法,讲解如下:

 

一、自动检测并申明bean的步骤:

    1、用<context:component-scan  base-package="com.springinaction.springidol"></context:component-scan>替换<context:annotation-config/>。前者包含了后者所有功能,而且还提供了bean的检测和自动申明功能。其中,base-package指定要检测的包。

    2、在要定义为bean的类定义前加上相应的标注:

@component
    public class Guitar{
       ......
    }

    在程序运行的时候,Spring就可以自动检测到该类并把其申明为bean。bean的默认命名为guitar,也就是将类名第一个字母小写,如果你的类名为GuitarInstrument,则bean名字为guitarInstrument,后面的字母大小写不变。

    当然,我们可以自定义bean的名称:

@component("guitar1")
    public class Guitar{}

     则bean的名字为guitar1。

     @component标注表示将该类申明为Spring组件,还有其他几种类型的标注:

      备案自动

 

二、批量检测和申明bean的方法

     一中的方法里描述的是,为每个需要被申明为bean的类添加注解,使Spring能够检测出该类。但是有时候,我们需要批量检测,比如有一个Instrument接口,我们要把所有实现了该接口的类申明为bean,我们可以使用过滤器:

      过滤器有两种:一种是包含过滤器<context:include-filter>,指定需要包含的类,另一种是剔除过滤器<context:exclude-filter>,指定不要包含的类。用法:

       ex

      expression参数指定要包含的类,type指定类型,比如包含expression中的类、注解等,

      all

转载于:https://www.cnblogs.com/hewenwu/p/3813094.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值