Spring IOC创建对象的两种方式
时间:2021-10-09 08:51:01|栏目:JAVA代码|点击: 次
IOC创建对象的方式
一、 使用无参构造创建对象(默认方式)
创建实体类
注意:属性必须要有set方法,来完成注入
public class User {
private String name;
public User() {
System.out.println("执行了User类的无参构造方法~");
}
public User(String name){
this.name = name;
System.out.println("执行了User类的有参构造方法");
}
//使用无参构造方法时,必须要设置set方法,因为注入时 需要通过set方法注入
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
配置Bean
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="com.test.pojo.User">
<property name="name" value="gyp"/>
</bean>
</beans>
测试类
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = context.getBean("user", User.class);
System.out.println(user);
}
}
结果:

二、使用有参构造创建对象
- 通过下标注入
- 通过名字注入 【推荐】
- 通过类型注入
有参构造,不需要set方法注入
通过下标方式注入(通过index来选择,给有参构造的第几个参数注入)
(1)配置Bean
<bean id="user" class="com.test.pojo.User">
<constructor-arg index="0" value="gyp"/>
</bean>
(2)测试结果

通过名字注入
(1)配置Bean
<bean id="user" class="com.test.pojo.User">
<constructor-arg name="name" value="gyp"/>
</bean>
(2)测试结果

通过类型注入(不建议使用!因为当类里面有两个相同类型的属性时,无法给属性注入)
(1)配置Bean
<bean id="user" class="com.test.pojo.User">
<constructor-arg type="java.lang.String" value="gyp"/>
</bean>
(2)测试结果

总结:在加载配置文件的时候,IOC就已经创建好了对象!
上一篇:详解Spring Cloud Feign 熔断配置的一些小坑
栏 目:JAVA代码
下一篇:idea 列编辑模式取消的操作
本文标题:Spring IOC创建对象的两种方式
本文地址:http://www.codeinn.net/misctech/179241.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




