首页 > 其他分享 >Spring-IOC构造注入,以及以基于注解的DI

Spring-IOC构造注入,以及以基于注解的DI

时间:2023-10-19 20:45:01浏览次数:39  
标签:配置文件 DI Spring bean 注解 IOC

.Spring核心: IOC AOP
IOC:控制反转:就是对对象控制权的转移,从程序代码本身
反转到外部的容器中,通过外部容器对象的创建,
属性的赋值,依赖的管理。

IOC的具体实现:
依赖注入(DI):

1.创建项目,导入架包
2.定义类
3.创建Spring的配置文件,编写bean
4.在测试类中测试


基于xml的DI
bean实例调佣的是无参构造,如果需要bean对象的属性进行初始化,就由容器来自动完成,称为注入
set注入

构造注入
基于注解的DI
使用注解,将不在需要Spring配置文件中去申明bean标签
需要在原有Spring运行环境中做出一些改,
需要在配置文件中配置组件扫描器,用于在指定的包中扫描你定义的注解


注解方式与xml配置方式
注解的优点:方便,直观,高效

 根据实体类里的数学lai写spring里的配置文件

 

 对于构造注入就比较简单,首先把Spring的配置文件NameSpaces中的context勾上,在配置文件中输入

<context:component-scan base-package="cn.lexed.pojo"></context:component-scan>

 

 接着就是在实体类中加上@Component("***")

 

@Autowired:自动注入
1.在对象类型上使用@Autowired,该注解默认使用 按类型自动装配bean的方法
2.联合使用@Autowired和@Qualifier,
 @Qualifier的value属性用于指定要匹配的bean的id的值


 JDK注解@Resource:自动注入
 Spring提供了对jdk中@Resource注解的支持
 @Resource:可以按照名称匹配,也可以按照类型匹配,默认按照名称匹配

标签:配置文件,DI,Spring,bean,注解,IOC
From: https://www.cnblogs.com/1011-zslnb/p/17775577.html

相关文章

  • 开源版本Disruptor代码解读记录
    01disruptor实现原理disruptor是一种基于共享内存的进程间通信方式;接下来我们对该开源代码进行解读环形队列设计原理使用环形队列,实际上就是在堆上申请的一个大小为cap的数组,要求队列大小为2的N次方,为了满足位运算,快速计算出索引index(比取模的速度快)。对该数组的访问将由2个索......
  • Educational Codeforces Round 149 (Rated for Div. 2) C. Best Binary String
    给一个字符串\(s\)包含\(0,1,?\)。定义一个\(01\)串\(s\)的\(cost\)为:选择\(s\)的任意一个子段\([l,r]\)并\(reverse\)。将\(s\)变为一个非降序序列时的\(reverse\)最小次数即\(cost\)。你可以让\(s\)的\(?\)换成\(0/1\),使新\(s\)的\(cost\)......
  • SpringBoot 整合 Caffeine
    1Maven依赖引入pom依赖:<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><version>3.1.6</version></dependency>或者直接观察当前SpringBoot自带版本:2.2基本用法imp......
  • 构建高效、安全的在线考试系统:基于Spring Boot和Vue的前后端分离之道
    本文介绍了如何使用SpringBoot和Vue构建一个前后端分离的在线考试系统。通过结合这两个流行的技术框架,我们能够快速搭建一个功能完善、易于扩展的系统,提供高效、安全和可靠的在线考试服务。本文将详细介绍系统的架构设计和关键技术实现,并提供相关代码示例。随着互联网的普及,越来越......
  • SpringBoot3.0 + RocketMq 构建企业级数据中台[内附资料]
    点击下载:SpringBoot3.0+RocketMq构建企业级数据中台[内附资料]  提取码:3cnfSpringBoot3.0是SpringBoot框架的最新版本,它提供了愈加简单、快速和高效的方式来构建企业级应用程序。RocketMq是一款高性能的音讯中间件,能够完成散布式音讯传送和处置。将SpringBoot3.0和Rocket......
  • 论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene R
    Nerflets:LocalRadianceFieldsforEfficientStructure-Aware 3DSceneRepresentationfrom2DSupervisionNerflets:用于高效结构感知的三维场景的二维监督的局部辐射场图1。我们提出用一组局部神经辐射场来表示场景,称为nerflets,仅在2D监督下进行训练。我们的表示法不仅适......
  • 在Visual Studio Code中进行WSL开发
    在VisualStudioCode中轻松进行WSL开发的步骤如下:1.安装VisualStudioCode和WSL扩展:首先,从VisualStudioCode官网下载并安装VisualStudioCode。然后,在VisualStudioCode中安装WSL扩展,该扩展可以让你直接在VSCode中使用WSL作为开发环境[[1]](https://learn.microsoft.com/......
  • Spring扩展接口(3):BeanFactoryPostProcessor
    在此系列文章中,我总结了Spring几乎所有的扩展接口,以及各个扩展点的使用场景。并整理出一个bean在spring中从被加载到最终初始化的所有可扩展点的顺序调用图。这样,我们也可以看到bean是如何一步步加载到spring容器中的。BeanFactoryPostProcessor1、概述publicinterfaceBea......
  • springboot mybatis-plus 逆向工程
    官网地址:https://baomidou.com/开发环境Springbootv3.1.4mybatis-plusv3.5.3.2mybatis-plus-boot-startermybatis-plus-generatorApacheFreeMarkerv2.3.32mysql  ......
  • docker 挂载redis
    一、Dockerpullredis镜像二、挂载redisdockerrun--restart=always--log-optmax-size=100m--log-optmax-file=2-p6379:6379--namemyredis01-v/home/redis/myredis01/myredis.conf:/etc/redis/redis.conf-v/home/redis/myredis01/data:/data-dredisredis-ser......