問題タブ [spring-4]
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.
java - Spring 4 条件付き - リソースへのアクセス
spring 4 で最初のステップを実行するために、この記事に従って @Conditional アノテーションを試しました。
私の問題 - クラス OnSystemPropertyCondition のメソッド一致からクラスパス リソース (基本的にはプロパティ ファイル) にアクセスしたいと考えています。
これを行うために、現在、match メソッドが呼び出されるたびに必要なプロパティ ファイルをロードしています (これは、ConditionalOnSystemProperty アノテーションが付けられたすべてのクラスを意味します)。これは少し醜いです。洗練された解決策は、リソースまたは一部のプロパティを ( @Value アノテーションを使用して) 単純に自動配線することだと思いましたが、このクラスは Bean の前にインスタンス化されるため、これは実行できません。
このリソースを何度もリロードするのを避けるのに役立つ提案はありますか?
spring - Spring 4 と JSF ViewScope
Spring 3 および JSF 2.0 では、JSF ビュー スコープを使用したい場合、カスタム ViewScope 実装を導入し、Spring に CustomScopeConfigurer を介してそれを取得するように指示する必要がありました。
Spring 4 は、この面での JSF 統合において何らかの進歩を遂げましたか? それとも、Spring マネージド Bean でビュー スコープを活用するためにカスタム ViewScope 実装を定義する必要がありますか?
spring-aop - メソッドがプロキシでラップされていても、「org.hibernate.HibernateException: No Session found for current thread」
次のエラーが表示されます。
関連する春の設定:
いいえhibernate.current_session_context_class
。
ご覧のとおり、メソッドはプロキシでラップされていますが、まだセッションが見つかりません! このメソッドは、コントローラーメソッドではなくスケジューラーのジョブによって実行され、Spring コンテキストから daos などを取得します。トランザクションなどは、@transactional を使用しているコントローラー メソッドでうまく機能しています。
バージョン: hibernate-4.3.5、spring-4.0.4
手がかりをいただければ幸いです。
spring - Spring 4 STOMPが接続時にヘッダーにキューサフィックスを送信しない
Websockets と RabbitMQ をブローカーとして Spring MVC 4 を使用する小さなプロジェクトを作成しました。単一のユーザー (convertAndSendToUser) に送り返そうとしていますが、機能していないようです。アプリケーションの機能は次のとおりです。
- HTTP 経由で Spring Security に認証します。認証は AJAX を介して行われ、バックエンドはすべての新しい接続にユーザー名として UUID を割り当てます。同じユーザー名を持つ複数のクライアントが存在する可能性があるため、同じユーザー名でログインしている可能性がありますが、個々のブラウザーをターゲットにできるようにしたいと考えています。
AJAX で認証した後、webapp は Websocket で STOMP を使用して API に接続します。これらは、CONNECT FRAME で送り返されるヘッダーです。
body: "" command: "CONNECTED" headers: Object heart-beat: "0,0" server: "RabbitMQ/3.3.1" session: "session-OGzAN6T8Y0X9ft3Jq04fiQ" user-name: "88dc9424-72e3-4814-be8c- e31dbf89b521" バージョン: "1.1"
ご覧のとおり、frame-suffixまたは session-id フィールドはありません。
- バックエンドから convertAndSendToUser を使用すると、応答は /exchange/jobs-userh6g_48h9 のような一意のキューに送信されます。キュー名は /exchange/jobs ですが、Spring は自動的にサフィックス-userh6g_48h9を付加します。ユーザー名は "user" で、sessionId は "h6g_48h9" です。これで問題ありません。この動作が必要ですが、問題は、クライアント (webapp) が CONNECT フレームでこのセッション ID を取得せず、取得する方法がないことです。実際にその一意のキューにサブスクライブします。
これを解決するには?クライアントがこのサフィックスを取得して、独自のキューにサブスクライブできるように、接続時にキュー サフィックス/セッション ID が返されます。現在、この情報が不足しているため、サーバーからメッセージが返されません。
java - サービス中のスプリング アクセス セキュリティ コンテキスト
Spring 4 アプリケーションの構成によってトリガーされるSecurityContext
オブジェクトにアクセスしようとしています。これは 内では機能しませんが、構成では問題なく機能します。@Service
@Schedule
@Service
@Controller
に同じセキュリティ コンテキスト参照をロードするにはどうすればよい@Service
ですか?
コンテキストにアクセスするために使用しているコードは次のとおりです。
出力は非常に単純です。
のうち
@Controller
:org.springframework.security.core.context.SecurityContextImpl@ffffffff: Null authentication
で
@Controller
:org.springframework.security.core.context.SecurityContextImpl@cf8b0421: Authentication: ....@cf8b0421: Principal: ....@1cd97f9; Credentials: [PROTECTED]; Authenticated: false; Details: ....t@60b45d5b; Granted Authorities: ....
私web.xml
は:
私のapplicationContext.xml
ファイルは次のようになります。
java - 別の非同期メソッドから呼び出される Spring 非同期メソッド
Spring 4 を使用していますが、奇妙な動作に気付きました...通常のインスタンス メソッドから async メソッドを複数回呼び出すと、それらはすべて異なるスレッドで呼び出され、ランダムな時間に終了します。しかし、別の非同期メソッドから非同期メソッドを複数回呼び出すと、順番に終了します。私はこのようなものを持っています:
デフォルトの非同期エグゼキュータを使用しています。別のものを使用する必要がありますか?ただし、このエグゼキュータはスレッドを再利用せず、毎回別のスレッドを開始するため、問題ないはずです...単なる偶然でしょうか? しかし、私は10回以上試しましたが、最初の方法で非非同期に戻すと、ランダムに終了します
spring-mvc - Jackson JSON - 作成時に非整列化するが、更新時に無視する
Spring 4 を使用して、リソース (以下の例の A) に、REST 更新 (http put および patch) を使用するときに無視する必要があるプロパティがあるユースケースがあります。プロパティは、作成時にのみ値を持つことができます (http 投稿)。そのため、 createでのアンマーシャリングではそのプロパティを考慮する必要がありますが、 update では無視する必要があります。
コントローラーで
私が考えることができる 1 つの方法 (そして非常に洗練されていない方法) は、アンマーシャルを実行できるようにすることですが、更新メソッド内で strOnCreateOnly を手動で元の値に設定します。
しかし、Spring 4 と Jackson を使用して構成可能な方法はありますか (たとえば、注釈を使用し、非整列化からプロパティを無視するなど)? API の呼び出し元にエラーを送り返し、strOnCreateOnly の更新は許可されていないことを伝えても問題ありません。
java - Spring 4 例外処理 : 引数に適したリゾルバーがありません
問題文
Spring 4
fromへの移行によりSpring 3
、例外処理フローでいくつかの例外が発生します。例外はNo suitable resolver for argument
クラスでorg.springframework.web.method.support.InvocableHandlerMethod
言います。
したがって、例外が発生するたびに、Spring
取得する例外ハンドラーを見つけようとしますが、メソッド引数または例外ハンドラーを設定しようとすると、以下の例外がスローされます
@ExceptionHandler メソッドの呼び出しに失敗しました:
HandlerMethod の詳細:
基本的には@CRequestParam("p") String p
変数用です
コード
コントローラ
例外ハンドラ
注釈
パラメータ リゾルバ
XML 構成
ソースコード
spring - Struts2 と Spring の統合による java.lang.IncompatibleClassChangeError
Spring 4.0.6 を struts 2.3.1.2 アプリケーションに統合しようとしています。これはmaven POMです:
これは、struts.xml の関連部分です。
最後に、これは春の applicationContext.xml です。
Spring アノテーションを使用してサービス レイヤーを構成しようとしていますが、次の起動例外が発生します。
struts2-spring プラグインは spring 4.0.6 と互換性がないのでしょうか?? 私は何が欠けていますか?
spring - Mybatis は Spring 4.x でサポートされていますか?
mybatis 3.2.5 および Spring バージョン 4.1.0.Release で mybatis-spring 1.2.2 を試しましたが、サポートされていないようです。
mybatis-spring 1.2.2 spring にはorg.springframework.core.MethodParameter
クラスが含まれていますが、getContainingClass()
存在しません。
私は例外を取得しています:
java.lang.NoSuchMethodError: org.springframework.core.MethodParameter.getContainingClass()
Spring 4xでMybatisを使用できるという考えはありますか? (アイバティスでも未対応のようです)