问题标签 [spring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - spring beans 和 sessionFactory 在不同的 xml 文件中
我们有 3 个应用程序使用 3 个不同的 spring 配置文件。但是我们有一个数据库和一个数据源,所以有一个会话工厂。我们如何将会话工厂 bean 导入到 3 个不同的 spring 配置文件中?
performance - ORM 解决方案(JPA;Hibernate)与 JDBC
我需要能够在内存 HSQL 数据库中以每 5 秒至少 8000 个对象的一致速率插入/更新对象。
我在 Spring/Hibernate/JPA 和纯 JDBC 之间做了一些比较性能测试。我发现使用 HSQL 在性能上有显着差异。使用 Spring/Hib/JPA,我可以在 5 秒内插入 3000-4000 个 1.5 KB 对象(具有一对多和多对多关系),而直接JDBC 调用我可以插入 10,000-12,000 个相同的对象。
我无法弄清楚为什么会有如此巨大的差异。我已经调整了 Spring/Hib/JPA 设置很多,试图在没有运气的情况下接近性能。我想将 Spring/Hib/JPA 用于未来用途、可扩展性,并且因为外键关系(一对多和多对多)难以手动维护;但性能要求似乎指向使用纯 JDBC。
关于为什么会有如此巨大的差异的任何想法?
java - 使用带注释的 Hibernate 配置 Compass
我正在将 Hibernate 用于基于 Java 的 Web 应用程序,并希望通过 Compass 添加全文搜索。Compass 应该支持这一点,但未能提供任何有用的入门指南。
我可以弄清楚我必须用@Searchable 和各种@SearchableXXX 变体注释我的实体,并通过HibernateHelper.getCompass(sessionFactory) 在我的服务代码中访问Compass。
我最终得到一个 HibernateException 说“未配置指南针事件侦听器,请检查参考文档和应用程序的 hibernate.cfg.xml”。
参考文档再次提示和 hibernate.cfg.xml,而我用 Spring 的 AnnotationSessionFactoryBean 配置 Hibernate。对于这种情况,文档中提到:“如果使用 Hibernate Annotations 或 Hibernate EntityManager (JPA),只需将 Compass jar 文件放到类路径中即可启用它(确保类路径中没有 Hibernate Search,因为它使用相同的事件类名称)。” 这对我不起作用。
我缺少什么想法或入门的好资源?
java - 类型安全:未经检查的演员表
在我的 spring 应用程序上下文文件中,我有类似的内容:
在 java 类中,实现如下所示:
在 Eclipse 中,我看到一条警告说:
类型安全:从 Object 到 HashMap<String,String> 的未经检查的强制转换
什么地方出了错?
java - 您是否已经尝试过 Spring Workflow?
Spring Workflow现已发布。
- 你试过了吗?适合什么样的场景?
- 你的印象是什么?您如何发现它与其他工作流库相比?
- 找到任何好的文档或教程?
hibernate - 弹簧配置错误
我的 spring-context 文件如下所示。
当我尝试运行我的应用程序时,我收到以下错误:
有人可以告诉我我做错了什么吗?
java - 使用 JBoss 和 Spring 在 Java Web 应用程序之间共享业务对象实例的最佳方式是什么?
我们目前有一个 Web 应用程序加载一个 Spring 应用程序上下文,它实例化一堆业务对象、DAO 对象和 Hibernate。我们希望与另一个 Web 应用程序共享此堆栈,以避免具有相同对象的多个实例。
我们研究了几种方法;使用 JMX 或 JNDI 或使用 EJB3 公开对象。
不同的方法都有自己的问题,我们正在寻找一种轻量级的方法。
关于如何解决这个问题的任何建议?
编辑:我收到了要求我详细说明的评论,所以这里是:
我们要解决的主要问题是我们只想拥有一个 Hibernate 实例。这是由于在运行多个使用相同数据源的客户端应用程序时,Hibernate 的二级缓存失效的问题。此外,业务/DAO/Hibernate 堆栈越来越大,因此不复制它更有意义。
首先,我们试图研究如何单独将业务层暴露给其他 Web 应用程序,Spring 以少量 XML 的价格提供了 JMX 包装。但是,我们无法将 JMX 实体绑定到 JNDI 树,因此我们无法从 Web 应用程序中查找对象。
然后我们尝试将业务层直接绑定到 JNDI。尽管 Spring 没有为此提供任何方法,但使用 JNDITemplate 绑定它们也很简单。但这导致了几个新问题: 1) 安全管理器拒绝访问 RMI 类加载器,因此一旦我们尝试调用 JNDI 资源上的方法,客户端就会失败。2) 一旦安全问题得到解决,JBoss 抛出 IllegalArgumentException: object is not an instance of declaring class。稍微阅读一下就会发现我们需要 JNDI 资源的存根实现,但这似乎很麻烦(也许 Spring 可以帮助我们?)
我们还没有过多地研究 EJB,但是在前两次尝试之后,我想知道我们想要实现的目标是否完全可能。
总结一下我们想要实现的目标:一个 JBoss 实例,几个 Web 应用程序利用 DAO 层和 Hibernate 之上的一组业务对象。
最好的祝福,
尼尔斯
java - Spring @Autowireing,如何使用对象工厂来选择实现?
我试图让一段运行时状态决定使用哪个接口实现,最好仅通过自动装配。
我已经尝试为使用动态代理的接口创建一个对象工厂,并且我使用限定符来强制@Autowired 注入使用工厂。限定符是必要的,因为工厂和实现都响应相同的接口。
问题是我最终用@Qualifier 注释了每个@Autowired 引用。我真正想做的是用@NotCandidateForAutowiringByInterface(我的幻想注释)之类的东西来注释非工厂实现,或者更好地让spring在注入到非限定字段时更喜欢单个非限定bean
我可能会在这里完全错误地思考,所以欢迎提出其他建议。有谁知道如何做到这一点?
java - 与休眠合并导致脏对象出错
我在我的应用程序中使用 Hibernate 和 Spring。我一直在使用分离的对象,并在需要调用数据库时重新附加它们。我正在使用休眠模板来为我管理连接。
我的数据结构如下:
当我进行以下调用时,可能 classB 或 classC 中的某些项目已更改,我收到错误消息:
我得到的错误是:
有人可以向我解释为什么这会产生错误吗?据我了解,合并应确定树中的哪些对象(如果有)已更改,并更新/删除/插入这些对象,而不是尝试删除和重新插入任何其他对象。但这似乎是试图删除所有 classC 类型的元素并重新插入它们。
java - 使用弹簧方法替换的真实商业案例?
Spring IoC 容器为您提供了替换 bean 方法的选项。有人可以提供使用此功能解决现实生活问题的真实生活示例吗?
我可以看到这用于调整旧的遗留代码(无源代码)以与您的应用程序一起使用。但我想我会考虑直接使用遗留代码而不是 Spring 方法替换方法编写一个适配器类。