构造方法注入

DI:依赖注入 之 构造方法注入、集合属性注入 一、DI:依赖注入 1、创建两个接口和实现类 //一个Service接口 package cn.tx.service; public interface OrderService { public void saveOrder(); } //一个Dao接口 package cn.tx.dao; public interface OrderDao { public void s... 阅读详情

Spring中只有两大核心技术:IOC&DI(控制反转&依赖注入),AOP(面向切面编程)

什么是依赖注入?

利用配置文件的关系来决定类之间的引用关系以及数据的设置操作.

1.构造方法注入

        默认情况下如果在applicationContext.xml文件之中配置的程序都可以自动的找到Spring容器加载时进行对象的实例化操作.但是自动进行初始化的时候调用1是类中的无惨构造方法,而且通过反射机制应该知道.如果类中提供有无惨构造方法一定要比有参构造方法的实例化更加容易.

    但是在Spring里面简化了反射的处理机制,也就是说利用Spring中的动态的特性可以直接明确调用构造方法传递参数.

    范例:定义一个类


 
  1. package cn.zwb.vo;

  2.  
  3. public class Dept {

  4. private Integer deptno;

  5. private String dname;

  6. public Dept(Integer deptno,String dname){

  7. this.deptno=deptno;

  8. this.dname=dname;

  9. }

  10. @Override

  11. public String toString() {

  12. // TODO Auto-generated method stub

  13. return "部门编号:"

  14. + this.deptno

  15. + ",名称"

  16. +this.dname;

  17. }

  18. }

        此时类中没有提供有无惨构造方法,所以配置在applicationContext.xml文件中的"<bean>"不能够正常使用,此时必须 明确调用类中的有参构造方法.

范例:application.xml配置


 
  1. <bean id="dept" class="cn.zwb.vo.Dept">

  2. <constructor-arg value="10"/>

  3. <constructor-arg value="开发部"/>

  4. </bean>

        但是在Spring的配置里面它所支持的好处远远不止这一点.如果用户有需要也可以根据参数的索引来进行设置,

范例:修改索引操作


 
  1. <bean id="dept" class="cn.zwb.vo.Dept">

  2. <constructor-arg index="0" value="10"/>

  3. <constructor-arg index="1" value="开发部"/>

  4. </bean>

        虽然Spring在构造方法上考虑的还是挺多的,但是从本质上并不推荐.

范例:修改Dept.java类设置参数名称


 
  1. @ConstructorProperties(value={"paramDeptno","paramDname"})

  2. public Dept(Integer deptno,String dname){

  3. this.deptno=deptno;

  4. this.dname=dname;

  5. }

  也就是说在设置的时候可以使用paramDeptno来代替索引0.使用paramDname来代替索引1.

范例:利用参数名称进行设置


 
  1. <bean id="dept" class="cn.zwb.vo.Dept">

  2. <constructor-arg name="paramDeptno" value="10"/>

  3. <constructor-arg name="paramDname" value="开发部"/>

  4. </bean>

nRF52382低功耗蓝牙应用开发之入门教程-软件烧录 准备工作在上一篇文章讲过了,这里就讲讲nRFgo studio的使用 硬件准备: J-link:2线 供电:3.3V 如下图打开nRFgo studio界面介绍, 2、如果J-link正常,如下图 3、如果蓝牙芯片正常 4、烧录过程,如果蓝牙芯片之前有烧录过程序,需先点擦除,再点烧录 5、烧录代码路劲,例如 F:\nRF\SDK\nRF5_SDK_15.2.0_... 阅读详情

相关推荐

VScode+MPLAB AI助手:Microchip MCU开发全流程实战解析

本文详细解析了如何使用VScode搭配MPLAB AI助手进行Microchip MCU开发的完整流程。从环境配置、工程创建到代码生成与调试,全面介绍了AI助手在提升开发效率、优化代码和故障排除方面的实际应用,为嵌入式开发者提供了一套高效的开发解决方案。

hh234的博客 1131

Sprng依赖注入(三):构造方法注入是如何工作的?

这是Spring依赖注入系列的第三篇,前两篇主要分析了Spring bean依赖属性注入的两种方式,是字段注入和setter方法注入,单独比较这两种方式,会发现其过程和工作原理非常类似,那么构造方法注入会不会也和前两种比较类似呢?本篇文章将会揭晓答案。构造方法注入方法以@Autowired注解为例,即把@Autowired注解标记在目标bean的构造方法上,而构造方法的入参数是引用bean类型;构造方法注入示例示例主要内容:1、定义Teachert类; 2、定义Student类;

凡夫编程 1811

Windows系统下com0com虚拟串口安装与驱动签名禁用全攻略

本文详细介绍了在Windows系统下安装com0com虚拟串口工具的全过程,包括驱动签名问题的解决方法。通过禁用驱动程序强制签名,用户可以顺利安装并使用这款开源工具创建虚拟串口对,适用于软件开发测试、硬件调试等场景。文章还提供了验证虚拟串口功能的实用技巧和常见问题解决方案。

weixin_28720573的博客 386

【Spring】关于Spring的三种注入方式的分析

关于Spring的三种注入方式简单分析

qq_53070263的博客 2922

基于BQ24610的24V电池充电板

转自我的博客 本文的主要目的在于传播基本的阅读datasheet的能力,以及PCB设计需要注意的基本问题。 本次需要设计的是24V动力锂电池充电电路。 原理图设计 参考官方参考电路 为了快速设计电路,自然是参考官方参考电路,选择Typical Application。 做细微的参数调整 由于我们的需求是给24V的电池充电,所以需要稍微修改一下原理图,接下来需...

greedyhao的博客 1万+

我看MFC的过去、现在和未来

首先说句题外话,虽然我现在的“主业”是Qt,但自己扪心自问,对MFC的熟悉程度要超过Qt。正是由于有了对MFC的熟悉,才能在使用Qt时,比较清醒的认清两者的优劣之处,在此暂且不提。 这个话题也可以说是由来已久,众说纷纭,今时我也谈谈自己的感悟。 一、对MFC的总体看法 首先看看云风在其《游戏之旅-我的编程感悟》一书中对MFC的看法: “我所见到的程序员中,很多把C+

qter_wd007的专栏 6115

Spring的三种注入方式:构造方法注入,set方法注入,注解注入

本文演示三种值注入方式和三层模式下的注解注入获取对象 首先是搭建基本的Spring运行环境导入四个基本的核心jar包和两个日志包 在src根目录下新建bean.xml的配置文件,同时引入dtd约束 一、构造函数注入 在bean.xml中配置 在测试类中测试是否成功获得对象实例,并注入数据 运行结果图: 二、set方法注入 首先在类中必须有成员属性的set方法 接着在bean.xml中...

后端开发 1万+

YOLO26涨点改进 | 全网独家创新、检测头Head改进篇 | AAAI 2026 | 使用StripConvHead改进YOLO26的检测头,处理小目标、遮挡小目标检测有效涨点,助力高效发论文

🔥本文给大家介绍使用StripConv条形卷积改进 YOLO26的检测头,可以显著提高模型在高纵横比物体检测、目标定位和多尺度物体检测方面的表现。StripConv条形卷积能够更有效地捕捉细长物体的特征,提升定位精度,并通过简化卷积核设计减少计算冗余,优化计算效率。此外,该改进增强了 YOLO26对复杂场景和实时任务的适应能力,特别适用于遥感图像目标检测、小目标检测等领域。具体怎么使用请看全文。摘要:随着遥感物体检测的快速发展,检测高纵横比物体仍然是一个挑战性问题。

Ai缝合怪、助力小伙伴高效发论文 268

Spring中构造注入详解

Spring中构造注入详解

x2656271356的博客 2523

FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地

一、环境介绍 操作系统介绍:ubuntu 18.04 FFMPEG版本: 4.4.2 摄像头: USB摄像头、虚拟机挂载本机自带摄像头 二、FFMPEG与X264下载编译 X264下载地址: http://www.videolan.org/developers/x264.html FFMPEG下载地址:https://ffmpeg.org/download.html Yasm ...

8872

RK3588 Android12 添加HDMI和喇叭声音通道切换选项

rk3588 android12系统默认接hdmi out时,声音会切换到hdmi out输出,主板声卡喇叭输出会没有声音输出。现在添加一个选项设置hdmi out时,声音可以保持主板声卡喇叭输出。

Android系统开发笔记 4163

Spring三种注入方法(set注入、构造方法注入、p标签注入)

一、构造注入 编写一个User类 public class User { private String name; //名字 private Integer age; //性别 private Date date; //日期 依赖的对象 //通过构造为成员属性进行初始化 public User(String name, Integer age, Date date) { this.name = name; ...

柒七的博客 3302

【数据集处理】基于ERA5 气温/湿度数据计算湿球温度并判别湿热浪

【数据集处理】基于ERA5 气温/湿度数据计算湿球温度并判别湿热浪

WW、forever的博客 488

使用构造方法注入

使用构造方法注入依赖

蓝墨の学习笔记 1148

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

构造方法注入和setter注入之间的区别吗?

构造方法注入和setter注入之间的区别吗? 有以下几点明显的差异: 在Setter注入,可以将依赖项部分注入,构造方法注入不能部分注入,因为调用构造方法如果传入所有的参数就会报错。 如果我们为同一属性提供Setter和构造方法注入,Setter注入将覆盖构造方法注入。但是构造方法注入不能覆盖setter注入值。显然,构造方法注入被称为创建实例的第一选项。 使用setter注入你不能保证所有的依赖都被注入,这意味着你可以有一个对象依赖没有被注入。在另一方面构造方法注入直到你所有的

qq_36930483的博客 7236

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Spring学习】更简单的方式获取Bean对象,属性注入,构造方法注入,Setter注入

【Spring学习】更简单的方式获取Bean对象,属性注入,构造方法注入,Setter注入

程序员良辰 1265

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Spring IOC 构造方法注入和设值注入的比较

v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2

SKY138421的专栏 3957

Spring构造方法注入

构造方法注入: 通过构造方法注入bean的属性值或者依赖的对象,它保证了bean实例在实例化后就可以使用 构造器注入在元素里声明属性 字面值: 可以用字符串表示的值,可以通过元素标签或value属性进行注入 基本的数据类型及其封装类,String等类型都可以采取字面值注入的方式 若字面值包含特殊字符,可以用<![CDATA[]]>把字面值包裹起来 引入其他Bean 组成应用程序的Bea...

Java肖帝的博客 584

04,spring 构造方法注入和set注入

构造方法注入和set注入 1,概述 我们上节课讲了一下IOC入门,然后我们注入了一个对象到Spring容器,并且通过Spring容器获取到了这个对象。但是,我们思考一下,我们说道了注入就是我们创建一个对象然后把这个对象提交到Spring容器。那么我们思考一下他是如何创建这个对象的呢? 2,无参构造方法注入 所谓无参构造方法注入就是Spring会自动调用我们无参构造方法来创建一个对象,然后再把这个对象提交到Spring容器。像我们上节课讲的入门案例。我们创建Person对象不需要提交任何的参数。 3

V哥教育,java技术博客 622

spring注入,构造方法注入

基于maven的pom.xml <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.5.2</version> <scope&gt...

qq_45753477的博客 994

Spring中的属性注入,setter注入,构造方法注入

Spring的三种注入方式

SzhenKyuRwang的博客 643

spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入。

spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入。接口注入不作要求,下面介绍前两种方式。 1,set注入   采用属性的set方法进行初始化,就成为set注入。     1)给普通字符类型赋值。 [java] view plain copy print? public class User{     privateSt

M_0307的博客 5263

注入两种方式: 1 setter方式注入, 2 构造方法方式注入

1  构造方法注入   配置实体类生成setter  public class Detail {  private String id;  private String message;  public String getId() {   return id;  }  public void setId(String id) {   this.id = id;

weixin_39904033的博客 435

构造方法注入和设值注入有什么区别

请注意以下明显的区别: (1)设值注入支持大部分依赖注入,如果我们仅需要注入int、string和long型的变量,不要用设值方法注入。对于基本类型,如果没有注入,可以为基本类型设置默认值。构造方法注入不支持大部分依赖注入,因为在调用构造方法时必须传入正确的构造参数,否则会报错。 (2)设值注入不会重写构造方法的值。如果我们对同一个变量同时使用了构造方法注入和设值注入,那么构造方法将不能覆盖设值注入的值。很明显,因为构造方法只在对象被创建时被调用。 (3)在使用设值注入时还不能保证某种依赖是否已经被注入,也

inet_ygssoftware的博客 11万+

Spring~用注解读取bean(属性注入、构造方法注入、set注入)

文章目录注解@Autowired.属性注入Setter注入构造方法注入三种注入的优缺点注解@Resource.1.属性注入2.构造方法注入@Resource与@Autowired区别注入对象名称问题 通过注解从spring中储存和获取bean对象是非常简单的一种方法,前面我们已经介绍了如何将bean存入spring容器中,这里我们将了解如何通过注解将bean从spring容器中再读取出来。 读取bean对象也叫对象装配、对象注入、依赖注入,就是将获取出的对象放到某个类中,让这个类进行使用。 对象注入: 如

zxc的博客 8991
上一篇: Spring set注入和构造注入的区别
下一篇: Spring注入:配置注入(set注入和构造器注入)与注解注入
Hack_Bug
博客等级 码龄15年 34粉丝 25原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值