p命名空間注入的特色是使用屬性而不是子元素的形式配置Bean的屬性,從而簡化了配置代碼。spring
使用前要在spring配置文件中引入p命名空間app
xmlns:p="http://www.springframework.org/schema/p"dom
下面看示例:ide
biz裏面要有setter訪問器(與設值注入的代碼相同)測試
1.biz代碼this
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裏面添加代碼spa
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配置文件code
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.測試類xml
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.測試效果blog