spring IOC控制反转与DI依赖注入
程序员文章站
2022-06-28 16:29:40
代码实现代码结构代码实现User1set方式注入创建User1,声明name和age属性,并添加对应的setter和getter方法,以及toString方法package cn.tedu.pojo;public class User1 { private UserInfo userInfo; private String name ; private Integer age ; @Override public String toStr...
代码实现
代码结构
代码实现
User1
set方式注入
创建User1,声明name和age属性,并添加对应的setter和getter方法,以及toString方法
package cn.tedu.pojo;
public class User1 {
private UserInfo userInfo;
private String name ;
private Integer age ;
@Override
public String toString() {
return "User1{" +
"userInfo=" + userInfo +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
}
UserInfo
构造器注入
创建UserInfo,声明id和na属性,并添加有参和无参构造方法,以及toString方法
package cn.tedu.pojo;
public class UserInfo {
private Integer id;
private String na;
public UserInfo() {
}
public UserInfo(Integer id, String na) {
this.id = id;
this.na = na;
}
@Override
public String toString() {
return "UserInfo{" +
"id=" + id +
", na='" + na + '\'' +
'}';
}
}
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-4.0.xsd">
<!-- 声明bean对象,id是唯一标志,class:bean对象的全路径 -->
<bean id="userId" class="cn.tedu.pojo.User1">
<!--方法一:set方式注入-->
<!-- 通过set方式为普通属性赋值 -->
<property name="name" value="set方式注入"></property>
<!-- 通过set方式为对象属性赋值 -->
<property name="userInfo" ref="userInfoId"></property>
</bean>
<bean id="userInfoId" class="cn.tedu.pojo.UserInfo">
<!--方式二:构造器注入-->
<!--通过构造器中参数为属性赋值-->
<constructor-arg name="id" value="1"></constructor-arg>
<constructor-arg name="na" value="构造器注入"></constructor-arg>
</bean>
</beans>
测试类Test1
package cn.tedu;
import cn.tedu.pojo.User1;
import cn.tedu.pojo.UserInfo;
import org.junit.jupiter.api.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test1 {
@Test
public void test1(){
//1.加载spring的核心配置文件
ClassPathXmlApplicationContext ca =
new ClassPathXmlApplicationContext("applicationContext.xml");
//2.从spring容器中获取bean对象
User1 user = (User1) ca.getBean("userId");
//3.打印对象的toString方法
System.out.println(user);
UserInfo userInfo =(UserInfo) ca.getBean("userInfoId");
System.out.println(userInfo);
}
}
结果:
本文地址:https://blog.csdn.net/weixin_43187081/article/details/112018030
推荐阅读
-
Java:控制反转(IoC)与依赖注入(DI)
-
依赖注入与控制反转
-
个人对【依赖倒置(DIP)】、【控制反转(IOC)】、【依赖注入(DI)】浅显理解
-
.NET Core ASP.NET Core Basic 1-2 控制反转与依赖注入
-
ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下
-
大话DI依赖注入+IOC控制反转(一) 之 定义
-
ASP.NET Core依赖注入系列教程之控制反转(IoC)
-
依赖注入(DI)和控制反转(IoC)的理解
-
Spring IOC DI依赖注入 IOC容器 Spring Bean的声明周期
-
Spring入门 IOC理论,第一个spring程序Di依赖注入,Bean的自动装配