【Spring】002
【Spring】002
一、探索Spring IOC创建对象1、前述在Spring的入门程序HelloSpring中,我们并没有使用“new 类();”语句,Spring帮我们自动创建了,现在让我们来探索一下Spring帮我的创建对象的过程;2、代码示例(常规写法)第一步:我们先写一个User实体类代码语言:javascript代码运行次数:0运行复制package com.zibo.pojo;
【Spring】002
1、前述
在Spring的入门程序HelloSpring中,我们并没有使用“new 类();”语句,Spring帮我们自动创建了,现在让我们来探索一下Spring帮我的创建对象的过程;
2、代码示例(常规写法)
第一步:我们先写一个User实体类
代码语言:javascript代码运行次数:0运行复制package com.zibo.pojo;
public class User {
private String name;
public User() {
println("user对象被创建了!");
}
public String getame() {
return name;
}
public void setame(String name) {
= name;
}
public void show(){
println("name为:" + name);
}
}
第二步:写测试类
代码语言:javascript代码运行次数:0运行复制package com.zibo;
import com.zibo.pojo.User;
public class MyTest {
public static void main(String[] args) {
new User();
}
}
测试结果:
代码语言:javascript代码运行次数:0运行复制user对象被创建了!
总结:
我们平常使用new通过构造函数创建对象,构造函数被调用,其中代码会执行,那么让我们来探索Spring创建对象的痕迹 ;
、Spring创建对象
第一步:编写applicationContext.xml配置文件
代码语言:javascript代码运行次数:0运行复制<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
xmlns:xsi=";
xsi:schemaLocation=" .xsd">
<bean id="user" class="com.zibo.pojo.User"/>
</beans>
第二步:修改测试类
代码语言:javascript代码运行次数:0运行复制package com.zibo;
import org.support.ClassPathXmlApplicationContext;
public class MyTest {
public static void main(String[] args) {
//获取Spring上下文容器对象
new ClassPathXmlApplicationContext("applicationContext.xml");
}
}
测试结果:
代码语言:javascript代码运行次数:0运行复制user对象被创建了!
总结:
可以看出,在加载配置文件的时候,Spring为我们通过无参构造创建了user对象;
4、让我们再加上属性注入
第一步:修改applicationContext.xml配置文件
代码语言:javascript代码运行次数:0运行复制<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
xmlns:xsi=";
xsi:schemaLocation=" .xsd">
<bean id="user" class="com.zibo.pojo.User">
<property name="name" value="訾博"/>
</bean>
</beans>
第二步:修改User类的setame方法
代码语言:javascript代码运行次数:0运行复制package com.zibo.pojo;
public class User {
private String name;
public User() {
println("user对象被创建了!");
}
public String getame() {
return name;
}
public void setame(String name) {
println("setame方法被执行了");
= name;
}
public void show(){
println("name为:" + name);
}
}
测试结果:
代码语言:javascript代码运行次数:0运行复制user对象被创建了!
setame方法被执行了
总结:
看懂了吧!注意这里是使用无参构造方法创建对象;
注意:
必须有无参构造方法,否则报错!
1、让我们使用带参构造函数进行创建对象
第一步:修改User实体类(添加带参构造)
代码语言:javascript代码运行次数:0运行复制package com.zibo.pojo;
public class User {
private String name;
public User() {
println("user对象被创建了!");
}
public User(String name) {
= name;
println("使用带参构造创建对象了!");
}
public String getame() {
return name;
}
public void setame(String name) {
println("setame方法被执行了");
= name;
}
public void show(){
println("name为:" + name);
}
}
第二步:修改applicationContext.xml配置文件
代码语言:javascript代码运行次数:0运行复制<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
xmlns:xsi=";
xsi:schemaLocation=" .xsd">
<bean id="user" class="com.zibo.pojo.User">
<!--使用下标赋值-->
<ctructor-arg index="0" value="訾博"/>
</bean>
</beans>
测试结果:
代码语言:javascript代码运行次数:0运行复制使用带参构造创建对象了!
2、applicationContext.xml配置文件中使用带参构造函数创建对象传参的几种方式
方法一:使用下标传参
代码语言:javascript代码运行次数:0运行复制<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
xmlns:xsi=";
xsi:schemaLocation=" .xsd">
<bean id="user" class="com.zibo.pojo.User">
<!--使用下标传参-->
<ctructor-arg index="0" value="訾博"/>
</bean>
</beans>
方法二:使用自动类型传参(自动根据类型传参:不建议使用)
代码语言:javascript代码运行次数:0运行复制<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
xmlns:xsi=";
xsi:schemaLocation=" .xsd">
<bean id="user" class="com.zibo.pojo.User">
<!--使用自动类型传参(自动根据类型传参:不建议使用)-->
<ctructor-arg type="java.lang.String" value="訾博"/>
</bean>
</beans>
方式三:使用name给对应的属性名传参
代码语言:javascript代码运行次数:0运行复制<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=";
xmlns:xsi=";
xsi:schemaLocation=" .xsd">
<bean id="user" class="com.zibo.pojo.User">
<!--使用name给对应的属性名传参-->
<ctructor-arg name="name" value="訾博"/>
</bean>
</beans>
、注意
默认情况下,配置文件被加载时,所有的bean对象都会被实例化,而且只创建这一次,随后无论取几次,所取到的对象都是同一个对象;
默认情况下,IOC创建对象就是在配置文件被加载的时候,Spring会立即通过所配置bean对应类的无参构造方法和setter方法或带参构造方法创建所有的bean对象,当需要的时候从IOC容器获取即可,只创建这一次,随后无论取几次,所取到的对象都是同一个对象;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除springhttpioc测试对象#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-23 12:20:15
上一篇:【Spring Boot】035
下一篇:【Spring Boot】034
推荐阅读
留言与评论(共有 9 条评论) |
本站网友 盘龙二手房 | 19分钟前 发表 |
原始发表:2025-01-06 | |
本站网友 我靠重庆 | 13分钟前 发表 |
schemaLocation=" .xsd"> <bean id="user" class="com.zibo.pojo.User"/> </beans>第二步:修改测试类代码语言:javascript代码运行次数:0运行复制package com.zibo; import org.support.ClassPathXmlApplicationContext; public class MyTest { public static void main(String[] args) { //获取Spring上下文容器对象 new ClassPathXmlApplicationContext("applicationContext.xml"); } }测试结果:代码语言:javascript代码运行次数:0运行复制user对象被创建了!总结:可以看出 | |
本站网友 163两性网 | 15分钟前 发表 |
schemaLocation=" .xsd"> <bean id="user" class="com.zibo.pojo.User"/> </beans>第二步:修改测试类代码语言:javascript代码运行次数:0运行复制package com.zibo; import org.support.ClassPathXmlApplicationContext; public class MyTest { public static void main(String[] args) { //获取Spring上下文容器对象 new ClassPathXmlApplicationContext("applicationContext.xml"); } }测试结果:代码语言:javascript代码运行次数:0运行复制user对象被创建了!总结:可以看出 | |
本站网友 龙岩电影院 | 22分钟前 发表 |
所取到的对象都是同一个对象;三 | |
本站网友 景洪租房 | 21分钟前 发表 |
随后无论取几次 | |
本站网友 马油的功效 | 19分钟前 发表 |
IOC创建对象就是在配置文件被加载的时候 | |
本站网友 视频合成软件 | 8分钟前 发表 |
xsi="; xsi | |
本站网友 荣威4s店 | 12分钟前 发表 |
原始发表:2025-01-06 |