iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring使用注解实现Bean的自动装配
  • 754
分享到

Spring使用注解实现Bean的自动装配

2024-04-02 19:04:59 754人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录一、利用注解方式注入属性二、@Autowired三、@Qualifier四、@Resource总结一、利用注解方式注入属性 <?xml version="1.0" enc

一、利用注解方式注入属性

在这里插入图片描述

<?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/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <context:annotation-config/>

</beans>

如果在已有的配置文件中附加

在spring配置文件中引入context文件头

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

开启属性注解支持!

<context:annotation-config/>

二、@Autowired

@Autowired是按类型自动装配的,不支持id匹配demo测试: 将User类中的set方法去掉,使用@Autowired注解

public class People {
@Autowired
private Cat cat;
@Autowired
private Dog dog;
private String name;

public Cat getCat() {
    return cat;
}

public void setCat(Cat cat) {
    this.cat = cat;
}

public Dog getDog() {
    return dog;
}

public void setDog(Dog dog) {
    this.dog = dog;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

此时配置文件内容

<context:annotation-config/>
<bean id="cat" class="com.lding.pojo.Cat"></bean>
<bean id="dog" class="com.lding.pojo.Dog"></bean>
<bean id="people" class="com.lding.pojo.People"></bean>

测试成功

@Autowired(required=false) false,对象可以为null;true,对象必须存对象,不能为null。

//如果允许对象为null,设置required = false,默认为true
@Autowired(required = false)
private Cat cat;

三、@Qualifier

@Autowired是根据类型自动装配的,加上@Qualifier则可以根据byName的方式自动装配

@Qualifier不能单独使用。

demo测试

配置文件修改内容,保证类型存在对象。且名字不为类的默认名字!

	<bean id="dog1" class="com.lding.pojo.Dog"/>
	<bean id="dog2" class="com.lding.pojo.Dog"/>
	<bean id="cat1" class="com.lding.pojo.Cat"/>
	<bean id="cat2" class="com.lding.pojo.Cat"/>

没有加Qualifier测试,直接报错在属性上添加Qualifier注解

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

测试 ,成功输出

四、@Resource

@Resource如有指定的name属性,先按该属性进行byName方式查找装配;

其次再进行默认的byName方式进行装配(默认的byName方式就是查找set后属性的小写名字);

如果以上都不成功,则按byType的方式自动装配

都不成功,则报异常。

demo测试
实体类

public class User {
//如果允许对象为null,设置required = false,默认为true
@Resource(name = "cat2")
private Cat cat;
@Resource
private Dog dog;
private String str;
}

beans.xml

<bean id="dog" class="com.lding.pojo.Dog"/>
<bean id="cat1" class="com.lding.pojo.Cat"/>
<bean id="cat2" class="com.lding.pojo.Cat"/>
<bean id="user" class="com.lding.pojo.User"/>

测试:结果ok
配置文件2:beans.xml , 删掉cat2

<bean id="dog" class="com.lding.pojo.Dog"/>
<bean id="cat1" class="com.lding.pojo.Cat"/>
@Resource
private Cat cat;
@Resource
private Dog dog;

结果:OK
结论:先进行byName查找,失败;再进行byType查找,成功。

总结

@Autowired与@Resource异同:

@Autowired与@Resource都可以用来装配bean。都可以写在字段上,或写在setter方法上。
@Autowired默认按类型装配(byType),如果我们想使用名称装配(byName)可以结合@Qualifier注解进行使用
@Resource(属于J2EE复返),默认按照名称进行装配,名称可以通过name属性进行指定。如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
它们的作用相同都是用注解方式注入对象,但执行顺序不同。@Autowired先byType,@Resource先byName。

到此这篇关于Spring使用注解实现Bean的自动装配的文章就介绍到这了,更多相关Spring Bean自动装配内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Spring使用注解实现Bean的自动装配

本文链接: https://www.lsjlt.com/news/139061.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring使用注解实现Bean的自动装配
    目录一、利用注解方式注入属性二、@Autowired三、@Qualifier四、@Resource总结一、利用注解方式注入属性 <xml version="1.0" enco...
    99+
    2022-11-13
  • Spring注解实现Bean自动装配示例详解
    何为自动装配 自动装配是 Spring 满足 bean 依赖的一种方式。 在使用 Spring 配置 bean 时,我们都要给配置的 bean 的属性设置一个值,如果不手动设置则都...
    99+
    2022-11-11
  • 使用Spring注解怎么实现Bean自动装配功能
    这篇文章将为大家详细讲解有关使用Spring注解怎么实现Bean自动装配功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用须知:导入约束:context约束配置注解的支持: contex...
    99+
    2023-06-14
  • 详解Spring Bean的集合注入和自动装配
    目录一、Spring Bean 集合注入集合常用标签案例二、Spring Bean自动装配什么是自动装配自动装配的方式案例注意点一、Spring Bean 集合注入 在【Spring...
    99+
    2022-11-13
  • Spring使用@Autowired注解实现自动装配方式
    目录Spring支持注解配置引入注解依赖启用注解使用@Autowired注解实现自动装配1、IOC容器配置2、实体类使用@Autowired注解注入属性3、测试结果@Autowire...
    99+
    2022-11-12
  • Spring Bean集合注入和自动装配的方法
    本篇内容介绍了“Spring Bean集合注入和自动装配的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Spring Be...
    99+
    2023-07-02
  • Spring装配Bean之如何实现组件扫描和自动装配
    这篇文章给大家分享的是有关Spring装配Bean之如何实现组件扫描和自动装配的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Spring从两个角度来实现自动化装配:组件扫描:Spring会自动发现应用上下文中所创...
    99+
    2023-05-31
    spring bean
  • spring中bean的继承与自动装配的用法
    本篇内容介绍了“spring中bean的继承与自动装配的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Spring之Bean的基本概念大...
    99+
    2023-05-30
    spring
  • spring IOC容器的Bean管理XML自动装配怎么实现
    这篇文章主要讲解了“spring IOC容器的Bean管理XML自动装配怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“spring IOC容器的Bean管理XML...
    99+
    2023-06-30
  • Spring中Bean的作用域和自动装配方式
    目录Bean的作用域默认配置scope = “singleton”scope = “prototype”Bean的自动装配通过name自动装配通过type自动装配Bean的作用域 S...
    99+
    2022-11-12
  • spring boot自动装配之@ComponentScan注解用法详解
    目录1.@ComponentScan注解作用2. @ComponentScan注解属性3. @ComponentScan过滤规则说明4. 自定义扫描过滤规则5. @Component...
    99+
    2023-05-18
    @componentscan注解 @componentscan注解用法 componentscan作用
  • @Autowired自动装配,@Bean注入@Primary,@Qualifier优先级讲解
    目录Autowired自动装配第一种情况第二种情况第三种情况第四种情况总结@Autowired 取值app.getBean()@Primary 优先Autowired自动装配 spr...
    99+
    2022-11-12
  • Spring的@Bean注解怎么使用
    今天小编给大家分享一下Spring的@Bean注解怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Spring @Be...
    99+
    2023-07-02
  • Spring@Bean注解的使用场景与案例实现
    目录一、简单介绍二、注解说明1. 注解源码2. 注解使用场景三、使用案例1. 案例描述2. 案例实现新建注入到IOC容器中的User类创建Spring的配置类BeanConfig创建...
    99+
    2023-03-10
    Spring @Bean使用案例 Spring @Bean注解
  • Spring如何实现自动装配
    这篇文章将为大家详细讲解有关Spring如何实现自动装配,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Spring之自动装配,所谓自动装配,从字面解读,我想应该不难理解吧(当然不是诱导读者去咬文嚼字)。那...
    99+
    2023-06-17
  • spring IOC容器的Bean管理XML自动装配过程
    目录什么是自动装配?自动装配过程1. 创建 2 个类2. 配置文件3. 测试方法什么是自动装配? 在之前的内容中,每给属性注入值都要一个个的用 property 标签来完成,比如: ...
    99+
    2022-11-13
  • Spring@Autowired注解与自动装配的示例分析
    这篇文章主要介绍了Spring@Autowired注解与自动装配的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1 配置文件的方法我们编写spring 框架的代码时候...
    99+
    2023-05-31
    spring @autowired
  • 怎么用Spring @Autowired实现自动装配
    本篇内容主要讲解“怎么用Spring @Autowired实现自动装配”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Spring @Autowired实现自动装配”吧!...
    99+
    2023-06-22
  • Java 如何使用@Autowired注解自动注入bean
    Java @Autowired注解自动注入bean annotationWire.xml (一定记得配置context:annotation-config/) <?...
    99+
    2022-11-12
  • Java注解机制之Spring自动装配实现原理的示例分析
    小编给大家分享一下Java注解机制之Spring自动装配实现原理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! Java中使用注解的情况主要在SpringMVC(Spring Boot等),注解实际上相...
    99+
    2023-05-31
    java spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作