p命名空间注入

Posted 大师兄丶2K

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了p命名空间注入相关的知识,希望对你有一定的参考价值。

p命名空间注入的特点是使用属性而不是子元素的形式配置Bean的属性,从而简化了配置代码。

使用前要在spring配置文件中引入p命名空间

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

下面看示例:

biz里面要有setter访问器(与设值注入的代码相同)

1.biz代码

 1         //上面是以前的方法
 2     private IUserDao dao;
 3     public IUserDao getDao() {
 4         return dao;
 5     }
 6     //专业注入
 7     //dao的set访问器,会被spring调用,实现设值注入
 8     public void setDao(IUserDao dao) {
 9         this.dao = dao;
10     }

2.在dao里面添加代码

 1 package com.dao.impl;
 2 
 3 import com.dao.IUserDao;
 4 import com.domain.User;
 5 
 6 public class IUserDaoImpl implements IUserDao {
 7 
 8     @Override
 9     public void save(User user) {
10         // TODO Auto-generated method stub
11         System.out.println("哇塞,保存用户信息了");
12         
13         System.out.println("用户名是:"+user.getUname());
14         System.out.println("邮箱是:"+user.getEmail());
15     }
16 
17 }

3.配置spring配置文件

1 <!-- 给属性赋值 -->
2     <bean id="users" class="com.domain.User" p:email="mr_myh@126.com" p:uname="大师兄"></bean>
3     <bean id="udao" class="com.dao.impl.IUserDaoImpl"></bean>
4     <!-- 引入udao -->
5     <bean id="biz" class="com.biz.impl.IUserBizImpl" p:dao-ref="udao"></bean>
6     

4.测试类

 1 package com.test;
 2 
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6 import com.biz.IUserBiz;
 7 import com.domain.User;
 8 
 9 /**
10  * 
11  * @author Mr
12  * aop测试类
13  */
14 public class Test {
15 
16     public static void main(String[] args) {
17         //解析配置文件
18         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
19         
20         IUserBiz biz = (IUserBiz) ac.getBean("biz");
        //users来自于spring配置文件
21 User users = (User) ac.getBean("users"); 22 biz.save(users); 23 } 24 25 }

5.测试效果

 

以上是关于p命名空间注入的主要内容,如果未能解决你的问题,请参考以下文章

Spring的依赖注入之p命名空间和c命名空间

Spring框架-使用P命名空间进行注入

p命名空间简化属性依赖注入之setter方法

Spring入门-----7依赖注入之c命名和p命名空间注入

从头认识Spring-1.10 使用命名空间p来注入属性

spring之p命名空间注入