Spring框架如何使用P命名空间进行注入
这篇文章主要介绍了Spring框架如何使用P命名空间进行注入,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
这里需要注意的一点是,P命名空间进行注入,是建立在设值注入的基础上的,也就是说,一定要有setter方法才行,同时还要引入P命名空间的头信息(这点千万别忘记了)
典型的三层架构:
packagedao;
importentity.User;
/**
*增加DAO接口,定义了所需的持久化方法
*/
publicinterfaceUserDao{
publicvoidsave(Useruser);
}
packagedao.impl;
importdao.UserDao;
importentity.User;
/**
*用户DAO类,实现IDao接口,负责User类的持久化操作
*/
publicclassUserDaoImplimplementsUserDao{
publicvoidsave(Useruser){
//这里并未实现完整的数据库操作,仅为说明问题
System.out.println("保存用户信息到数据库");
}
}
packageservice;
importentity.User;
/**
*用户业务接口,定义了所需的业务方法
*/
publicinterfaceUserService{
publicvoidaddNewUser(Useruser);
}
packageservice.impl;
importservice.UserService;
importdao.UserDao;
importentity.User;
/**
*用户业务类,实现对User功能的业务管理
*/
publicclassUserServiceImplimplementsUserService{
//声明接口类型的引用,和具体实现类解耦合
privateUserDaodao;
//生成无参构造方法
publicUserServiceImpl(){
}
//带参数构造方法为dao进行赋值
publicUserServiceImpl(UserDaodao){
this.dao=dao;
}
publicUserDaogetDao(){
returndao;
}
//dao属性的setter访问器,会被Spring调用,实现设值注入
publicvoidsetDao(UserDaodao){
this.dao=dao;
}
publicvoidaddNewUser(Useruser){
//调用用户DAO的方法保存用户信息
dao.save(user);
System.out.println("注入进去的user对象的信息是:"+user.toString());
}
}
实体类:(这里也进行了相应的改动)
packageentity;
/**
*用户实体类
*/
publicclassUserimplementsjava.io.Serializable{
privateIntegerid;//用户ID
privateStringusername;//用户名
privateStringpassword;//密码
privateStringemail;//电子邮件
privateintage;//年龄
@Override
publicStringtoString(){
return"User[id="+id+",username="+username+",password="
+password+",email="+email+",age="+age
+",getAge()="+getAge()+",getId()="+getId()
+",getUsername()="+getUsername()+",getPassword()="
+getPassword()+",getEmail()="+getEmail()
+",getClass()="+getClass()+",hashCode()="+hashCode()
+",toString()="+super.toString()+"]";
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
//getter&setter
publicIntegergetId(){
returnid;
}
publicvoidsetId(Integerid){
this.id=id;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringgetEmail(){
returnemail;
}
publicvoidsetEmail(Stringemail){
this.email=email;
}
}
编写测试方法:
packagetest;
importorg.junit.Test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
importservice.UserService;
importservice.impl.UserServiceImpl;
importentity.User;
publicclassAopTest{
@Test
publicvoidaopTest(){
ApplicationContextctx=newClassPathXmlApplicationContext("applicationContext.xml");
UserServiceservice=(UserService)ctx.getBean("userService");
Useruser=(User)ctx.getBean("user");
service.addNewUser(user);
}
}
运行结果:
保存用户信息到数据库
注入进去的user对象的信息是:User[id=null,username=强强,password=22222,email=1111@qq.com,age=15,getAge()=15,getId()=null,getUsername()=强强,getPassword()=22222,getEmail()=1111@qq.com,getClass()=classentity.User,hashCode()=1032986144,toString()=entity.User@3d921e20]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。