在实现类中用@Transactional
注释方法会引发此异常。
// Interface
public interface JobManager {
public void process(CommandLine parameters);
}
// Implementing class
public class UserJobManager implements JobManager{
@Transactional
@Override
public void process(CommandLine line) {
// Stuff here
}
}
Spring配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="benchmarkManager" class="com.test.userjobmanager.UserJobManager"/>
<tx:annotation-driven transaction-manager="transactionManager" order="10"/>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="readDataSource"/>
</bean>
<!-- other beans here -->
</beans>
当我访问bean时,就像:
JobManager jobManager = ac.getBean(UserJobManager.class);
我有以下线索:
线程"main"org.springframework.beans.factory.NoSuchBean定义异常:未定义[com.test.userjobmanager.UserJobManager]类型的唯一bean:预期单个bean但发现0:org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:269)org.springframework.context.support.AbstractApplication Context.getBean(AbstractApplication Context.java:1083)
如果我删除@Transactional
,它可以正常工作。我不确定这里有什么问题。
也许您正在使用创建合成类的代理技术。也就是说,您的事务性bean的真实类可能不再是UserJobManager
。我建议改为按名称访问bean:
JobManager jobManager = ac.getBean("benchmarkManager", JobManager.class)
现在在我的适配器项目中,我有CommonAdapter.java的实现类一个是EndecaAdapetr.java,另一个是SolarAdapter.java 现在在我的服务项目中,希望基于输入调用上述两个类的服务方法。
嗨,我是Spring的新手:我有一个与我的项目配置相关的问题; 这是我的控制器: 它是非常基本的,当我在服务器上运行它时,我得到了这个错误:
我的大多数测试都是在扩展BaseReport的具体类上进行的,没有任何问题: 这适用于所有扩展baseReport的类的autowiring。但是我还需要autowire抽象类本身BaseReport,以测试export()方法。 当我试图运行它时,我得到了臭名昭著的: 干杯。
我想通过类型使用自动连接,以便在运行时容器注入适当的对象并调用适当的bean/method。 1.接口 2.头等舱 4.Rest课 5.application-context.xml 错误:
spring应用程序无法启动,因为它无法在配置类中找到一个带有@Service注释的类的bean。但只有在我使用@Transactional注释特定服务类中的方法时才会出现这种情况。为什么会这样?