zoukankan      html  css  js  c++  java
  • spring 注解方式配置Bean

    Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件特定组件包括:

    @Component:基本注解,标示了一个受Spring管理的Bean组件 

    @Respository:标识数据访问层(DAO层)组件 

    @Service:标识服务层(业务层)组件

    @Controller:标识控制层(表现层),该类是能处理HTTP请求的控制器。

    对于扫描到的组件, Spring有默认的命名策略使用非限定类名,第一个字母小写( UserServiceImpl—>userServiceImpl ), 也可以再注解中通过value属性值标识组件的名称(通常可以将UserServiceImpl —>userService,可以将Impl拿掉,这是一个习惯)(如果类名钱两个字母都是大写字母,则将命名为类名:TUserDao—>TUserDao)

    当在组件类中使用了特定的注解之后,还需要在Spring的配置文件中声明<context:component-scan>

    • base-package属性指定一个需要扫描的基类包,Spring容器将会扫描整个基类包里及其子包中的所有类
    • 当需要扫描多个包时,可以使用逗号分隔
    • 如果仅希望扫描特定的类而非基包下的所有类,可使用resource-pattern属性过滤特定的类
    <context:component-scan base-package="com.baobaotao.dao" resource-pattern="*DAO.class">
    • <context:include-filter>子节点表示要包含的目标类

    • <context:exclude-filter>子节点表示要排除在外的目标类

    <context:component-scan>下可以有多个<context:include-filter>和<context:exclude-filter>子节点

    <context:component-sacn>元素还会自动注册AutowireAnnotationBeanPostProcessor实例,该实例可以自动装配具有 @Autowired(和@Qualifier配合使用将按类型bean注入转换成按bean名称注入) 和@Resource(要求提供一个Bean名称的属性,若该属性为空,则自动采用标注处的变量或方法名作为Bean的名称)、@Inject(@Inject和@Autowired注解一样也是按照类型匹配注入的Bean,但没有required属性)注解的属性

  • 相关阅读:
    Python封装发送信息到钉钉群
    centos 7.6 安装php70
    小米5s plus刷机
    centos 7 安装webmin
    交易开拓者旗舰版(TB旗舰版)软件升级中如何迁移用户数据
    centos 7.6 修改vim配色方案
    centos 7.0 读写ntfs分区
    centos iptables 数据转发
    centos 7.6 配置VNC
    win下maridb 10.1.8下主从复制配置
  • 原文地址:https://www.cnblogs.com/SaraMoring/p/5679493.html
Copyright © 2011-2022 走看看