Spring的自动装配及注解开发(“最易懂得Spring学习”)(二)

简介: 4. 小结5. 使用注解实现自动装配

4. 小结


  • byName的时候需要保证所有bean的id唯一,并且bean需要和自动注入属性的set方法的值一致


  • byType的时候需要保证所有bean的class唯一,并且bean需要和自动注入属性的类型一致


5. 使用注解实现自动装配


jdk1.5支持的注解,Spring2.5就支持注解


  • 要使用注解须知:


  • 导入约束。context约束


  • 配置注解的支持**context:annotation-config/**必须的


<?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>


  • @Autowired


微信图片_20211230152519.png


直接在属性上使用即可,也可以在set方法上使用。


用了之后可以忽略set方法,前提是这个自动装配的属性在IOC(Spring)容器中存在,且符合名字byName

<?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"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        https://www.springframework.org/schema/aop/spring-aop.xsd">
    <!--开启自动注解的支持-->
    <context:annotation-config/>
    <bean id="cat" class="com.hxl.pojo.Cat"/>
    <bean id="dog" class="com.hxl.pojo.Dog"/>
    <bean id="people" class="com.hxl.pojo.People"/>
</beans>
  • 科普:


@Nullable 字段标记了这个注解,说明这个地段


public class People{
    //如果显示定义了Autowired的required属性为false,说明这个对象可以为null,否则不允许为空
  @Autowired(required = false)
  private Cat cat;
  @Autowired
  private Dog dog;
  private String name;
}

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


微信图片_20211230152647.png

微信图片_20211230152652.png


  • @Resource注解
@Resource(name = "cat2")
private Cat cat;

此时会去找xml中的

<bean id="cat2" class="com.hxl.pojo.Cat"/>


  • 小结@Autowired和@Resource的区别


  • 都是用来自动装配的,都可以放在属性字段上


  • @Autowired优先通过byType的方式实现,类型重复的话会按照名字查找。而且必须要求这个对象存在【常用】一般@Autowired和@Qualifier一起用,


  • @Resource 默认通过byName的方式实现,如果找不到名字,则通过byType实现。如果两个都找不到的情况下就会报错。【常用】


  • 执行顺序不同:@Autowired通过byType的方式实现,@Resource默认通过byName的方式实现


相关文章
|
5月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
5月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
6412 87
|
5月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
7月前
|
前端开发 Java API
利用 Spring WebFlux 技术打造高效非阻塞 API 的完整开发方案与实践技巧
本文介绍了如何使用Spring WebFlux构建高效、可扩展的非阻塞API,涵盖响应式编程核心概念、技术方案设计及具体实现示例,适用于高并发场景下的API开发。
557 0
|
5月前
|
安全 Java 决策智能
Spring Boot自动装配
Spring Boot自动装配基于“约定优于配置”理念,通过条件化配置与Starters机制,智能推断并加载所需组件,大幅简化开发流程。它实现配置自动化,提升效率,降低维护成本,支持自定义扩展,推动微服务快速构建,是Java生态中开发范式的革新之作。(238字)
|
5月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
616 2
|
6月前
|
安全 数据可视化 Java
AiPy开发的 Spring 漏洞检测神器,未授权访问无所遁形
针对Spring站点未授权访问问题,现有工具难以检测如Swagger、Actuator等组件漏洞,且缺乏修复建议。全新AI工具基于Aipy开发,具备图形界面,支持一键扫描常见Spring组件,自动识别未授权访问风险,按漏洞类型标注并提供修复方案,扫描结果可视化展示,支持导出报告,大幅提升渗透测试与漏洞定位效率。
|
7月前
|
缓存 Java API
Spring WebFlux 2025 实操指南详解高性能非阻塞 API 开发全流程核心技巧
本指南基于Spring WebFlux 2025最新技术栈,详解如何构建高性能非阻塞API。涵盖环境搭建、响应式数据访问、注解与函数式两种API开发模式、响应式客户端使用、测试方法及性能优化技巧,助你掌握Spring WebFlux全流程开发核心实践。
1336 0
|
7月前
|
存储 NoSQL Java
探索Spring Boot的函数式Web应用开发
通过这种方式,开发者能以声明式和函数式的编程习惯,构建高效、易测试、并发友好的Web应用,同时也能以较小的学习曲线迅速上手,因为这些概念与Spring Framework其他部分保持一致性。在设计和编码过程中,保持代码的简洁性和高内聚性,有助于维持项目的可管理性,也便于其他开发者阅读和理解。
224 0
|
XML Java 数据格式
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)
这篇文章是Spring5框架的入门教程,详细讲解了IOC容器中Bean的自动装配机制,包括手动装配、`byName`和`byType`两种自动装配方式,并通过XML配置文件和Java代码示例展示了如何在Spring中实现自动装配。
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)

热门文章

最新文章