Spring02创建对象的3种方式,通过set方法对对象赋值

离线安装PlutoSDR硬件支持包全攻略:没有MathWorks账号也能搞定MATLAB集成 本文详细介绍了在没有MathWorks账号和网络环境的情况下,如何离线安装PlutoSDR硬件支持包并实现MATLAB集成的完整解决方案。从驱动安装、设备识别到MATLAB支持包的离线部署,提供了全面的步骤指导和常见问题排查方法,特别适合高校实验室、军工单位等内网环境使用。 阅读详情

一、Spring创建对象的3种方式

  1. 通过构造方法创建
    无参构造创建:默认情况
    有参构造创建:需要明确配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    工厂设计模式:帮助创建类对象,一个工厂可以创建多种对象。
  2. 实例工厂
    (1) 需要先创建工厂,才能再创建对象。
public class PeopleFactory {
	public static People newInstance(){
		return new People(1,"测试");
	}
}

(2) 在applicationContext.xml中配置工厂对象和需要创建的对象

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- id表示获取到对象标识      class 创建哪个类的对象 -->
    <bean id="peo" class="com.bjsxt.pojo.People">
    	<!-- ref引用另一个bean   value 基本数据类型或String等 -->
    	<constructor-arg index="0" name="id" type="int" value="123"></constructor-arg>
    	<constructor-arg index="1" name="name" type="java.lang.String" value="张三"></constructor-arg>
    </bean>
    
    <!-- 配置工厂对象和需要创建的对象 -->
    <bean id="factory" class="com.bjsxt.pojo.PeopleFactory"></bean>
    <bean id="peo1" factory-bean="factory" factory-method="newInstance"></bean>
    
</beans>

(3) 编写测试方法

public class Test {
	public static void main(String[] args) {
//		People peo = new People();
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		People people = ac.getBean("peo2",People.class);
		System.out.println(people);
	/**
		 * 实例工厂测试代码
		 * 具体如何实例化工厂和本个知识点无关系
		 */
//		PeopleFactory factory = new PeopleFactory();
//		People people = factory.newInstance();
	}
}

  1. 静态工厂
    不用创建工厂,可以快速创建对象。
    (1) 编写一个静态(在方法上填写static)
public class PeopleFactory {
	public static People newInstance(){
		return new People(1,"测试");
	}
}

(2) 在applicationContext.xml中编写

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- id表示获取到对象标识   class 创建哪个类的对象 -->
    <bean id="peo" class="com.bjsxt.pojo.People">
    	<!-- ref引用另一个bean   value 基本数据类型或String等 -->
    	<constructor-arg index="0" name="id" type="int" value="123"></constructor-arg>
    	<constructor-arg index="1" name="name" type="java.lang.String" value="张三"></constructor-arg>
    </bean>
 
    <bean id="peo2" class="com.bjsxt.pojo.PeopleFactory" factory-method="newInstance"></bean>
</beans>

二、对对象属性赋值(通过set方法)

通过set方法,对对象赋值

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="peo" class="com.bjsxt.pojo.People">
    	<property name="id">
    		<value>456</value>
    	</property>
    	<property name="name">
    		<value>zhangsan</value>
    	</property>
    	<property name="sets">
    		<set>
    			<value>1</value>
    			<value>2</value>
    			<value>3</value>
    			<value>4</value>
    		</set>
    	</property>
    	<property name="list" value="1">
    	</property>
    	<property name="strs" >
    		<array>
    			<value>1</value>
    			<value>2</value>
    			<value>3</value>
    		</array>
    	</property>
    	<property name="map">
    		<map>
    			<entry key="a" value="b" >
    			</entry>
    			<entry key="c" value="d" >
    			</entry>
    		</map>
    	</property>
    	
    	<!-- <property name="demo">
    		<props>
    			<prop key="key">value</prop>
    			<prop key="key1">value1</prop>
    		</props>
    	</property> -->
    	
    	<!-- 当一个类A需要依赖另一个类B的对象时,将B赋值给A的过程就叫做“依赖注入DI” -->
    	<property name="desk" ref="desk"></property>
    </bean>
    
    <!-- 被依赖的类的bean -->
    <bean id="desk" class="com.bjsxt.pojo.Desk">
    	<property name="id" value="1"></property>
    	<property name="price" value="12"></property>
    </bean>
</beans>
碰撞检测 | 图解视线生成Bresenham算法(附ROS C++/Python/Matlab实现) Bresenham视线生成是一种高效的算法,用于在二维网格上绘制直线。Bresenham算法可以应用在栅格地图中进行一维碰撞检测,即检查起点和终点间直线是否穿过障碍栅格。本文图解Bresenham碰撞检测的原理,并给出ROS C++/Python/Matlab三种实现加深理解 阅读详情

相关推荐

STM32CubeMX+FreeRTOS+CAN总线+传感器实战:多任务系统与通信融合开发详解

本文详细介绍了基于STM32CubeMX和FreeRTOS的CAN总线与光电传感器融合开发实战。通过多任务系统设计,实现传感器数据采集与CAN通信的协同工作,提供完整的配置例程和调试技巧,适用于工业控制与机器人感知等应用场景。

n2o3p4的博客 734

Spring开发之静态工厂创建对象+动态工厂创建对象+构造方法创建对象+set方法注入+构造方法注入

第一步:导入Spring开发之必须用到的jar包 第二步:创建类 第三步:创建Spring开发之applicationContext.xml文件 第四步:编写代码和测试 第一步:导入Spring开发之必须用到的jar包 第二步:创建类 User类 package com.domain; public class User { private

闪闪红星 1808

紫光同创PGL50H开发板实战:盘古50KN网口板的高速通信与数据处理

本文详细介绍了紫光同创PGL50H开发板(盘古50KN网口板)在高速通信与数据处理领域的实战应用。文章从开箱、核心芯片解析、开发环境搭建入手,重点讲解了如何配置与测试其8路千兆以太网接口和SFP光纤接口,并深入探讨了FPGA与DDR3协同进行多路数据汇聚处理的系统架构与调试方法,为网络通信与高速数据处理系统开发提供了宝贵的实践经验。

weixin_28256233的博客 452

属性较多的java对象的创建

之前使用的都是javabeans方式创建,如果属性较多需要多次set,在构造过程中javabean可能处于不一致的状态,比较麻烦。这时可以使用builder方式。它是不直接产生想要的对象,而是通过静态工厂的方式创建builder对象,然后再利用这个对象来set需要的对象属性。示例如下: public class Nutrifacts { private final int servingSiz

Primary_wind的专栏 1097

海康威视iSC平台视频流对接:RTSP、HLS、WS三种协议到底该怎么选?

本文深入分析海康威视iSC平台视频流对接中RTSP、HLS和WebSocket三种协议的优缺点,帮助开发者根据实时性、兼容性和网络环境做出最优选择。特别适合综合安防管理平台的Web视频监控系统开发,提升用户体验和系统性能。

weixin_28365523的博客 691

7-1 链式基数排序 (20 分)

7-1 链式基数排序 (20 分) 实现链式基数排序,待排序关键字n满足1≤n≤1000,最大关键字数位≤5。 输入样例: 第一行输入待排序个数n(1≤n≤1000),再输入n个数(n的数位≤5)。 10 278 109 63 930 589 184 505 269 8 83 输出样例: 输出每趟分配-收集后链表中的关键字,趟数为序列中最大值的数位(如样例中930的数位为3),每行结尾有空格。 930 63 83 184 505 278 8 109 589 269 505 8 109 930 63 26

OwemShu的博客 4236

面向对象--用构造方法和setxxx()方法给成员变量赋值

class demo_Person{ public static void main(String[] args){ Person p=new Person("张三",23); //有参构造对象 p1=new Person("张飞",23); //修改值,这种方式看运行结果貌似改名了,其实是将原先的对象变成了垃圾 System.out.println(p...

qq_14898247的博客 957

单节锂电池充电管理芯片应用原理阐述及应用领域

当电池电压超过2.9V时,采用恒流模式对电池充电,充电电流由PROG 管脚和GND之间的电阻RPROG确定。充电电压固定于4.2V,而充电电流可通过一个电阻器进行外部设置当充电电流在达到最终浮充电压之后降至设定值1/10时,WD4054将自动终止充电循环。在待机模式中,WD4054 对 BAT 引脚电压进行监控,只有当 BAT 引脚电压低于再充电阈值电压4.1V时(对应电池容量80%~90%),才会开始新的充电循环,重新对电池进行充电,这就避免了对电池进行不必要的反复充电,有效延长电池的使用寿命。

weixin_41141180的博客 943

Set对象的详细用法

1.Set对象 Set对象可以自动排除重复项,生成Set对象后,可以轻松遍历它所包含的内容。 实例,给一个数组去重 //现有一个数组 let arr=[1,3,1,2,3,4]; //把数组转换成Set对象 let s=new Set(arr); //Set自动去重,并赋值给变量s console.log(s);//Set(4) {1, 3, 2, 4} //此时再把Set对象转换成数组,使用[...]扩展运算符或者使用Array.from()都可以将Set对象转换成数组 let newArr=[...s]

qq_42238554的博客 1084

YOLOv11低照度目标检测优化方案:基于SCINet可训练预处理主干的全流程实现指南

创建一个新的Python文件,如。

FJN110的博客 188

KCP(快速可靠UDP)——用带宽换延迟的极致艺术

想象你是一个外卖平台的调度员。这就是KCP的本质——

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 202

Spring创建对象赋值的方法简介

**1、**上文中已经介绍Spring框架创建对象的三种方法,其中使用有参构造方法时,可以用给对象属性赋值,除了上述对象属性赋值方法以外,还可以使用set方法给对象属性赋值。 **2、**本文使用set方法给对象属性赋值主要分为以下几种:基本数据类型及类似String的简单数据类型、Set<?>集合、List<?>集合、String[]、Map<?,?>集合及P...

weixin_43708793的博客 557

yolov11添加P2小目标检测头与添加P6超大目标检测头

本文介绍了YOLO目标检测模型中上下采样的原理及应用。上采样通过插值算法放大特征图,YOLO通常采用最近邻插值;下采样则通过带步长的卷积缩小特征图提取高层语义特征。文章详细阐述了这两种操作在YOLO中的实现方式、结构特点及对称性问题,指出下采样后会使用C3模块进行特征整合,上采样后通过concat抑制分割感。此外,还分析了不同分辨率特征图适合检测不同尺寸目标的原因,并提出添加4倍小目标检测头的方法,即对上采样后的特征进行concat和C3模块处理。最后给出了YOLOv5原模型结构和添加4倍检测头后的结构对比

m0_64661770的博客 820

Spring初使用:使用Spring为对象的属性赋值

基本数据类型及其封装类 set方法赋值 使用set方法给非自定义类中的属性赋值 引用数据类型 有参构造方法 自动注入

SmallSweets的博客 2761

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

spring IOC容器管理必须知道这些操作——基于XML方式

Spring——IOC(控制反转) 一、IOC容器 ​ 1、什么是IOC(控制反转) ​ a)把对象创建和对象之间的调用过程,交给Spring进行管理 ​ b)使用IOC目的:为了降低耦合度 ​ 2、IOC底层 ​ a)xml解析、工厂模式、反射 ​ 3、Spring提供的IOC容器实现的两种方式(两个接口) ​ a)BeanFactory接口:IOC容器基本实现是Spring内部接口的使用接口,不提供给开发人员进行使用(加载配置文件时候不会创建对象,在获取对象时才会创建对象。) ​ b)App

学而时习 5万+

OV9734 DATASHEET,完整规格书

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

Spring属性注入(创建对象的时候给类里面的属性赋值)

java代码中设置属性的三种方式 第一种set方法 public void setUsername(String username) { this.username = username; } User  user = new User(); user.setUsername(“lhj”); 第二种  有参构造实现属性注入  public User(String username)...

qq_18119793的博客 4131

序号2、Spring 获取对象方式、赋值bean对象方式、

1、Spring获取对象的方式 背景: (1)一个Person实体类,Person.class; (2)ioc.xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati

Alan先生的代码屋 210

SpringIOC创建对象的方式

问题: 学习了SpringIOC的基本使用后,发现对象的创建由我们自己创建变成了由Spring容器根据配置文件来帮助我们创建,我们直接从Spring容器中获取创建好的对象使用即可,那么既然对象不是我们创建的,那么如果我们需要一个带有初始化数据的对象,那该怎么办嘞? 解决: 我们是通过配置文件来告诉Spring容器帮我们创建哪些对象并管理,那么我们也只能通过配置文件来告诉Spring如何帮助我...

weixin_44960518的博客 439

spirng容器创建对象给Di赋值的几种方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、spring容器创建对象的特点 2.DI:给属性赋值 spring调用类的无参数构造方法,创建对象。对象创建后给属性赋值。 给属性赋值可以使用 xml配置文件中的标签和属性; 2.使用注解。 DI分类: 1 set注入,也叫做设值注入; 2构造注入。 在xml配置文件中使用标签和属性,完成对象创建,属性赋值。 set注入,也叫做设值注入。 概念: spring调用类中的set方法,在set方法中可以完成属性赋值。.

sinat_41902940的博客 610

spring 给对象赋值

概念 spring 给对象赋值的方式有两种 一种是配置文件,一种是注解 DI:依赖注入,给属性赋值 1、基于XML的实现:在spring的配置文件中,使用标签和 属性完成 2、基于注解实现:使用spring中的注解来完成属性的赋值 DI语法分类: 1、set注入(设置注入):spring调用类的set方法,在set方法可以实现属性的赋值。【80%左右都是使用该方法注入】 2、构造注入:spring中调用构造方法,创建对象,在构造方法中王车工赋值 基于XML的实现 set注入 set方法是在构造方法之后,才执

qq_40981804的博客 1053

通过bean标签创建对象,给对象的属性赋值,自动注入

首先,情境是一个类的属性之一是另一个类的对象:(Student类的对象的属性之一是一个School类对象)首先有一个类School,这个类里面有两个属性,name和address(表示一个学校的名字和地址) 然后另一个类是Student,这个类里面有三个属性,name,age还有一个School类属性school 而在配置文件中: 一个bean表示一个java对象,所以这里在配置文件中定义了两个java对象其中Student类对象myStudent有一个属性叫作student,它是一个java对

weixin_47414034的博客 1327

Spring的Set注入

注入是什么1.1为什么需要注入1.2如何进行注入 注入是什么 通过Spring工厂以及配置文件,为所创建对象的成员变量赋值 1.1为什么需要注入 通过编码的方式为成员变量进行赋值,存在耦合?为什么 我们以前都是通过set方法来为成员变量赋值,这样通过代码为成员变量赋值存在耦合 注入可以解决这种问题 1.2如何进行注入 类的成员变量提供set方法 .........

梦想也许遥不可及,但重要的是追梦的过程,用博客记录自己的成长,记录自己一步一步向上攀登的印记 5699

Spring--对象的创建及赋值

Spring–对象的创建及赋值 基础篇: 对象的创建: 1.在配置文件里(Spring.xml)写配置信息: 例: <!-- 一个bean标签,代表让spring工厂给我们创建对象 id:是唯一标识,是未来通过工厂获取对象的依据 class:指定类的全限定名 --> <bean id="user" class="com.baizhi.entity.User"></bean> <!--此时对象还没建成,只

qq_41182402的博客 565

IoC、Spring 环境搭建、Spring 创建对象的三种方式、DI

二.IoC 中文名称:控制反转 英文名称:(Inversion of Control) 3.I oC 是什么? 3.1 IoC 完成的事情原先由程序员主动通过 new 实例化对象事情,转交给 Spring 负责. 3.2 控制反转中控制指的是:控制类的对象. 3.3 控制反转中反转指的是转交给 Spring 负责. 3.4 IoC 最大的作用:解耦. 3.4.1 程序员不需要管理对象.解除了对象管理和程序员之间 的耦合. 三.Spring 环境搭建 导入 jar 1.1 四个核心包一个日志包(comm

weixin_43942304的博客 150

SpringIOC创建对象的三种方式

1、默认使用无参构造的创建对象 Hello.java: public class Hello { private String name; public void setName(String name) { this.name = name; } public void show(){ System.out.println("Hello "+this.name); } } ApplicationContext.xml <?xm

兮遥 641

Spring 创建对象的方式

创建对象的方式 无参方式创建对象 实现类: public class ReadDaoImpl implements ReadDao { private String str = "我是杂志"; public ReadDaoImpl(){ } public ReadDaoImpl(String str){ this.str=str; } @Override public void getString() { System.

m0_50210478的博客 451

Spring学习二创建对象,Spring的配置,Bean注入方式

1、Spring Ioc创建对象的方式 构造方法创建对象: 1、使用无参构造创建对象,是默认实现; 2、若使用有参构造创建对象,则: 使用下标赋值,index赋值0,代表构造方法第一个参数 <bean id="user" class="com.hua.pojo.User"> <constructor-arg index="0" value="张三"></constructor-arg> </bean> 使用类型赋值,但是

qq_39379958的博客 225
上一篇: Spring01环境搭建
下一篇: java项目里classpath具体指哪儿个路径
Xxacker的Latitude
博客等级 码龄9年 64粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值