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

JAVA学习笔记DAY5——Spring_Ioc

文章目录

  • Bean配置
    • 注解方式配置
      • 注解
      • 配置文件
      • 调用组件
    • 注解方法作用域
  • DI注入注解
    • 引用类型自动装配
      • 文件结构
      • 自动装配实现
    • 基本数据类型DI装配

Bean配置

注解方式配置

  1. 类上添加Ioc注解
  2. 配置文件中告诉SpringIoc容器要检查哪些包

注解仅是一个标记

注解

不同注解仅是为了方便开发人员区分,均在@Component注解的基础上完成。

  • @Compeonent
  • @Repository
  • @Service
  • @Controller

配置文件

  1. 精准指定,指定包则包含子包
    注意会自动添加命名空间
<context:component-span base-package="xxxxxxxx" />
  1. 指定排除组件

调用组件

  1. 创建ioc容器
ClassPatnXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("xxxxxx.xml");
  1. 获取组件
XxxDao bean = applicationContext.getBean(XxxDao.class);
  1. close容器

注解方法作用域

DI注入注解

引用类型自动装配

只需要声明一个全局变量,上方使用@ Autowired注解。

@ Autowired 最常用在成员变量。

@ Qulifier 用来配合Autowired,是Autowired的附庸,不能单独使用。

@ Resource注解 是对Autowired+Qulifier的一种简化。(来自java jsr 250 ,java11以上需要导入依赖在可以使用)

文件结构

  • UserController (表述层,需要调用控制层)
  • UserService(接口)
  • UserServiceImpl(类_对接口的实现)

自动装配实现

前提:组件全部在Ioc中

基本数据类型DI装配

  1. 直接赋值
  2. 注解赋值 @Value注解
    可用于引入外部配置文件jdbc.properties中的值,例如password 。
    仍旧要求外部配置文件和需要调用的文件都在Ioc中。
@Value("${jdbc.username:admin}")

相关文章:

  • 李诞-2021.8脱口秀工作手册-1-工作的本质是交易;脱口秀是一份和生活分不开的工作,你的全部人生都理应要为你的创作提供养分,为它服务。
  • 使用CSS、JavaScript、jQuery三种方式实现手风琴效果
  • AIGC全面介绍
  • 【数据结构陈越版笔记】进阶实验1-3.1:两个有序序列的中位数
  • Android APP memory统计方法
  • 2024-06-07 Unity 编辑器开发之编辑器拓展8 —— Scene 窗口拓展
  • 【C++】模板及模板的特化
  • MySQL的索引类型,以及各自的作用
  • Java面试题汇总(持续更新.....)
  • 四叉树和KD树
  • Java:112-SpringMVC的底层原理(下篇)
  • Rust基础学习-标准库
  • 使用QT制作QQ登录界面
  • SpringBoot集成slf4j日志配置
  • linux 文件删除空间未释放问题
  • ComponentOne 2017 V2版本正式发布
  • cookie和session
  • create-react-app做的留言板
  • extjs4学习之配置
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • webpack入门学习手记(二)
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 排序算法之--选择排序
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 携程小程序初体验
  • 最近的计划
  • Spring第一个helloWorld
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # linux 中使用 visudo 命令,怎么保存退出?
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (16)Reactor的测试——响应式Spring的道法术器
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Python第六天)文件处理
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .Net Core与存储过程(一)
  • .Net Winform开发笔记(一)
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .Net7 环境安装配置
  • [ 网络通信基础 ]——网络的传输介质(双绞线,光纤,标准,线序)
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [ABC275A] Find Takahashi 题解
  • [Assignment] C++1
  • [C#]winform基于深度学习算法MVANet部署高精度二分类图像分割onnx模型高精度图像二值化
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh
  • [CCIE历程]CCIE # 20604
  • [Contest20180313]灵大会议
  • [FFmpeg学习]从视频中获取图片