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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。