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应用必不可少的技术