1.@Resource和@Autowired 的区别
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自 动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的 名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自 动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Resource装配顺序
1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
2.@autowired与@qualifer的使用区别备忘
使用@Autowired注释进行byType注入,如果需要byName(byName就是通过id去标识)注入,增加@Qualifier注释
@Qualifer如果没有的话, 报的错如下:
No unique bean of type [org.springframework.transaction.PlatformTransactionManager] is defined: expected single matching bean but found 2: [transactionManager, jmsTransactionManager]
原因:
比如配置文件中有二个bean.
<bean id="jmsTransactionManager"
class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory"
ref="advancedConnectionFactory" />breast
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="cpcDataSource" />
</property>
</bean>
表面看起来是不同类型的类,但是由于在*Service里面注入的属性类型是PlatformTransactionManager.由于上面的二个bean都实现了这个接jquery中ajax异步时序问题
口.这样@autowired时,由于是bytype注入,就不能识别.此时就需要再加上@qualifer通过id去识别.
而如果没有使用@Service的话,报错如下:
No unique bean of type ..... expected at least 1 matching bean
示例:
@Autowired
public void init(@Qualifier("ddlibserveDataSource")DataSource dataSource){
this.jdbcTemplate = new SimpleJdbcTemplate(dataSource);
}
相关推荐
以上内容,仅是对Spring注解相关知识点的一个大致梳理,深入理解Spring框架,还需要通过大量的实践和代码编写来不断巩固和提升。Spring框架的灵活多变和功能强大,使其成为了Java开发者必修的一门技能。随着Spring...
### Spring注解知识点详解 #### 1. Spring注解基础 在Spring框架中,注解是一种轻量级的依赖注入方式,能够简化配置并提高开发效率。在本节中,我们主要介绍几个Spring中常用的注解,它们分别是@Component、@...
1. **Spring注解配置**: - `@Configuration`:标记一个类为Spring配置类,可替代传统的XML配置。 - `@ComponentScan`:用于扫描指定包下的所有@Component及其子注解(如@Service、@Repository、@Controller)的类...
本文将深入探讨Spring注解注入的相关知识点,以及如何通过提供的压缩包文件进行实践学习。 **1. Spring注解概述** 在Spring框架中,注解提供了元数据的方式来配置bean,使得我们不再需要XML配置文件。常见的注解...
在这个"我的博客spring注解概述的示例代码"资源中,我们可能找到如何使用`@Autowired`来自动装配bean的实例。 首先,让我们了解什么是依赖注入。在面向对象编程中,一个类往往依赖于其他类来完成特定任务。依赖注入...
### Spring注解驱动开发知识点详解 #### 一、Spring注解驱动概述 Spring框架通过引入注解支持,极大地简化了Java EE应用的开发工作。它不仅提供了基础的依赖注入功能,还增强了对组件扫描的支持,使得开发者能够...
Spring注解的处理主要由两部分组成:元注解和注解处理器。元注解是用于创建其他注解的注解,如`@Target`、`@Retention`、`@Documented`和`@Inherited`,它们定义了注解的使用位置、生命周期、是否出现在Javadoc中...
Spring注解的主要作用是通过注解来标注Java类和类的属性,从而使Spring容器能够识别并进行相应的处理。这包括自动注入依赖、声明事务边界、配置特定的Bean等。使用注解,开发者可以减少大量XML配置文件的编写,使得...
在本主题中,我们将深入探讨"spring使用注解依赖jar"这一关键知识点,包括Spring框架如何通过注解来实现依赖注入,以及如何管理相关的jar包。 首先,Spring框架的核心特性之一就是依赖注入(Dependency Injection,...
综上所述,"spring简单注解+log4j记录日志"这个主题涵盖了Spring框架中的注解使用、Log4j日志系统以及AOP的应用。通过学习这些内容,初学者可以更好地理解和实践Spring框架,同时提高代码的可维护性和调试效率。在...
下面我们将深入探讨Spring注解AOP的相关知识点。 **一、AOP基本概念** 1. **切面(Aspect)**: AOP的核心概念,它将关注点(如日志、事务管理)封装为一个模块,可以看作是多个通知(advises)的集合。 2. **连接...
【标题】"用XFire开发WebService+Spring注解"涉及的主要知识点是利用XFire框架创建Web服务,并结合Spring框架的注解进行服务的管理和集成。XFire是一个强大的Java Web Service实现,它允许开发者轻松地创建和消费...
这篇文章将详细介绍这三个组件的结合使用以及相关的知识点。 **Spring MVC** Spring MVC 是 Spring 框架的一个模块,主要用于构建 Web 应用的模型-视图-控制器(MVC)架构。它简化了处理HTTP请求和响应,并提供了...
### 使用Spring 2.5基于注解驱动的SpringMVC:深入解析与实践 #### 核心知识点概览 在Spring 2.5版本中,框架显著增强了对注解的支持,特别是针对SpringMVC(Model-View-Controller)模块,引入了基于注解的配置...
【Spring注解1】知识点详解 1. **Spring注解介绍** Spring框架自3.0版本开始,引入了注解配置,逐渐成为主流的配置方式,减轻了XML配置的负担,使得代码更加简洁、易读。注解是元数据的一种形式,它允许在源代码...
2. **元注解**:Spring支持元注解,这意味着我们可以在自定义注解上使用其他注解。例如,`@Target`、`@Retention`、`@Documented`和`@Inherited`是Java提供的元注解,它们分别定义了注解的应用目标、保留策略、是否...
下面我们将深入探讨"非注解SpringMVC+Spring+Hibernate入门实例"中的关键知识点。 首先,让我们从SpringMVC开始。SpringMVC是一个Model-View-Controller架构模式的实现,用于构建Web应用程序。在非注解方式下,我们...
本文将深入探讨"类似Spring Controller注解Demo"这一主题,结合提供的标签"源码"和"工具",我们将分析Spring MVC中的Controller注解以及如何通过源码理解和应用它们。 Spring MVC是Spring框架的一部分,它提供了...
2. **注解教程**:Spring 3.0引入了大量的注解,如`@Controller`、`@RequestMapping`、`@Service`、`@Autowired`等,大大减少了XML配置文件的需求。`@Controller`用于标记控制层类,`@RequestMapping`用于映射HTTP...