問題タブ [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 - 異なるxmlファイルのspringbeansとsessionFactory
3つの異なるSpring構成ファイルを使用する3つのアプリケーションがあります。しかし、データベースとデータソースが1つあるため、セッションファクトリが1つあります。セッションファクトリBeanを3つの異なるSpring構成ファイルにインポートするにはどうすればよいですか。
performance - ORM ソリューション (JPA; Hibernate) と JDBC の比較
インメモリ HSQL データベースで、5 秒ごとに少なくとも 8000 オブジェクトの一貫した速度でオブジェクトを挿入/更新できる必要があります。
Spring/Hibernate/JPA と純粋な JDBC の間でいくつかの比較パフォーマンス テストを行いました。HSQL を使用すると、パフォーマンスに大きな違いがあることがわかりました。Spring/Hib/JPA を使用すると、1.5 KB オブジェクト (1 対多および多対多の関係) を 5 秒で 3000 ~ 4000 個挿入できますが、直接ではJDBC 呼び出しでは、同じオブジェクトを 10,000 ~ 12,000 個挿入できます。
なぜこのような大きな違いがあるのか わかりません。Spring/Hib/JPA の設定を何度も微調整して、運が悪ければパフォーマンスに近づこうとしました。将来の目的、拡張性、および外部キー関係 (1 対多および多対多) を手動で維持するのが難しいため、Spring/Hib/JPA を使用したい。しかし、パフォーマンス要件は、純粋な JDBC の使用を指しているようです。
なぜこのような大きな違いが生じるのか、何か考えはありますか?
java - 注釈付きハイバネートを使用したコンパスの構成
JavaベースのWebアプリケーションにHibernateを使用しており、Compassを介して全文検索を追加したいと考えています。Compassはそれをサポートすることになっていますが、有用な入門ガイドを提供していません。
エンティティに@Searchableとさまざまな@SearchableXXXバリエーションで注釈を付け、HibernateHelper.getCompass(sessionFactory)を介してサービスコードのCompassにアクセスする必要があることがわかりました。
「コンパスイベントリスナーが構成されていません。リファレンスドキュメントとアプリケーションのhibernate.cfg.xmlを確認してください」というHibernateExceptionが発生します。
SpringのAnnotationSessionFactoryBeanを使用してHibernateを構成している間、リファレンスドキュメントは再びヒントとhibernate.cfg.xmlを示します。その場合、ドキュメントには次のように記載されています。「HibernateAnnotationsまたはHibernateEntityManager(JPA)が使用されている場合、Compass jarファイルをクラスパスにドロップするだけで有効になります(クラスパスでHibernateSearchが使用されていないことを確認してください。同じイベントクラス名)。」それは私にはうまくいきません。
私が見逃しているアイデアや、始めるための良いリソースはありますか?
java - 型の安全性: 未チェックのキャスト
春のアプリケーション コンテキスト ファイルには、次のようなものがあります。
Java クラスでは、実装は次のようになります。
Eclipse で、次のような警告が表示されます。
型の安全性: Object から HashMap<String,String> へのチェックされていないキャスト
何が悪かったのか?
java - Spring Workflow はもう試しましたか?
Spring Workflowが公開されました。
- もう試しましたか?どんなシチュエーションに?
- 感想は?他のワークフロー ライブラリと比べて、どのように優れていると思いますか?
- 適切なドキュメントやチュートリアルは見つかりましたか?
hibernate - 春の設定エラー
私のスプリングコンテキストファイルを以下に示します。
アプリケーションを実行しようとすると、次のエラーが表示されます。
誰かが私が間違っていることを教えてもらえますか?
java - JBoss と Spring を使用して Java Web アプリ間でビジネス オブジェクト インスタンスを共有する最良の方法は何ですか?
現在、ビジネス オブジェクト、DAO オブジェクト、および Hibernate のスタックをインスタンス化する Spring アプリケーション コンテキストをロードする Web アプリケーションがあります。このスタックを別の Web アプリケーションと共有して、同じオブジェクトのインスタンスが複数になるのを回避したいと考えています。
いくつかのアプローチを検討しました。JMX または JNDI、または EJB3 を使用してオブジェクトを公開します。
さまざまなアプローチにはすべて問題があり、軽量な方法を探しています。
これを解決する方法について何か提案はありますか?
編集:少し詳しく説明するように要求するコメントを受け取ったので、ここに行きます:
解決したい主な問題は、Hibernate のインスタンスを 1 つだけにしたいということです。これは、同じデータソースで動作する複数のクライアント アプリケーションを実行しているときに、Hibernate の第 2 レベル キャッシュが無効になるという問題によるものです。また、ビジネス/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 についてはまだ詳しく調べていませんが、最初の 2 回の試行の後、私たちが達成しようとしていることが本当に可能かどうか疑問に思っています。
私たちが達成しようとしていることを要約すると、1 つの JBoss インスタンス、DAO レイヤーと Hibernate の上でビジネス オブジェクトの 1 つのスタックを利用する複数の Web アプリです。
よろしくお願いします、
ニルス
java - Spring @Autowiring、オブジェクトファクトリを使用して実装を選択する方法は?
ランタイム状態の一部に、使用するインターフェイスの実装を決定させようとしています。できれば自動配線のみで決定します。
動的プロキシを使用するインターフェイス用のオブジェクトファクトリを作成しようとしましたが、修飾子を使用して @Autowired インジェクションを強制してファクトリを使用しました。ファクトリと実装の両方が同じインターフェイスに応答するため、修飾子が必要です。
これに関する問題は、すべての @Autowired 参照に @Qualifier で注釈を付けることになることです。私が本当にやりたいことは、@NotCandidateForAutowiringByInterface(私のファンタジーアノテーション)のようなもので非工場実装に注釈を付けることです。
ここではまったく間違った考えを持っている可能性があるため、別の提案を歓迎します。これを実現する方法を知っている人はいますか?
java - 休止状態とマージすると、ダーティ オブジェクトでエラーが発生する
アプリケーションでSpringでHibernateを使用しています。私は一貫してデタッチされたオブジェクトを使用しており、データベースを呼び出す必要があるときはいつでもそれらを再アタッチしています。休止状態のテンプレートを使用して、接続を管理しています。
私のデータ構造は次のとおりです。
次の呼び出しを行うと、classB または classC の一部の項目が変更された可能性があるため、エラーが発生します。
私が得るエラーは次のとおりです。
これがエラーを生成する理由を誰かに説明してもらえますか? 私が理解しているように、マージはツリー内のどのオブジェクトが変更されたかを判断し、それらを更新/削除/挿入し、他のオブジェクトを削除して再挿入しようとしないでください。しかし、これは classC 型のすべての要素を削除して再挿入しようとしているようです。
java - スプリング方式の交換を使用する実際のビジネスケースは?
Spring IoC コンテナーは、Bean のメソッドを置き換えるオプションを提供します。誰かがこの機能を使用して実際の問題を解決する実際の例を提供できますか?
これは、古いレガシ コード (ソースなし) をアプリで動作するように適応させるために使用されていることがわかります。しかし、Spring メソッド置換アプローチの代わりに、レガシー コードを直接使用してアダプター クラスを作成することを検討すると思います。