基于@Autowierd(自动装配)的使用说明

目录
  • @Autowierd(自动装配)的使用
    • 一、介绍@Autowierd自动装配之前我们需要先了解何为装配?
    • 二、@Autowierd自动装配的使用
    • 三、使用注解@Autowierd的"搭档"@Qualifier
    • 四、注意事项
  • SpringBoot的Autowierd失败
    • 通常是以下几种可能:

@Autowierd(自动装配)的使用

@Autowired 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。

一、介绍@Autowierd自动装配之前我们需要先了解何为装配?

首先我们来看最原生态的装配,以一个人分别养了猫和狗为例,我们先分别为猫和狗进行实例化:

    <bean id="cat" class="com.spring05.pojo.Cat"/>
    <bean id="dog" class="com.spring05.pojo.Dog"/>

由于person类的属性中带有猫和狗,所以我们需要将猫和狗的实体类注入人的实体类中:

    <bean id = "Person" class="com.spring05.pojo.Person">
        <property name="dog" ref="dog"/>
        <property name="cat" ref="cat"/>
    </bean>

以上就是装配,所谓的属性注入

但是我们知道,如果是手动注入的属性的话,一旦属性数量多的话会显得很繁琐,这时候自动装配的作用就体现出来了

二、@Autowierd自动装配的使用

第一步,使用@Autowierd注释需要在配置文件中开启注解支持

        <!--开启注解的支持-->
        <context:annotation-config/>

但是相应的需要在配置文件中加入context约束:

xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd

接下来就是注解的使用了,@Autowierd注释的使用只需要在Person类中的属性上加上一个@Autowierd注释即可实现自动装配

    @Autowired
    private Cat cat;
    @Autowired
    private Dog dog;

自动装配完了之后在spring容器中注册person类时就不需要在对person类的bean添加属性注入,这边放入整个配置文件以供参考

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

        <!--开启注解的支持-->
        <context:annotation-config/>
    <bean id="cat" class="com.spring05.pojo.Cat"/>
    <bean id="dog" class="com.spring05.pojo.Dog"/>
    <bean id="Person" class="com.spring05.pojo.Person"/>
</beans>

除了@Autowierd之外还需要介绍@Resource注释,@Resource注释与@Autowierd功能相同,@Resource甚至包括了@Autowierd

三、使用注解@Autowierd的"搭档"@Qualifier

如果@Autowired自动装配的环境比较复杂,自动装配无法通过一个注解@Autowired来完成时,我们可以使用@Qualifier(value= “xxx”)去配合@Autowired的使用,指定一个唯一的bean对象注入:

    @Autowired
    @Qualifier(value = "cat")
    private Cat cat;
    @Autowired
    @Qualifier(value = "dog")
    private Dog dog;

四、注意事项

1、使用Autowired我们可以省略set方法,但是使用注解的前提是装配的属性必须在IOC容器中存在,且符合名字byname

2、如果定义了@Autowired的required属性为false,说明这个对象可以为空,否则不允许为空:

@Autowired(required = false)

3、不仅仅只有通过注释可以自动装配,还可以通过ByName和ByType来自动装配:

    <bean id="Person" class="com.spring05.pojo.Person" autowire="byType"/>
    <bean id="Person" class="com.spring05.pojo.Person" autowire="byName"/>

SpringBoot的Autowierd失败

通常是以下几种可能:

1.没有加@Service注解,或者是这个bean没有放在标注了@Configuration这个注解的类下。

2.SpringBoot启动类没有开启扫描

@ComponentScan(value = {"com.bihang"})

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Spring注解实现自动装配过程解析

    在IOC容器中学习相关注解(常用) 1. @Autowireda.作用对象:(官网解释) 1. You can apply the @Autowired annotation to constructors: 2.you can also apply the @Autowired annotation to "traditional" setter methods: 3.You can also apply the annotation to methods with arbitrar

  • 基于Spring@Autowired注解与自动装配详谈

    1 配置文件的方法 我们编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法. Boss 拥有 Office 和 Car 类型的两个属性: 清单 3. Boss.java package com.baobaotao; public class Boss { private Car car; private Office office; // 省略 get/setter @Override p

  • Spring注解实现Bean自动装配示例详解

    何为自动装配 自动装配是 Spring 满足 bean 依赖的一种方式. 在使用 Spring 配置 bean 时,我们都要给配置的 bean 的属性设置一个值,如果不手动设置则都是空.而自动的好处就在于,我们不用手动去设置一个值,spring 会在上下文中自动寻找并装配合适的值. 本文主要介绍了Spring注解Bean自动装配的相关内容,下面话不多少了,来一起看看详细的介绍吧 使用须知: 1.导入约束:context约束 2.配置注解的支持: context:annotation-config

  • 关于@Autowierd && @Resource 你真的了解吗

    目录 关于@Autowierd && @Resource 你真的了解吗 1.@Autowierd 2.@Resource 2.1@Resource具体装配顺序,即指定的注入实例的策略 3.注意 3.1 @Autowierd解决 3.2 @Resource解决 4.高级用法 @Autowire和@Resource注解对比 一.@Resource是J2EE提供的,@Autowire是Spring提供的 二.两个注解使用name区别注入的写法不同 三.然后就没有什么不同了 关于@Autowier

  • 彻底搞明白Spring中的自动装配和Autowired注解的使用

    一.自动装配 当Spring装配Bean属性时,有时候非常明确,就是需要将某个Bean的引用装配给指定属性.比如,如果我们的应用上下文中只有一个org.mybatis.spring.SqlSessionFactoryBean类型的Bean,那么任意一个依赖SqlSessionFactoryBean的其他Bean就是需要这个Bean.毕竟这里只有一个SqlSessionFactoryBean的Bean. 为了应对这种明确的装配场景,Spring提供了自动装配(autowiring).与其显式的装配

  • 基于@Autowierd(自动装配)的使用说明

    目录 @Autowierd(自动装配)的使用 一.介绍@Autowierd自动装配之前我们需要先了解何为装配? 二.@Autowierd自动装配的使用 三.使用注解@Autowierd的"搭档"@Qualifier 四.注意事项 SpringBoot的Autowierd失败 通常是以下几种可能: @Autowierd(自动装配)的使用 @Autowired 是一个注释,它可以对类成员变量.方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作. 一.介绍@Autowi

  • 基于Java反射的map自动装配JavaBean工具类设计示例代码

    前言 JavaBean是一个特殊的java类,本文将给大家详细介绍关于基于Java反射的map自动装配JavaBean工具类设计的相关内容,下面话不多说了,来一起看看详细的介绍吧 方法如下 我们平时在用Myabtis时不是常常需要用map来传递参数,大体是如下的步骤: public List<Role> findRoles(Map<String,Object> param); <select id="dindRoles" parameterType=&qu

  • 基于SpringBoot实现自动装配返回属性的设计思路

    目录 一:需求背景 二:设计思路 三:使用方法 四:注解解析器(核心代码) 五:需要思考的技术点 一:需求背景 在业务开发中经常会有这个一个场景,A(业务表)表中会记录数据的创建人,通常我们会用userId字段记录该数据的创建者,但数据的使用方会要求展示该数据的创建者姓名,故我们会关联用户表拿该用户的姓名.还有一些枚举值的含义也要展示给前端.导致原本一个单表的sql就要写成多表的关联sql,以及枚举含义的转换很是恶心. 例如:业务对象BusinessEntity.java public clas

  • 基于XML配置Spring的自动装配过程解析

    一.了解Spring自动装配的方式 采用传统的XML方式配置Bean组件的关键代码如下所示 <bean id="userMapper" class="edu.cn.dao.UserMapperImpl"> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> <bean id="userSer

  • spring入门教程之bean的继承与自动装配详解

    Spring之Bean的基本概念 大家都知道Spring就是一个大型的工厂,而Spring容器中的Bean就是该工厂的产品.对于Spring容器能够生产那些产品,则取决于配置文件中配置. 对于我们而言,我们使用Spring框架所做的就是两件事:开发Bean.配置Bean.对于Spring矿建来说,它要做的就是根据配置文件来创建Bean实例,并调用Bean实例的方法完成"依赖注入". Bean的定义 <beans-/>元素是Spring配置文件的根元素,<bean-/&

  • Spring自动装配与扫描注解代码详解

    1 javabean的自动装配 自动注入,减少xml文件的配置信息. <?xml version="1.0" encoding="UTF-8"?> <!-- 到入xml文件的约束 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p&quo

  • Spring中自动装配的4种方式

    Spring容器可以在不使用<constructor-arg>和<property>元素的情况下自动装配相互协作的bean之间的关系,助于减少编写一个大的基于Spring的应用程序的XML配置的数量使用<bean>元素的autowire属性为一个bean定义指定自动装配模式. 在Spring中,我们有4种方式可以装配Bean的属性. 1,byName 通过byName方式自动装配属性时,是在定义Bean的时候,在property标签中设置autowire属性为byNam

  • 详解Spring Boot自动装配的方法步骤

    在<Spring Boot Hello World>中介绍了一个简单的spring boot例子,体验了spring boot中的诸多特性,其中的自动配置特性极大的简化了程序开发中的工作(不用写一行XML).本文我们就来看一下spring boot是如何做到自动配置的. 首先阐明,spring boot的自动配置是基于spring framework提供的特性实现的,所以在本文中,我们先介绍spring framework的相关特性,在了解了这些基础知识后,我们再来看spring boot的自

  • python工具快速为音视频自动生成字幕(使用说明)

    为音视频自动生成字幕的 python 工具 autosub 是一个能自动为音视频生成字幕的 python 包,以下为其简介和使用说明. autosub autosub原本使用 python 2.X 开发,仅支持 linux 和 macos 系统,现已停止维护 其原理是对音视频文件进行语音活动检测以查找说话的区域,然后并行调用 Google Web Speech API 进行转录,(可选)翻译成目标语言,并将结果存储下来. autosub3 基于 autosub,升级到 python 3.X 版本

随机推荐