zoukankan      html  css  js  c++  java
  • Spring中自动检测并申明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

  • 相关阅读:
    我从0开始开发了一个LDAP服务。
    C#开发中常用的小功能
    webapi swagger 报错 路由集合中已存在名为“swagger_docsswagger/docs/{apiVersion}”的路由。路由名称必须唯一
    h5 web vlc 播放rtsp流
    Docker的基础概念与在window10下的安装
    .Net Core JWT 动态设置接口与权限
    .Net Core官方的 JWT 授权验证
    IdentityServer4中文文档
    中介者模式及在NetCore中的使用MediatR来实现
    .Net Core 使用 FluentValidation
  • 原文地址:https://www.cnblogs.com/hewenwu/p/3813094.html
Copyright © 2011-2022 走看看