Spring 3.1:DataSource 未自动连接到 @Configuration 类

2024-01-06

我正在使用 Spring MVC 3.1.0M2 并尝试将我的配置移动到 java beans。但我遇到以下错误:

2011-09-14 18:43:42.301:警告:/:不可用的org.springframework.beans.factory.BeanCreationException:创建名称为“org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration#0”的bean时出错:自动装配依赖项的注入失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配方法:void org.springframework.transaction.annotation.AbstractTransactionManagementConfiguration.setConfigurers(java.util.Collection);嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建类 ru.mystamps.web.config.DbConfig 中定义的名为“entityManagerFactory”的 bean 时出错:bean 实例化失败;嵌套异常是 org.springframework.beans.factory.BeanDefinitionStoreException:工厂方法 [public org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean ru.mystamps.web.config.DbConfig.entityManagerFactory()] 抛出异常;嵌套异常是 java.lang.IllegalArgumentException:DataSource 不能为 null

映射自web.xml:

<context-param>
    <param-name>spring.profiles.default</param-name>
    <param-value>dev</param-value>
</context-param>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextClass</param-name>
        <param-value>
            org.springframework.web.context.support.AnnotationConfigWebApplicationContext
        </param-value>
    </init-param>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            ru.mystamps.web.config.MvcConfig,
            ru.mystamps.web.config.DbConfig
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

DbConfig.java:

@Configuration
@EnableTransactionManagement
@ImportResource("classpath:spring/datasource.xml")
public class DbConfig {

    @Autowired
    private DataSource dataSource;

    @Bean
    public JpaVendorAdapter jpaVendorAdapter() {
        final HibernateJpaVendorAdapter jpaVendorAdapter =
            new HibernateJpaVendorAdapter();

        jpaVendorAdapter.setDatabasePlatform(dialectClassName);
        jpaVendorAdapter.setShowSql(showSql);

        return jpaVendorAdapter;
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        final LocalContainerEntityManagerFactoryBean entityManagerFactory =
            new LocalContainerEntityManagerFactoryBean();

        entityManagerFactory.setJpaVendorAdapter(jpaVendorAdapter());
        entityManagerFactory.setDataSource(dataSource);

        final Map<String, String> jpaProperties = new HashMap<String, String>();
        jpaProperties.put("hibernate.format_sql", formatSql);
        jpaProperties.put("hibernate.connection.charset", "UTF-8");
        jpaProperties.put("hibernate.hbm2ddl.auto", hbm2ddl);
        entityManagerFactory.setJpaPropertyMap(jpaProperties);

        return entityManagerFactory;
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        final JpaTransactionManager transactionManager =
            new JpaTransactionManager();

        transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());

        return transactionManager;
    }

    ...
}

spring/datasource.xml:

<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"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.1.xsd
    http://www.springframework.org/schema/jdbc
    http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd">

    <context:property-placeholder location="classpath:spring/database.properties" />

    <beans profile="dev">
        <bean id="dataSource"
            class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method="close">
            <property name="driverClassName" value="${db.driverClassName}" />
            <property name="url" value="${db.url}" />
            <property name="username" value="${db.username}" />
            <property name="password" value="${db.password}" />
        </bean>
    </beans>

    <beans profile="test">
        <jdbc:embedded-database id="dataSource" type="HSQL">
            <jdbc:script location="classpath:test-data.sql" />
        </jdbc:embedded-database>
    </beans>

</beans>

我期待那个豆子dataSource导入后会创建datasource.xml但我总是收到这个错误。

TIA


我找到了错误原因,只有当我手动定义时才会发生PersistenceAnnotationBeanPostProcessor:

   @Bean
   public PersistenceAnnotationBeanPostProcessor persistenceAnnotationBeanPostProcessor() {
           // enable injection of EntityManager to beans with @PersistenceContext annotation
           return new PersistenceAnnotationBeanPostProcessor();
   }

很抱歉,因为我没有在问题中发布完整的代码(因为我认为这个 bean 并不重要)。当我删除这个定义时,一切都按预期进行。我还发现在我的例子中这个bean已经被注册了:

注意:默认的 PersistenceAnnotationBeanPostProcessor 将由 “context:annotation-config”和“context:component-scan”XML 标签。 如果您愿意,请删除或关闭那里的默认注释配置 指定自定义 PersistenceAnnotationBeanPostProcessor bean 定义。

(引用来自org.springframework.orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java https://github.com/spring-projects/spring-framework/blob/0e5614289064a47a99758a95c8d9baa464ed9b56/org.springframework.orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java#L152)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring 3.1:DataSource 未自动连接到 @Configuration 类 的相关文章

  • 如何将jscrollpane添加到jframe?

    我有以下源代码 有人可以给我建议如何将 jscrollpane 添加到 jframe 上吗 我尝试了几次将其添加到 jframe 但没有任何进展 它甚至没有显示 public class Form3 JFrame jframe new JF
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • 为什么 MOVE CURSOR 在 OS X Mountain Lion 上不显示?

    我正在做一个项目 想看看 Swing 提供的每个光标是什么样子的 public class Test public static void main String args JFrame frame new JFrame frame set
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • Java:从集合中获取第一项

    如果我有一个集合 例如Collection
  • org/codehaus/plexus/archiver/jar/JarArchiver(不支持的major.minor版本49.0)-Maven构建错误

    下午大家 我在尝试构建项目时收到上述错误 我很确定这与使用 Java 1 6 编译的 Maven 最新更新有关 而我们尝试构建的项目是 1 4 项目 在此之前的插件工作没有问题 因此我将以下内容添加到 POM xml 文件中以尝试强制使用现
  • 当 minifyEnabled 为 true 时 Android 应用程序崩溃

    我正在使用多模块应用程序 并且该应用程序崩溃时minifyEnabled true in the installed模块的build gradle 以下是从游戏控制台检索到的反混淆堆栈跟踪 FATAL EXCEPTION Controlle
  • Java:如何确定文件所在的驱动器类型?

    Java 是否有一种独立于平台的方法来检测文件所在的驱动器类型 基本上我有兴趣区分 硬盘 可移动驱动器 如 USB 记忆棒 和网络共享 JNI JNA 解决方案不会有帮助 可以假设 Java 7 您可以使用 Java 执行 cmd fsut
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 我可以限制分布式应用程序发出的请求吗?

    我的应用程序发出 Web 服务请求 提供商处理的请求有最大速率 因此我需要限制它们 当应用程序在单个服务器上运行时 我曾经在应用程序级别执行此操作 一个对象跟踪到目前为止已发出的请求数量 并在当前请求超出允许的最大负载时等待 现在 我们正在
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • 源值 1.5 的错误已过时,将在未来版本中删除

    我使用 scala maven plugin 来编译包含 scala 和 java 代码的项目 我已经将源和目标设置为1 7 但不知道为什么maven仍然使用1 5 这是我在 pom xml 中的插件
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • 何时在 hibernate 中使用 DiscriminatorValue 注解

    在 hibernate 中使用 DiscriminatorValue 注释的最佳场景是什么以及何时 这两个链接最能帮助我理解继承概念 http docs oracle com javaee 6 tutorial doc bnbqn html
  • HttpClient请求设置属性问题

    我使用这个 HttpClient 库玩了一段时间 几周 我想以某种方式将属性设置为请求 不是参数而是属性 在我的 servlet 中 我想使用 Integer inte Integer request getAttribute obj 我不
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有
  • 如何使用通配符模拟泛型方法的行为

    我正在使用 EasyMock 3 2 我想基于 Spring Security 为我的部分安全系统编写一个测试 我想嘲笑Authentication http docs spring io autorepo docs spring secu
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要

随机推荐

  • 在数据库上创建程序集时部署 SQL CLR 项目失败

    我用来创建程序集的服务器上的文件夹中有一个包含 3 个 dll 文件的文件夹 我首先尝试了以下代码 并收到一个错误 表示在服务器上找不到 system data datasetextensions dll 文件 我将 dll 从我的计算机复
  • 如何共享对 Firebase Analytics 数据的访问而不暴露 Firebase 的其余部分?

    我知道如何向 Firebase 项目添加协作者 并且可以为每个协作者分配特定的角色 这些角色与某些权限相关联 然而 似乎没有一个角色符合我的要求 我想与非技术营销人员共享 Firebase Analytics 的访问权限 我必须避免将 Fi
  • IIS - 以编程方式重置 SSL 会话

    我有一个 IIS 7 5 Web 应用程序 客户端使用双向 又称双向 SSL 连接到该应用程序 客户端证书由智能卡提供 我需要让网络应用程序超时 当超时发生时 我想销毁 SSL 会话 假设在 IIS 上 从而强制客户端重新进行身份验证 如何
  • 原型点击、鼠标悬停和鼠标移开不能一起工作?

    我正在尝试做一个非常简单的按钮 它根据鼠标悬停 鼠标移出和改变颜色 单击 我正在原型中执行此操作 奇怪的是如果我使用鼠标悬停和鼠标移出 单击按钮后 按钮不会变为白色 似乎是因为鼠标移开 这是我的代码 izzy observe mouseov
  • 可以发出 cURL 请求并获取所采用的路由(类似于traceroute)

    我有一个带有标头参数的 GET 请求 我想检查我的应用程序正在使用哪个数据库实例 有没有办法构建一个 cURL 请求来告诉我我的请求要去哪里 我知道有一个traceroute显示所有服务器跃点的命令 但是有没有类似于使用 cURL 的东西呢
  • 垂直于给定点的线段

    我想计算给定线上与给定点垂直的点 我有一条线段AB 在线段外有一个点C 我想计算AB上的点D 使得CD垂直于AB 我必须找到D点 它非常类似于this https stackoverflow com questions 1811549 pe
  • 从 XIB 到故事板

    我有一个带有故事板和一个 xib 窗口的应用程序 从情节提要到 xib 我以这种方式移动 ShowDreamNIBController detailViewController ShowDreamNIBController alloc in
  • Java如何在jar环境而不是IDE中读取文件夹并列出该文件夹中的文件

    我的问题是我在 src 下创建一个文件夹 名称是 IconResources 在 IconResources 中有很多图片 目录是这样的 ProjectName src 套餐1 套餐2 IconResources 这是目标文件夹 我想列出所
  • ES6 之前的类中的静态函数

    我的问题 见下文 是如何声明 STATIC 函数和常量pre ES6类所以它们可以被继承 在问题之前我们已经对当前的 ES6 类和 ES6 之前的类进行了回顾 因此我们都使用相同的约定 在 ES6 之后 我们可以在类中定义静态函数 如下所示
  • 实时显示中表格的垂直溢出应滚动内容

    我正在使用一个Live https rich readthedocs io en stable live html显示内容Table https rich readthedocs io en stable tables html随着时间的推
  • 在 C++ 中获取文本文件的第 n 行

    我需要读取文本文件的第 n 行 例如textfile findline 0 会找到加载的文本文件的第一行ifstream textfile 这可能吗 我不需要将文件的内容放入数组 向量中 我只需将文本文件的特定行分配给变量 特别是 int
  • NSDate/NSDateFormatter - 只存储时间,不存储日期?

    我一直在环顾四周 但没有看到任何可以解决这个问题的东西 所以我希望有人可以帮助我解决这个问题 我想做的是使用 NSDate 变量 在核心数据中 来存储时间 而不是日期和时间 而只是格式为 HH MM SS 的时间 查看 NSDateForm
  • 相对于旋转角度的矩形坐标

    我正在尝试使用 Surfaceview 和画布绘图在 Android 中创建自定义组件 这些组件可以通过触摸来调整大小和旋转 考虑创建一个图像视图 其顶部 右侧 底部和左侧边缘可通过触摸并拖动所需边缘进行缩放 我在用RectF为了保持组件的
  • 创建创建组的 django 数据迁移的正确方法?

    我想创建创建权限和组的数据迁移 以便我的其他开发人员可以运行迁移并完成所有设置 我能够创建迁移并运行它们 但现在运行测试时出现错误 但如果我这样做 from django contrib auth models import Group d
  • C++ vtable 通过虚拟继承进行解析

    我对 C 和虚拟继承很好奇 特别是解决低音类和子类之间 vtable 冲突的方式 我不会假装了解它们如何工作的具体细节 但到目前为止我所看到的是 由于该分辨率 使用虚拟函数会导致一些小的延迟 我的问题是基类是否为空 即它的虚拟函数定义为 v
  • 使用 MPI 和 openMP 并行运行代码时扩展性较差

    我有以下实现 int main int argc char argv int n runs 100 Number of runs int seed 1 int arraySize 400 initialise the random numb
  • 您可以使用 Liquibase 初始化 Spring Batch 元数据表吗?

    目前我有如下设置 在本地运行批处理作业时 该作业将使用以下命令自动创建必要的元数据表 data source财产价值自initialize schema设置为始终 Liquibase 还将运行并创建其变更日志中列出的任何表 这是我的appl
  • SSL 证书验证失败 (_ssl.c:600)

    你知道这个错误吗 urlopen error SSL CERTIFICATE VERIFY FAILED certificate verify failed ssl c 600 This error occurred on my serve
  • 如何将 UIView 渲染到 CGContext 中

    我想将 UIView 渲染到 CGContextRef 中 void methodName CGContextRef ctx UIView someView UIView alloc init MagicalFunction ctx som
  • Spring 3.1:DataSource 未自动连接到 @Configuration 类

    我正在使用 Spring MVC 3 1 0M2 并尝试将我的配置移动到 java beans 但我遇到以下错误 2011 09 14 18 43 42 301 警告 不可用的org springframework beans factor