关于Spring配置文件的问题

xping0211 2012-04-12 09:54:56
我是新手,在做实现增删改查的功能的模块,spring文件有问题,大家帮看看,小女感激不尽!
applicationContext.xml
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="UserUpdateInterceptor"
class="com.hollycrm.hollyv8.zsptest.zsp.service.UserUpdateInterceptor" />

<bean id="zsptest"
class="org.springframework.aop.framework.ProxyFactoryBean">
</bean>

<bean id="UserManagerDao" class="com.experiment.Dao.DapImpl.UserManagerDaoImpl">
<property name="zsptest" ref ="zsptest"></property>
</bean>

<bean id="UserManagerService" class="com.hollycrm.hollyv8.zsptest.zsp.service.impl.UserManagerServiceImpl">
<property name="userManagerDao" value="UserManagerDao" ></property>
</bean>
</beans>

错误如下:
2012-4-12 9:48:30 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'UserManagerDao' defined in class path resource [applicationContext-zsptest.xml]: Cannot resolve reference to bean 'zsptest' while setting bean property 'zsptest'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'zsptest': org.springframework.beans.factory.FactoryBeanNotInitializedException: Cannot determine target class for proxy
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'zsptest': org.springframework.beans.factory.FactoryBeanNotInitializedException: Cannot determine target class for proxy
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport$1.run(FactoryBeanRegistrySupport.java:124)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:116)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:91)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1288)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:217)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
... 42 more
2012-4-12 9:48:30 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
package com.experiment.Dao.DapImpl;
import ...;
public class UserManagerDaoImpl implements UserManagerDao {
private SessionFactory sessionFactory ;
private HibernateTemplate hibernateTemplate = null;
public void setSessionFactory(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory ;
}
public SessionFactory getSessionFactory(){
return this.sessionFactory ;
}
public HibernateTemplate getHibernateTemplate()

{
if (hibernateTemplate == null)

{ hibernateTemplate = new HibernateTemplate(sessionFactory);

}
return hibernateTemplate;

}
public void add(UserInfo user) {

this.getHibernateTemplate().save( user) ;
}

public UserInfo getUserInfo(String id) {

return (UserInfo) this.getHibernateTemplate().get(UserInfo.class, id) ;
}

@SuppressWarnings("unchecked")
public List<UserInfo> getUserInfos() {

return this.getHibernateTemplate().find("from USERTABLE order by id" ) ;
}

public void delete(String id) {

this.getHibernateTemplate().delete(this.getUserInfo(id)) ;
}

public void saveOrUpdate(UserInfo user) {

this.getHibernateTemplate().saveOrUpdate(user) ;
}

@SuppressWarnings("unchecked")
public List<UserInfo> getUserInfo(String account, String name) {

Object values[] ={account, name} ;
System.out.println("查询的结果是:"+ account + " "+ name) ;
return this.getHibernateTemplate().find("from USERTABLE e where e.account=? and e.name=? order by id", values) ;

}
@Override
public String query() {
// TODO Auto-generated method stub
DefaultBeanFactory.getBean("");
return null;
}
}
...全文
355 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序员Monkey 2012-04-12
  • 打赏
  • 举报
回复
<bean id="zsptest"
class="org.springframework.aop.framework.ProxyFactoryBean">
</bean>

<bean id="UserManagerDao" class="com.experiment.Dao.DapImpl.UserManagerDaoImpl">
<property name="zsptest" ref ="zsptest"></property>
</bean>
因为你UserManagerDao中引用了一个zsptest属性,所以在UserManagerDao中需要定义这个属性,让Spring框架能够帮你注入进去。
xping0211 2012-04-12
  • 打赏
  • 举报
回复
谁来帮帮我啊?呜呜呜。。。
xping0211 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
你看这个类里面有没有 zsptest?
[/Quote]
没有啊,我不太懂,这个应该怎样改呢?

<bean id="UserManagerDao" class="com.experiment.Dao.DapImpl.UserManagerDaoImpl">
<property name="zsptest" ref ="zsptest"></property>
</bean>

<bean id="UserManagerService" class="com.hollycrm.hollyv8.zsptest.zsp.service.impl.UserManagerServiceImpl">
<property name="userManagerDao" value="UserManagerDao" ></property>
</bean>
shixitong 2012-04-12
  • 打赏
  • 举报
回复
你看这个类里面有没有 zsptest?
xping0211 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
把UserManagerDao 贴出来
[/Quote]

package com.hollycrm.hollyv8.zsptest.zsp.Dao;

import java.util.List;
import com.hollycrm.hollyv8.zsptest.zsp.vo.UserInfo;
public interface UserManagerDao {
public void add(UserInfo user) ;
public UserInfo getUserInfo(String id) ;
public List< UserInfo> getUserInfos() ;
public void delete(String id ) ;
public void saveOrUpdate(UserInfo user) ;
public List< UserInfo> getUserInfo(String account, String name) ;
public String query();
}


shixitong 2012-04-12
  • 打赏
  • 举报
回复
把UserManagerDao 贴出来
xping0211 2012-04-12
  • 打赏
  • 举报
回复
问题解决了,谢谢大家的热心帮助!
minxiaohui1 2012-04-12
  • 打赏
  • 举报
回复
userDao里面没有zsptest的get,set方法。在这个类中加上它的get,set方法就可以了。
fengwind1 2012-04-12
  • 打赏
  • 举报
回复
具体怎么配不知道,百度下spring 2.x 配置事务
原因是在你实例化代理的时候这个代理不知道该代理谁
http://www.blogjava.net/robbie/archive/2009/04/05/264003.html
看看这篇文字你就懂了,你的应该是第一种配置模式
zhangxiaoyan06 2012-04-12
  • 打赏
  • 举报
回复

<bean id="userDao" class="com.hollycrm.hollyv8.zsptest.zsp.Dao.DapImpl.UserManagerDaoImpl">
<property name="zsptest">
<ref bean="zsptest"/></property>
</bean>

zsptest 这个属性在UserManagerDaoImpl中没有用到过的吧!
把这个属性删了

<bean id="userDao" class="com.hollycrm.hollyv8.zsptest.zsp.Dao.DapImpl.UserManagerDaoImpl">

</bean>

private SessionFactory sessionFactory ;
private HibernateTemplate hibernateTemplate = null;
这两个属性的值如果要注入的话

<bean id="userDao" class="com.hollycrm.hollyv8.zsptest.zsp.Dao.DapImpl.UserManagerDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
<property name="hibernateTemplate" ref="hibernateTemplate"/>
</bean>
xping0211 2012-04-12
  • 打赏
  • 举报
回复
这是UserManagerServiceImpl.java文件

package com.hollycrm.hollyv8.zsptest.zsp.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.hollycrm.framework.DefaultBeanFactory;
import com.hollycrm.hollyv8.zsptest.zsp.Dao.UserManagerDao;
import com.hollycrm.hollyv8.zsptest.zsp.service.UserManagerService;
import com.hollycrm.hollyv8.zsptest.zsp.vo.UserInfo;

public class UserManagerServiceImpl implements UserManagerService {
private UserManagerDao userDao;

public void setUserManagerDao(UserManagerDao userDao){

this.userDao = userDao ;
}
public UserManagerDao getUserManagerDao(){

return this.userDao ;
}


public void addUser(UserInfo user) {

this.userDao.add(user) ;

}

public void deleteUser(String id) {
// TODO Auto-generated method stub
this.userDao.delete(id) ;
}
public UserInfo getUser(String id) {
// TODO Auto-generated method stub
return this.userDao.getUserInfo(id);
}
public UserInfo getUser(String name, String account) {
// TODO Auto-generated method stub
List<UserInfo> list = this.userDao.getUserInfo(name, account);
if(list != null&&list.size() > 0){
return list.get(0);
}else{
return null;
}
}
public List<UserInfo> listUser() {
// TODO Auto-generated method stub
return this.userDao.getUserInfos();
}
public void saveOrUpdate(UserInfo user) {
// TODO Auto-generated method stub
this.userDao.saveOrUpdate(user);
}
public UserInfo query(){
return this.userDao.query();
}

}
xping0211 2012-04-12
  • 打赏
  • 举报
回复
我在UserManagerDaoImpl.java中增加了代码
private UserManagerDao userManagerDao; 
public void setUserManagerDao(UserManagerDao userManagerDao) {
this.userManagerDao = userManagerDao;
}
public UserManagerDao getUserManagerDao() {
return userManagerDao;
}


applicationContext.xml中作下面修改,还是有错误
<bean id="zsptest"
class="org.springframework.aop.framework.ProxyFactoryBean">
</bean>


<bean id="userDao" class="com.hollycrm.hollyv8.zsptest.zsp.Dao.DapImpl.UserManagerDaoImpl">
<property name="zsptest">
<ref bean="zsptest"/></property>
</bean>

<bean id="UserManagerService" class="com.hollycrm.hollyv8.zsptest.zsp.service.impl.UserManagerServiceImpl">
<property name="userDao"><ref bean="userDao" /></property>
</bean>


错误如下:
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in class path resource [applicationContext-zsptest.xml]: Cannot resolve reference to bean 'zsptest' while setting bean property 'zsptest'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'zsptest': org.springframework.beans.factory.FactoryBeanNotInitializedException: Cannot determine target class for proxy

这到底是怎么回事呢?
cybloveqcl 2012-04-12
  • 打赏
  • 举报
回复
补充一下 刚刚写错了 你把application.xml文件的
<bean id="UserManagerService" class="com.hollycrm.hollyv8.zsptest.zsp.service.impl.UserManagerServiceImpl">
<property name="userManagerDao" value="UserManagerDao" ></property>
</bean>
把value改成ref=“userManagerDao” 此外把
<bean id="UserManagerDao" class="com.experiment.Dao.DapImpl.UserManagerDaoImpl">
<property name="zsptest" ref ="zsptest"></property>
</bean>
改成
<bean id="userManagerDao" class="com.experiment.Dao.DapImpl.UserManagerDaoImpl">
<property name="zsptest" ref ="zsptest"></property>
</bean>
cybloveqcl 2012-04-12
  • 打赏
  • 举报
回复
把配置文件改成
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="UserUpdateInterceptor"
class="com.hollycrm.hollyv8.zsptest.zsp.service.UserUpdateInterceptor" />

<bean id="zsptest"
class="org.springframework.aop.framework.ProxyFactoryBean">
</bean>

<bean id="UserManagerDao" class="com.experiment.Dao.DapImpl.UserManagerDaoImpl">
<property name="zsptest" ref ="zsptest"></property>
</bean>

<bean id="UserManagerService" class="com.hollycrm.hollyv8.zsptest.zsp.service.impl.UserManagerServiceImpl">
<property name="userManagerDao" ref="UserManagerDao" ></property>
</bean>
</beans>

同时 在你的实现类里面 定义一个 private UserManagerDao userManagerDao;
然后写它的set方法即可···


xping0211 2012-04-12
  • 打赏
  • 举报
回复
	<bean id="zsptest"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="targetObject">
<ref local="zsptest"/>
</property>
<property name="targetMethod">
<value>getUserInfos()</value>
</property>
</bean>



我把这一段改成上面这样,还是不行。
xping0211 2012-04-12
  • 打赏
  • 举报
回复
7楼的意思是只要在applicationContext.xml文件中改代码就可以吗?

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧