当前位置: 首页 > news >正文

SpringBoot项目创建,三层架构,分成结构,IOC,DI相关,@Resource与@Autowired的区别

Spring官网:Spring | Home

项目创建问题

如果Spring官方脚手架创建失败可以使用阿里云URL地址创建。点击Sever URL后面的齿轮,输入https://start.aliyun.com

三层架构:

分层结构:

@Autowired //表示自动注入依赖
private UserDao userDao;

IOC

要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:

注意:申明bean时,可以通过注解的value属性指定bean的名字,如果没有指定,默认为类名首字母小写。

DI

基于@Autowired进行依赖注入的常见方式有如下三种:

1.

优点:代码简洁、方便快速开发

缺点:隐藏了类之间的依赖关系、可能破坏类的封装性

2.

优点:能清晰的看见类的依赖关系、提高了代码的安全性

缺点:代码繁琐、如果构造参数过多,可能导致构造函数臃肿 当前类中只存在一个构造函数的时候,@Autowired可以省略

3.

优点:保持了类的封装性,依赖关系更清晰

缺点:需要额外编写setter方法,增加了代码量

  • @Autowired注解,默认是按照类型进行注入的。

  • 如果存在多个相同类型的bean,将会报错:

对于这种情况,在这里提供三种解决方案:

  • @Primary:提升某个bean的优先级,从而注入指定的这个bean。

  • @Autowired+@Qualifier:指定要注入的bean。

  • @Resource:指定要注入bean的名字。

@Resource与@Autowired的区别

  • @Autowired是Spring框架提供的注解,而@Resource是JavaEE规范提供的

  • @Autowired默认是按照类型注入,而@Resource默认是按照名称注入

http://www.lryc.cn/news/592916.html

相关文章:

  • 如何下载并安装AIGCPanel
  • Maven私服仓库,发布jar到私服仓库,依赖的版本号如何设置,规范是什么
  • 四、CV_GoogLeNet
  • LT8644EX-矩阵芯片-富利威
  • 麒麟操作系统unity适配
  • 【科研绘图系列】R语言绘制分组箱线图
  • 闭包的定义和应用场景
  • Nestjs框架: 基于TypeORM的多租户功能集成和优化
  • RPG59.玩家拾取物品三:可拾取物品的提示UI
  • 如何写python requests?
  • [特殊字符] Spring Boot 常用注解全解析:20 个高频注解 + 使用场景实例
  • Linux基础IO通关秘籍:从文件描述符到重定向
  • 龙虎榜——20250718
  • Redis高频面试题:利用I/O多路复用实现高并发
  • 服务端高并发方案设计
  • Linux操作系统之线程:分页式存储管理
  • ARINC818航空总线机载视频处理系统设计
  • stm32驱动双步进电机
  • NIO网络通信基础
  • 堆的实现,堆排序,咕咕咕
  • (5)颜色的灰度,亮度,对比度,透明度,都啥意思
  • ES v.s Milvus v.s PG
  • makefile -- part 1
  • Windows 安装WSL +Docker 部署通义千问大模型(同步解决Ubuntu启动命令闪退)
  • 白话深度学习:一副PPT入门CNN,ResNet和Transformer
  • ESP32-IDF LVGL UI 设计工具的使用
  • vs openssl编译提示无法打开文件“libssl.lib”或“libcrypto.lib”
  • 046_局部内部类与匿名内部类
  • NQA_路由自动切换实验(H3C)
  • 小记_想写啥写啥_实现行间的Latex公式_VScode始终折叠大纲