企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**1. 一个实体类** ```java @Data @NoArgsConstructor @AllArgsConstructor public class User { private String username; private String password; } ``` **2. 将 User 注入 IoC 容器中** 依赖注入方式共有三种方式。 ``` 1. Setter方法注入:需要提供属性的Setter方法。 2. 构造器注入:需要提供对应的构造器。 3. 命名空间注入:需要提供属性的Setter方法。 ``` ```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 xmlns:p="http://www.springframework.org/schema/p" http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- property 是Setter注入 --> <bean id="user" class="learn.springioc.entity.User"> <property name="username" value="zhangsan"/> <property name="password" value="123456"/> </bean> <!-- constructor-arg 是构造器注入 --> <bean id="user" class="learn.springioc.entity.User"> <!-- 按照构造器参数名称注入 --> <constructor-arg name="username" value="zhangsan"/> <!-- 也可以按照构造器参数的位置注入,从左到右,从0开始 --> <constructor-arg index="1" value="123456"/> </bean> <!-- p:attrName 是命名空间注入,需要配置 <beans xmlns:p="http://www.springframework.org/schema/p" --> <bean id="user" class="learn.springioc.entity.User" p:username="zhangsan" p:password="123456"/> </beans> ``` **3. 测试** ```java public class UserTest { /** 获取 IoC 容器 */ private final ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContentext.xml"); @Test public void testDI() { User user = context.getBean(User.class); System.out.println(user); ///User(username=zhangsan, password=123456) } } ``` >[info]在 Spring Framework 中,仅使用构造器注入和 Setter 注入。