Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Spring中如何配置Bean

本次讲述项目背景:创建Service类,Service下用到dao类。通过在Spring中配置bean,实现在项目启动时,自动加载这个类本次只讲述配置bean的注意事项,故只给出简单实例:创建Service:public class UserService { private UserDao userDao; public void setUserDao(UserDao userDao) {this.userDao = userDao; }public void init(){…… }}在applicationContext.xml下配置bean:<bean id="userService" class="com.gcs.service.UserService"init-method="init"><property name="config" > <ref local="UserDao" /></property> </bean><bean id="UserDao" class="com.gcs.dao.UserDao"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean>当配置结束后,系统一直报错,报错信息如下:org.springframework.beans.NotWritablePropertyException:Invalid property "config" of bean class []: Bean property "config" is not writable or has an invalid setter method.Does the parameter type of the setter match the return type of the getter?经过排查,发现问题原因:<bean id="userService" class="com.gcs.service.UserService"init-method="init"><property name="config" >--此处配置的name,应为userDao;与配置的类的实例名保持一致<ref local="UserDao" /></property> </bean> public class UserService { private UserDao userDao; public void setUserDao(UserDao userDao) {this.userDao = userDao; }public void init(){…… }}我的理解是这样的,在Java中从这个类操作另一个类,需要实例化,也就是 UserDao userDao=new UserDao();通过new出来的对象userDao来操作这个类,
而Spring通过配置,省去了去手动new,通过配置bean把dao类注入到service类中,但bean也应该符合Java面向对象的规则。
配置的bean中,<ref local="UserDao" /> 指向的是叫做UserDao的bean,相当于指向UserDao类,而<property name="userDao" > 则相当于获取实例化后的对象。
这样就成功的把dao类注入到service类中

注:这仅仅是我个人的理解,如有不同意见,请告知…… Spring中如何配置Hibernate事务 http://www.linuxidc.com/Linux/2013-12/93681.htmStruts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm基于 Spring 设计并实现 RESTful Web Services http://www.linuxidc.com/Linux/2013-10/91974.htmSpring-3.2.4 + Quartz-2.2.0集成实例 http://www.linuxidc.com/Linux/2013-10/91524.htm使用 Spring 进行单元测试 http://www.linuxidc.com/Linux/2013-09/89913.htm运用Spring注解实现Netty服务器端UDP应用程序 http://www.linuxidc.com/Linux/2013-09/89780.htmSpring 3.x 企业应用开发实战 PDF完整高清扫描版+源代码 http://www.linuxidc.com/Linux/2013-10/91357.htm本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-06/132327.htm