spring-p/c命名空间注入

1 p 命名空间注入

对应的是 set注入

1.1 在配置文件的头文件中加入 p 命名空间的约束

xmlns:p="http://www.springframework.org/schema/p"

1.2 编写实体类

需要有无参构造和set方法

public class User {
private String name;
private int age;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}

1.3 在属性文件中注入

<!--p命名空间注入,可以直接注入属性的值:property-->
<bean id="user" class="com.lv.pojo.User" p:name="傻逼" p:age="18"/>

1.4 测试

@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("userBeans.xml");
User user = context.getBean("user", User.class);
System.out.println(user);
}

1.5 执行结果

2 c 命名空间注入

对应的是 构造方法注入

2.1 在配置文件的头文件中加入 c 命名空间的约束

xmlns:c="http://www.springframework.org/schema/c"

2.2 编写实体类

需要有 有参构造

public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}

2.3 在属性文件中注入

<!--c命名空间注入,通过构造器注入:constructs-->
<bean id="user2" class="com.lv.pojo.User" c:name="大傻逼" c:age="38"/>

2.4 测试

@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("userBeans.xml");
User user = context.getBean("user2", User.class);
System.out.println(user);
}

2.5 执行结果

相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示