`
gaojingsong
  • 浏览: 1182107 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Spring常见注解介绍】

阅读更多

一、为何要引入注解

传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:

1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。

2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率。

为了解决这两个问题,Spring引入了注解,通过"@XXX"的方式,让注解与Java Bean紧密结合,既大大减少了配置文件的体积,又增加了Java Bean的可读性与内聚性。

 

二、常见注解集合

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。

@Scope注解 作用域

@Lazy(true) 表示延迟初始化

@Service用于标注业务层组件、 

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件。

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Scope用于指定scope作用域的(用在类上)

@PostConstruct用于指定初始化方法(用在方法上)

@PreDestory用于指定销毁方法(用在方法上)

@DependsOn:定义Bean初始化及销毁时的顺序

@Primary:自动装配当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛异常

@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:

@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用

@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。

@PostConstruct 初始化注解

@PreDestroy 摧毁注解 默认 单例  启动就加载

@Async异步方法调用

 

 

三、常见注解作用

1、@Autowired

@Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。

 

2、Qualifier(指定注入Bean的名称)

如果容器中有一个以上匹配的Bean,则可以通过@Qualifier注解限定Bean的名称

 

 

3、@Resource的装配顺序:

(1)、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配

(2)、指定了name或者type则根据指定的类型去匹配bean

(3)、指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错

 

然后,区分一下@Autowired和@Resource两个注解的区别:

(1)、@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配

(2)、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了

Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。

 

4、@Component

相当于通用的注解,当不知道一些类归到哪个层时使用,但是不建议。

1
0
分享到:
评论

相关推荐

    对Spring中注解怎么实现的一些基本原理

    在Spring中,常见的注解如`@Autowired`、`@Component`、`@Service`、`@Repository`和`@Controller`等,用于标记类、方法或字段,以便Spring容器进行自动配置和管理。 **注解的处理过程:** 1. **扫描和发现**:...

    Spring java注解,元注解和自定义注解

    Spring中常见的元注解包括: 1. **@Target** - 用于指定注解能够应用的位置(如类、方法、字段等)。 2. **@Retention** - 指定注解的生命周期,可以选择在编译期、运行期或者类文件中保留。 3. **@Documented*...

    spring aop注解版

    在本主题中,我们将深入探讨Spring AOP的注解版,它是基于Java注解的实现,简化了配置并提高了代码的可读性。 首先,让我们理解AOP的基本概念。AOP是一种编程范式,允许程序员定义“切面”,这些切面封装了跨越多个...

    Spring全注解project示例 (无web.xml配置)

    标题 "Spring全注解project示例 (无web.xml配置)" 提供了我们即将探讨的核心主题:一个使用Spring框架,完全依赖注解配置的项目,且没有传统的web.xml部署描述符。这种配置方式在现代Spring应用中非常常见,因为它...

    Spring常用注解

    在Spring框架中,注解是实现依赖注入、简化配置、增强代码可读性的重要工具。在SpringPrj项目中,我们可以看到与Spring注解相关的应用。以下是对Spring常用注解的详细说明: 1. `@Component`:这是Spring的基础组件...

    Spring2.5 注解介绍(3.0通用)

    本文将详细介绍Spring中的一些核心注解及其用法。 首先,要使注解生效,我们需要在Spring配置中注册注解处理器。有三种方式来实现: 1. **显式注册**: 在XML配置中添加`<bean>`标签,如`<bean class="org.spring...

    spring使用注解依赖jar

    在本主题中,我们将深入探讨"spring使用注解依赖jar"这一关键知识点,包括Spring框架如何通过注解来实现依赖注入,以及如何管理相关的jar包。 首先,Spring框架的核心特性之一就是依赖注入(Dependency Injection,...

    spring 常用注解

    自己整理的一些常见的spring注解,文件是xmind的,平时用于梳理记忆

    Spring MVC 的注解使用实例

    本实例将深入探讨Spring MVC中常见的注解及其应用。 1. `@Controller` 注解:这个注解用于标记一个类作为Spring MVC的控制器。当Spring容器启动时,会扫描带有@Controller的类,并将这些类实例化,用于处理HTTP请求...

    spring的注解

    以上就是Spring中常见注解的介绍。这些注解的使用极大地简化了Java开发过程中的配置工作,使得代码更加简洁、易于维护。开发者可以根据实际需求选择合适的注解来满足项目的要求。此外,对于Spring框架的深入理解和...

    Spring MVC注解项目实例

    在Spring MVC中,常见的注解有`@Controller`、`@RequestMapping`、`@GetMapping`、`@PostMapping`等,它们分别用于定义控制器类和处理HTTP请求的方法。例如,`@Controller`标识一个类作为Spring MVC的控制器,而`@...

    Spring 注解 方式配制的小demo

    尽管我们无法直接访问这个链接,但我们可以基于常见的Spring注解配置实践来解释相关概念。 1. `@Component`:这是Spring中的基础注解,用于标记一个类为Spring管理的bean。它的子注解包括`@Service`、`@Repository`...

    spring注解实例

    常见的注解包括@Component、@Service、@Repository和@Controller,它们用于声明组件,分别对应通用、服务、数据访问和Web层。此外,@Autowired注解用于自动装配bean,@Qualifier注解用于指定特定的bean。 **2. @...

    SpringJDBC注解事务.zip

    Spring JDBC提供了一个JdbcTemplate类,它封装了常见的JDBC操作,如执行SQL查询、更新、调用存储过程等,减少了代码量和出错的可能性。此外,它还处理了诸如打开和关闭连接、结果集遍历等繁琐任务。 2. **注解驱动...

    spring注解事务实现demo

    `@Transactional`是Spring提供的核心注解,用于标记在方法级别上需要进行事务处理的代码。当这个注解应用到一个方法上时,Spring会自动为该方法创建并管理事务。注解中可以包含多个属性,如`value`(指定事务管理器...

    Struts2+spring注解配置

    Struts2 和 Spring 的整合是企业级 Java Web 开发中常见的技术栈,通过注解配置可以使项目更加简洁、易于维护。Struts2 提供了一种使用注解替代 XML 配置的方式,使得开发者无需编写繁琐的 struts.xml 文件,即可...

    ssh框架构建 hibernate注解 spring注解

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架。本教程将深入探讨如何使用注解来构建SSH框架,以实现更简洁、高效的应用程序开发。 **Struts2** 是MVC设计模式的一个实现...

    spring mvc注解方式

    在Spring MVC框架中,注解方式的使用极大地简化了Web应用程序的开发,使得开发者无需编写大量的XML配置文件,即可实现控制器、模型、视图以及数据访问的绑定。结合MyBatis,一个轻量级的持久层框架,可以构建高效、...

    第一节课-Spring源码分析之-常见底层核心注解-2 (2)1

    本文将深入探讨Spring框架中的核心注解和核心模块,以便更好地理解和利用这一框架。 首先,Spring框架的核心部分由Core和Beans模块组成,它们是整个框架的基础。Core模块包含Spring框架的基本核心工具类,是其他...

    mybatis和spring整合方式-带注解

    本文主要介绍一种常见的整合方式——使用`MapperFactoryBean`并结合注解的方式。 #### 二、目录结构与组件说明 ##### 1. 目录结构说明 本示例以一个简单的图书管理系统为例,展示如何通过`MapperFactoryBean`来...

Global site tag (gtag.js) - Google Analytics