一、为何要引入注解
传统的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
相当于通用的注解,当不知道一些类归到哪个层时使用,但是不建议。
相关推荐
在Spring中,常见的注解如`@Autowired`、`@Component`、`@Service`、`@Repository`和`@Controller`等,用于标记类、方法或字段,以便Spring容器进行自动配置和管理。 **注解的处理过程:** 1. **扫描和发现**:...
Spring中常见的元注解包括: 1. **@Target** - 用于指定注解能够应用的位置(如类、方法、字段等)。 2. **@Retention** - 指定注解的生命周期,可以选择在编译期、运行期或者类文件中保留。 3. **@Documented*...
在本主题中,我们将深入探讨Spring AOP的注解版,它是基于Java注解的实现,简化了配置并提高了代码的可读性。 首先,让我们理解AOP的基本概念。AOP是一种编程范式,允许程序员定义“切面”,这些切面封装了跨越多个...
标题 "Spring全注解project示例 (无web.xml配置)" 提供了我们即将探讨的核心主题:一个使用Spring框架,完全依赖注解配置的项目,且没有传统的web.xml部署描述符。这种配置方式在现代Spring应用中非常常见,因为它...
在Spring框架中,注解是实现依赖注入、简化配置、增强代码可读性的重要工具。在SpringPrj项目中,我们可以看到与Spring注解相关的应用。以下是对Spring常用注解的详细说明: 1. `@Component`:这是Spring的基础组件...
本文将详细介绍Spring中的一些核心注解及其用法。 首先,要使注解生效,我们需要在Spring配置中注册注解处理器。有三种方式来实现: 1. **显式注册**: 在XML配置中添加`<bean>`标签,如`<bean class="org.spring...
在本主题中,我们将深入探讨"spring使用注解依赖jar"这一关键知识点,包括Spring框架如何通过注解来实现依赖注入,以及如何管理相关的jar包。 首先,Spring框架的核心特性之一就是依赖注入(Dependency Injection,...
自己整理的一些常见的spring注解,文件是xmind的,平时用于梳理记忆
本实例将深入探讨Spring MVC中常见的注解及其应用。 1. `@Controller` 注解:这个注解用于标记一个类作为Spring MVC的控制器。当Spring容器启动时,会扫描带有@Controller的类,并将这些类实例化,用于处理HTTP请求...
以上就是Spring中常见注解的介绍。这些注解的使用极大地简化了Java开发过程中的配置工作,使得代码更加简洁、易于维护。开发者可以根据实际需求选择合适的注解来满足项目的要求。此外,对于Spring框架的深入理解和...
在Spring MVC中,常见的注解有`@Controller`、`@RequestMapping`、`@GetMapping`、`@PostMapping`等,它们分别用于定义控制器类和处理HTTP请求的方法。例如,`@Controller`标识一个类作为Spring MVC的控制器,而`@...
尽管我们无法直接访问这个链接,但我们可以基于常见的Spring注解配置实践来解释相关概念。 1. `@Component`:这是Spring中的基础注解,用于标记一个类为Spring管理的bean。它的子注解包括`@Service`、`@Repository`...
常见的注解包括@Component、@Service、@Repository和@Controller,它们用于声明组件,分别对应通用、服务、数据访问和Web层。此外,@Autowired注解用于自动装配bean,@Qualifier注解用于指定特定的bean。 **2. @...
Spring JDBC提供了一个JdbcTemplate类,它封装了常见的JDBC操作,如执行SQL查询、更新、调用存储过程等,减少了代码量和出错的可能性。此外,它还处理了诸如打开和关闭连接、结果集遍历等繁琐任务。 2. **注解驱动...
`@Transactional`是Spring提供的核心注解,用于标记在方法级别上需要进行事务处理的代码。当这个注解应用到一个方法上时,Spring会自动为该方法创建并管理事务。注解中可以包含多个属性,如`value`(指定事务管理器...
Struts2 和 Spring 的整合是企业级 Java Web 开发中常见的技术栈,通过注解配置可以使项目更加简洁、易于维护。Struts2 提供了一种使用注解替代 XML 配置的方式,使得开发者无需编写繁琐的 struts.xml 文件,即可...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架。本教程将深入探讨如何使用注解来构建SSH框架,以实现更简洁、高效的应用程序开发。 **Struts2** 是MVC设计模式的一个实现...
在Spring MVC框架中,注解方式的使用极大地简化了Web应用程序的开发,使得开发者无需编写大量的XML配置文件,即可实现控制器、模型、视图以及数据访问的绑定。结合MyBatis,一个轻量级的持久层框架,可以构建高效、...
本文将深入探讨Spring框架中的核心注解和核心模块,以便更好地理解和利用这一框架。 首先,Spring框架的核心部分由Core和Beans模块组成,它们是整个框架的基础。Core模块包含Spring框架的基本核心工具类,是其他...
本文主要介绍一种常见的整合方式——使用`MapperFactoryBean`并结合注解的方式。 #### 二、目录结构与组件说明 ##### 1. 目录结构说明 本示例以一个简单的图书管理系统为例,展示如何通过`MapperFactoryBean`来...