先来个简单的例子//用户biz的接口
public interface IUsersBiz extends IBiz {
public Users login(Users users);
}//用户biz的实现类
public class IUsersBizImpl extends IBizProxy implements IUsersBiz {
public Users login(Users users) {
System.out.println("登陆");
}
spring配置注入bean <bean id="userBiz" class="fx.crm.biz.impl.IUsersBizImpl">
<property name="daoImpl" ref="daoImpl" />
</bean>
<bean name="/user" class="fx.crm.web.action.UserAction" parent="baseAction">
<property name="usersBiz" ref="userBiz" />
</bean>
UserAction里面这样写就没有问题private IUsersBiz userBiz;
但是改成这样声明的话tomcat启动就报错private IUsersBizImpl userBiz;
按道理讲IUsersBizImpl是IUsersBiz的实现类,用IUsersBiz声明没有问题,
但IUsersBizImpl同样也是IBizProxy的子类,为什么用IBizProxy声明就不行了,
public interface IUsersBiz extends IBiz {
public Users login(Users users);
}//用户biz的实现类
public class IUsersBizImpl extends IBizProxy implements IUsersBiz {
public Users login(Users users) {
System.out.println("登陆");
}
spring配置注入bean <bean id="userBiz" class="fx.crm.biz.impl.IUsersBizImpl">
<property name="daoImpl" ref="daoImpl" />
</bean>
<bean name="/user" class="fx.crm.web.action.UserAction" parent="baseAction">
<property name="usersBiz" ref="userBiz" />
</bean>
UserAction里面这样写就没有问题private IUsersBiz userBiz;
但是改成这样声明的话tomcat启动就报错private IUsersBizImpl userBiz;
按道理讲IUsersBizImpl是IUsersBiz的实现类,用IUsersBiz声明没有问题,
但IUsersBizImpl同样也是IBizProxy的子类,为什么用IBizProxy声明就不行了,
解决方案 »
- 求前辈指导学一些哪方面的技术
- JSP页面跳转显示数据问题!弄了几天了!求解决
- tomcat启动正常,http://localhost:8080打不开,但127.0.0.1:8080能正常显示
- 小弟要做jsp了,请大家推荐本好书!
- www.88doc.com 意见征集先散50分差不多的意见一律给分,不够以后还散!
- 求一个将RESIN3.1.2加入Myeclipse 6.0中的方法和配置文件数据库用得是SQL 2005
- 求救:关于javabean的问题
- 问题搞定散分了。 joinCSDN来领分了。来者都有分。
- 已经配置好了tomcat,怎么运行servlet呢?
- Tomcat配置SSL时出现的问题
- 请问如果在jsp页面内将所调用的exe程序嵌套在页面的某个位置?
- 最近要做个可以自定义审核流程,请各位大侠给点指点
<bean id="userBiz" class="fx.crm.biz.impl.IUsersBizImpl">
...
</bean>
有何意义???当然这也肯定会出错```因为userBiz是已知一个对象的引用,这里spring再去配置它的实现,这不是多余了???所以在tomcat启动时会报错是正常的```(tomcat启动时会扫描spring的配置文件)
楼主您是不是在配置中对你的Bean时使用了AOP拦截机制,比如说你配置过事务管理或者自己添加过拦截器,再或者说你使用了动态代理。因为Spring默认的动态代理是使用JDK自带的,比如我们在对DAO添加事务管理的时候实际上Spring就对DAO启用了动态代理,而JDK动态代理的一大缺陷就是必须要求被代理的对象有至少一个接口,所以这个时候你使用实现类签名的话,Spring配置文件的解析是会报错的。除非我们使用另外一种方式:CGLIB代理,这种是不要求代理对象实现接口的,但并非Spring的默认方式。如果并无动态代理的介入,无论用实现类还是接口签名注入Spring都不会出问题,我已经试过了!
<bean id="userBiz" class="fx.crm.biz.impl.IUsersBizImpl">
<property name="daoImpl" ref="daoImpl" />
</bean>
<bean name="/user" class="fx.crm.web.action.UserAction" parent="baseAction">
<property name="usersBiz" ref="userBiz" />
</bean>
你这个配置不完整啊
我不让IUsersBizImpl继承IUsersBiz就没有问题,
可以加你QQ吗?想详细的讨论下