网站开发周期价格/查询网站信息

网站开发周期价格,查询网站信息,株洲头条新闻,郑州做网站公司有多少钱文章目录 在 Spring Boot 中使用 Autowired 和 Bean 注解示例背景 1. 定义 Student 类2. 配置类:初始化 Bean3. 测试类:使用 Autowired 注解自动注入 Bean4. Spring Boot 的自动装配5. 总结 在 Spring Boot 中使用 Autowired 和 Bean 注解 在 Spring Bo…

文章目录

      • 在 Spring Boot 中使用 `@Autowired` 和 `@Bean` 注解
        • 示例背景
      • 1. 定义 Student 类
      • 2. 配置类:初始化 Bean
      • 3. 测试类:使用 `@Autowired` 注解自动注入 Bean
      • 4. Spring Boot 的自动装配
      • 5. 总结


在 Spring Boot 中使用 @Autowired@Bean 注解

在 Spring Boot 中,依赖注入(Dependency Injection,简称 DI)是通过 @Autowired 注解来实现的,能够有效地简化对象之间的依赖关系。同时,使用 @Bean 注解可以帮助我们在配置类中显式地定义和初始化 Bean。本文将通过一个具体示例,演示如何在 Spring Boot 中使用 @Autowired@Bean 来管理 Bean。

示例背景

假设我们有一个 Student 类,并希望通过配置类 TestConfig 来初始化 Student 对象,之后在测试类中通过 @Autowired 注解将其自动注入并使用。

1. 定义 Student 类

首先,我们定义一个简单的 Student 类,使用 @Data 注解来生成常见的 Getter、Setter、toString 等方法。

import lombok.Data;@Data
public class Student {private String name;
}

在上面的 Student 类中,@Data 注解来自 Lombok,它会自动为我们生成类的所有 Getter、Setter 和 toString 等方法。这样,我们就不需要手动编写这些常见的代码,使得代码更加简洁。

2. 配置类:初始化 Bean

接下来,我们需要创建一个配置类 TestConfig,其中定义一个 @Bean 注解的方法来初始化 Student 对象。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class TestConfig {@Beanpublic Student studentInit() {Student student = new Student();student.setName("初始化");return student;}
}
  • @Configuration 注解表示该类是一个配置类,Spring 会扫描该类并根据其中的 Bean 定义来初始化 Bean。
  • @Bean 注解用于告诉 Spring 容器:studentInit() 方法返回的对象(在这里是 Student)应该作为一个 Bean 进行管理。这样,Student 对象就会成为 Spring 容器中的一个管理对象。

在这个配置类中,我们显式地初始化了一个 Student 对象,并设置了它的 name 属性为 "初始化"

3. 测试类:使用 @Autowired 注解自动注入 Bean

在测试类中,我们将通过 @Autowired 注解将 Student 对象自动注入,并输出 Student 的名字。

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
public class StudentTest {@Autowiredprivate Student student;@Testvoid contextLoads13() {System.out.println(student.getName()); // 输出:初始化}
}
  • @SpringBootTest 注解表示这是一个 Spring Boot 测试类,它会启动 Spring 容器来进行集成测试。
  • @Autowired 注解自动注入 Student Bean。Spring 会自动找到符合类型的 Student Bean 并注入到该字段中。
  • 在测试方法 contextLoads13() 中,调用 student.getName() 输出 Student 对象的 name 属性值,应该输出 "初始化",这与我们在 TestConfig 中定义的值一致。

4. Spring Boot 的自动装配

  • 在这个示例中,我们看到通过 @Autowired 注解,Spring 容器会根据 Student 类型自动为我们注入合适的 Bean。无需手动配置或创建实例。
  • 这种自动注入机制是 Spring Framework 中非常强大的特性,可以极大地简化类与类之间的依赖管理。

5. 总结

通过上述示例,我们学到了以下几点:

  • @Bean 注解:通过该注解,我们可以在配置类中显式地定义 Bean,使得对象被 Spring 容器管理。
  • @Autowired 注解:通过该注解,Spring 会自动根据类型将 Bean 注入到需要依赖的地方。
  • @Data 注解:简化了 Student 类的代码,不必手动编写 Getter、Setter 等方法。

在实际开发中,Spring 的依赖注入(DI)功能使得类之间的耦合度大大降低,提高了代码的可维护性和扩展性。通过灵活使用 @Autowired@Bean 注解,可以有效地管理和共享对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896275.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt-C++笔记之创建和初始化 `QGraphicsScene` 和 `QGraphicsView` 并关联视图和场景的方法

qt-C++笔记之创建和初始化 QGraphicsScene 和 QGraphicsView 并关联视图和场景的方法 code review! 参考笔记 1.qt-C++笔记之创建和初始化 QGraphicsScene 和 QGraphicsView 并关联视图和场景的方法 2.qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到vie…

Win32/ C++ 简易对话框封装框架(多语言, 通知栏菜单, 拖拽文件处理)

Win32 简易对话框封装简易框架示例 1. 菜单操作: 多语言 2. 通知栏图标菜单 3. 其他操作: 接受拖拽文件等等 CDialogFrame.h #pragma once #include "CWindow/CDialogBase.h" #include "CNSFHeader.h" #include "Win32Utils/CBytesUtils.h" …

如何在WordPress网站中查看移动版本—快速预览与自定义设置

在WordPress网站的构建过程中,确保网站在移动端的显示效果至关重要。毕竟,随着越来越多的用户通过手机访问互联网,一个优化良好的移动版网站将直接影响用户的留存率和访问体验。 如果你是WordPress网站的所有者,本文将向你介绍如…

课程1. 深度学习简介

课程1. 深度学习简介 神经网络结构逻辑回归XOR问题(异或问题) 中间特征的生成全连接神经网络中间网络层的激活函数Sigmoid函数Tanh函数ReLU函数其它激活函数 使用全连接神经网络解决 XOR 问题神经网络用于回归问题训练神经网络 不同类型的神经网络 附加材…

数据结构 1-2 线性表的链式存储-链表

1 原理 顺序表的缺点: 插入和删除移动大量元素数组的大小不好控制占用一大段连续的存储空间,造成很多碎片 链表规避了上述顺序表缺点 逻辑上相邻的两个元素在物理位置上不相邻 头结点 L:头指针 头指针:链表中第一个结点的存储…

Kubernetes开发环境minikube | 开发部署MySQL单节点应用

minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署MySQL单节点应用 minikube start --force kubectl get nodes 如上所示,启动minikube单节点运行环境 minikube ssh docker pull 如上所示,从MySQL官…

DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

一文详解U盘启动UEFI/Legacy方式以及GPT/MBR关系

对于装系统的老手而说一直想研究一下装系统的原理,以及面对一些问题时的解决思路,故对以前的方法进行原理上的解释,主要想理解其底层原理。 引导模式 MBR分区可以同时支持UEFI和Legacy引导,我们可以看一下微pe制作的启动盘&#…

一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格,用于比较Flask中的…

antv G6绘制流程图

效果图&#xff08;优点&#xff1a;可以自定义每一条折线的颜色&#xff0c;可以自定义节点的颜色&#xff0c;以及折线的计算样式等&#xff09;&#xff1a; 代码&#xff1a; <!-- 流程图组件 --> <template><div id"container"></div>…

DeepSeek-R1本地部署保姆级教程

一、DeepSeek-R1本地部署配置要求 &#xff08;一&#xff09;轻量级模型 ▌DeepSeek-R1-1.5B 内存容量&#xff1a;≥8GB 显卡需求&#xff1a;支持CPU推理&#xff08;无需独立GPU&#xff09; 适用场景&#xff1a;本地环境验证测试/Ollama集成调试 &#xff08;二&a…

2025-spring boot 之多数据源管理

1、是使用Spring提供的AbstractRoutingDataSource抽象类 注入多个数据源。 创建 DataSourceConfig 配置类 通过spring jdbc 提供的带路由的抽象数据源 AbstractRoutingDataSource import org.springframework.beans.factory.annotation.Autowired; import org.springframew…

项目实战--网页五子棋(匹配模块)(4)

上期我们完成了游戏大厅的前端部分内容&#xff0c;今天我们实现后端部分内容 1. 维护在线用户 在用户登录成功后&#xff0c;我们可以维护好用户的websocket会话&#xff0c;把用户表示为在线状态&#xff0c;方便获取到用户的websocket会话 package org.ting.j20250110_g…

第4章 4.4 EF Core数据库迁移 Add-Migration UpDate-Database

4.4.1 数据库迁移原理 总结一下就是&#xff1a; 1. 数据库迁移命令的执行&#xff0c;其实就是生成在数据库执行的脚本代码&#xff08;两个文件&#xff1a;数字_迁移名.cs 数字_迁移名.Designer.cs&#xff09;&#xff0c;用于对数据库进行定义和修饰。 2. 数据库迁移…

51单片机编程学习笔记——点亮LED

大纲 器件51单片机开发板总结 安装驱动点亮LED烧录 随着最近机器人爆火&#xff0c;之前写的ROS2系列博客《Robot Operating System》也获得了更多的关注。我决定在机器人领域里再走一步&#xff0c;于是想到可以学习单片机。研究了下学习路径&#xff0c;最后还是选择先从51单…

蓝桥杯单片机组第十二届省赛第二批次

前言 第十二届省赛涉及知识点&#xff1a;NE555频率数据读取&#xff0c;NE555频率转换周期&#xff0c;PCF8591同时测量光敏电阻和电位器的电压、按键长短按判断。 本试题涉及模块较少&#xff0c;题目不难&#xff0c;基本上准备充分的都能完整的实现每一个功能&#xff0c;并…

opencv:距离变换 cv2.distanceTransform

函数 cv2.distanceTransform() 用于计算图像中每一个非零点像素与其最近的零点像素之间的距离&#xff08;Distance Transform&#xff0c; DT算法&#xff09;,输出的是保存每一个非零点与最近零点的距离信息&#xff1b;图像上越亮的点&#xff0c;代表了离零点的距离越远。 …

基于Spring Boot的党员学习交流平台设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

自动驾驶两个传感器之间的坐标系转换

有两种方式可以实现两个坐标系的转换。 车身坐标系下一个点p_car&#xff0c;需要转换到相机坐标系下&#xff0c;旋转矩阵R_car2Cam&#xff0c;平移矩阵T_car2Cam。点p_car在相机坐标系下记p_cam. 方法1&#xff1a;先旋转再平移 p_cam T_car2Cam * p_car T_car2Cam 需要注…

数字IC后端培训教程| 芯片后端实战项目中base layer drc violation解析

今天分享一个咱们社区IC后端训练营学员遇到的一个经典DRC案例。这个DRC Violation的名字为PP.S.9(这里的PP就是Plus P)。这一层是属于管子的base layer。更多关于base layer的介绍&#xff0c;可以查看下面这份教程。 https://alidocs.dingtalk.com/api/doc/transit?spaceId5…