zoukankan      html  css  js  c++  java
  • spring之注解(一)概述

    Spring的核心是依赖注入(DI),而依赖注入的基础是依赖信息的配置。这些配置称之为元数据。

    在之前的的学习中。一直採用的是基于xml的配置,这些元数据配置在spring内部被注冊成为BeanDefinition,spring以此为模版创建bean和注入依赖。

    从spring 2.0開始,spring依次增加了对注解型元数据配置的支持。自此我们有了第二种配置bean的方式。Spring包括非常多种注解,如我们比較熟悉的@AutoWired、@Compoent,另一些不太熟悉的如@Inject @Improt等。

    分类

    Spring包括了如此多的注解。致使刚開始学习的人对之望而生畏。对当中一些也比較模糊。因此能够对Spring的注解进行分类。

    Spring的xml元数据配置的核心是bean定义、属性及其依赖的配置,因此也能够从这个角度对spring注解进行分为下面。首先见下图:


    本篇先对这些注解做一下简单的梳理,然后在兴许的文章中,针对后三种做较为具体的说明。

    类别概述

    以下略微具体的进行说明下各个类别,并列举出大部分Spring支持的注解。

    容器级别

    容器级别指的是注解用来配置Spring容器的,相应于SpringXML配置文件,如

    @Configuration作用在class上,其内能够定义非常多Bean

    @Import引入其它Configuration

    @ComponentScan  自己主动扫描Bean组件配置,和Configuration配合使用

    Bean级别

    Bean级别指的是被注解标记的对象(类或者方法),会向Spring容器注冊一个BeanDefinition,Spring以此创建Bean实例。

    @component   它和其它被其注解的注解 如@Service等作用于一个class上。 能够定义一个bean

    @Named 和以上类似,来自JSR-330

    @Bean  和@Configuration 或者@component 配合使用

    Bean属性级别

    此类别指的是作用于bean的属性。如是否延迟载入,Scope等。

    @Qualifier  常和@autowired

    @Lazy 延迟载入

    @Scope 定义bean的Scope

    @Required 能够标注在Set方法上,说明此方法须要被运行,否则跑出异常,长和@autowired 配合使用

    @PostConstruct and@PreDestroy 来自于JSR,作用于生命周期

    依赖级别

    Spring能够使用这些注解进行依赖注入,一般是自己主动的,或者借助一些辅助信息。

    @autowired自己主动依赖注入,有几种方式,byType,byName等,通常和@ Qualifier配合使用

    @Inject  来自JSR-330,和以上类似。JSR-330相关注解

    @Resource和以上类似,JSR-250相关注解

    @Value  原始类型注入

    总结

    以上简单的说明了下Spring支持的注解和其主要的作用,但到眼下为止都是纸上谈兵。可是对Spring注解建立整体的印象还是比較重要的。须要注意的是,Spring注解和 XML配置是相辅相成的,各自有优缺点,在实际应用中要依据实际情况来决定。下篇将具体的讲述本篇讲述的内容。

  • 相关阅读:
    [LeetCode] Sort Colors
    [LeetCode] Trapping Rain Water
    [LeetCode] Sudoku Solver
    [LeetCode] Valid Sudoku
    [LeetCode] Candy
    [LeetCode] Permutation Sequence
    [名词解释]Constant Amortized Time
    回溯法 子集树和排序树
    HDU 4859 海岸线 最小割
    敏捷开发一千零一问:怎样处理重要但不明白的任务?
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6891250.html
Copyright © 2011-2022 走看看