タグ付けされた質問 「spring」

Spring Frameworkは、Javaプラットフォームでのアプリケーション開発のためのオープンソースフレームワークです。中核となるのは、コンポーネントベースのアーキテクチャに対する豊富なサポートであり、現在、20を超える高度に統合されたモジュールを備えています。

14
SpringのApplicationContext.getBeanが悪いと考えられるのはなぜですか?
私は一般的なSpringの質問をしました:Spring Beanを自動キャストし、Springの呼び出しApplicationContext.getBean()はできるだけ避けるべきであると複数の人に回答してもらいました。何故ですか? Springが作成するように構成したBeanに他にどのようにアクセスする必要がありますか? 私は非WebアプリケーションでSpringを使用しており、LiorHで説明されているように共有ApplicationContextオブジェクトにアクセスすることを計画していました。 修正 私は以下の答えを受け入れますが、ここでは、依存性注入とサービスロケータを使用することのメリットについて議論するMartin Fowlerによる別の見解を示します(これは、本質的にはwrappedを呼び出すのと同じApplicationContext.getBean()です)。 Fowler氏は、次のように述べています。「サービスロケータを使用すると、アプリケーションクラスはロケータへのメッセージによって明示的に[サービス]を要求します。注入を使用すると、明示的な要求はなく、サービスはアプリケーションクラスに表示されます。つまり、制御が反転します。制御の反転はフレームワークの一般的な機能ですが、代償を伴うものです。デバッグしようとすると、理解が難しくなり、問題が発生する傾向があります。そのため、全体としては、[制御の反転]は避けたいと思います。 ]私はそれを必要とする場合は除きます。これは、私はそれがより簡単な代替の上に自分自身を正当化するために必要だと思いばかりということ、それは悪いことだと言っているわけではありません。」
270 java  spring 

12
パラメータ付きSpring RestTemplate GET
RESTカスタムヘッダーとクエリパラメーターを含む呼び出しを行う必要があります。HttpEntityヘッダーのみ(本文なし)を設定し、RestTemplate.exchange()メソッドを次のように使用します。 HttpHeaders headers = new HttpHeaders(); headers.set("Accept", "application/json"); Map<String, String> params = new HashMap<String, String>(); params.put("msisdn", msisdn); params.put("email", email); params.put("clientVersion", clientVersion); params.put("clientType", clientType); params.put("issuerName", issuerName); params.put("applicationName", applicationName); HttpEntity entity = new HttpEntity(headers); HttpEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class, params); これは、クライアント側で失敗し、dispatcher servletハンドラーへの要求を解決できません。デバッグしたところ、リクエストパラメータが送信されていないようです。 POSTリクエスト本文を使用し、クエリパラメータを使用せずに交換を行うと、問題なく機能します。 誰かが何かアイデアを持っていますか?
267 java  spring  rest 

10
タイプセーフ:未チェックのキャスト
私の春のアプリケーションコンテキストファイルには、次のようなものがあります。 <util:map id="someMap" map-class="java.util.HashMap" key-type="java.lang.String" value-type="java.lang.String"> <entry key="some_key" value="some value" /> <entry key="some_key_2" value="some value" /> </util:map> Javaクラスでは、実装は次のようになります。 private Map<String, String> someMap = new HashMap<String, String>(); someMap = (HashMap<String, String>)getApplicationContext().getBean("someMap"); Eclipseでは、次のような警告が表示されます。 型の安全性:ObjectからHashMapへの未チェックのキャスト 何を間違えたのですか?どうすれば問題を解決できますか?

4
SpringによるRESTful認証
問題: 機密情報を含むSpring MVCベースのRESTful APIがあります。APIは保護する必要がありますが、各リクエストでユーザーの資格情報(ユーザー/パスの組み合わせ)を送信することは望ましくありません。RESTガイドライン(および内部のビジネス要件)に従って、サーバーはステートレスのままである必要があります。APIは、マッシュアップスタイルのアプローチで別のサーバーによって使用されます。 要件: クライアントは、.../authenticate資格情報を使用して(保護されていないURL)に要求を行います。サーバーは、サーバーが将来のリクエストを検証してステートレスを維持するのに十分な情報を含む安全なトークンを返します。これはおそらく、Spring SecurityのRemember-Meトークンと同じ情報で構成されます。 クライアントは、さまざまな(保護された)URLへの後続の要求を作成し、以前に取得したトークンをクエリパラメーター(または、あまり望ましくないが、HTTP要求ヘッダー)として追加します。 クライアントはクッキーを保存することを期待できません。 すでにSpringを使用しているため、このソリューションではSpring Securityを利用する必要があります。 私たちはこの仕事をするために頭を壁にぶつけてきましたので、うまくいけば誰かがすでにこの問題を解決しているでしょう。 上記のシナリオで、この特定のニーズをどのように解決できますか?



16
プロパティファイルからリストを読み取り、Springアノテーション@Valueでロードする
.propertiesファイルに値のリストを入れたい、つまり: my.list.of.strings=ABC,CDE,EFG そしてそれを私のクラスに直接ロードするには、すなわち: @Value("${my.list.of.strings}") private List<String> myList; 私が理解しているように、これを行う別の方法は、それをSpring構成ファイルに入れて、それをBean参照としてロードすることです(私が間違っている場合は修正してください)。 <bean name="list"> <list> <value>ABC</value> <value>CDE</value> <value>EFG</value> </list> </bean> しかし、これを行う方法はありますか?.propertiesファイルを使用していますか?PS:可能であれば、カスタムコードなしでこれを実行したいと思います。

11
mockMvcで応答本文の文字列を確認する方法
簡単な統合テストがあります @Test public void shouldReturnErrorMessageToAdminWhenCreatingUserWithUsedUserName() throws Exception { mockMvc.perform(post("/api/users").header("Authorization", base64ForTestUser).contentType(MediaType.APPLICATION_JSON) .content("{\"userName\":\"testUserDetails\",\"firstName\":\"xxx\",\"lastName\":\"xxx\",\"password\":\"xxx\"}")) .andDo(print()) .andExpect(status().isBadRequest()) .andExpect(?); } 最後の行で、応答の本文で受け取った文字列を期待される文字列と比較したい そしてそれに応えて私は得る: MockHttpServletResponse: Status = 400 Error message = null Headers = {Content-Type=[application/json]} Content type = application/json Body = "Username already taken" Forwarded URL = null Redirected URL = null content()、body()を使用していくつかのトリックを試しましたが、何も機能しませんでした。

6
単体テスト中にSpring @Valueを設定する
プログラムでフォームを検証するために使用される単純なBeanのユニットテストを記述しようとしています。Beanにはアノテーションが付けられ@Componentており、クラス変数が @Value("${this.property.value}") private String thisProperty; このクラス内の検証メソッドの単体テストを記述したいのですが、可能であれば、プロパティファイルを使用せずに記述したいと思います。これの背後にある私の推論は、プロパティファイルから取得している値が変更された場合、テストケースに影響を与えないようにするためです。私のテストケースでは、値自体ではなく、値を検証するコードをテストしています。 テストクラス内でJavaコードを使用してJavaクラスを初期化し、そのクラス内にSpring @Valueプロパティを設定して、それを使用してテストする方法はありますか? このハウツーは近いようですが、まだプロパティファイルを使用しています。私はむしろそれがすべてJavaコードであることを望みます。

6
Beanの初期化が完了した後にメソッドを呼び出す方法は?
ApplicationContextのロード時に一度だけ(非静的)メソッドをBeanで呼び出す必要がある使用例があります。これにMethodInvokingFactoryBeanを使用しても大丈夫ですか?または、より良い解決策がありますか? 補足として、私はConfigContextLoaderListenerを使用してWebアプリケーションにアプリケーションコンテキストをロードします。そして、もしBean 'A'がインスタンス化されたら、methodA()を一度だけ呼び出してください。 これをどのようにうまく行うことができますか?

20
BeanFactoryとApplicationContext
私はSpring Frameworkにかなり慣れていないので、これをいじって、次の会社のプロジェクトで使用するためにSpring MVCを評価する目的でいくつかのサンプルアプリをまとめました。これまでのところ、Spring MVCに表示されるものが本当に好きで、非常に使いやすく、ユニットテストに非常に適したクラスを作成することをお勧めします。 演習と同様に、サンプル/テストプロジェクトのメインメソッドを作成しています。私は間の正確な違いは約不明確だことの一つBeanFactoryとApplicationContext-どのような条件で使用するのが適切でしょうか? 私はそれApplicationContextがextends BeanFactoryであることを理解していますが、単純なmainメソッドを作成しているだけの場合、ApplicationContext提供する追加機能が必要ですか?そして、正確にはどのような追加機能がApplicationContext提供されますか? 「main()メソッドでどちらを使用する必要があるか」の回答に加えて、このようなシナリオで使用する実装について、標準やガイドラインはありますか?main()メソッドは、XML形式であるBean /アプリケーション構成に依存するように作成する必要があります-それは安全な前提ですか、それともユーザーを特定の何かにロックしていますか? そして、この答えはウェブ環境で変わりApplicationContextますか?私のクラスのいずれかがSpringを認識する必要がある場合、それらはより必要になる可能性がありますか? 助けてくれてありがとう。これらの質問の多くはおそらくリファレンスマニュアルで回答されていると思いますが、細かい櫛でマニュアルを読むことなく、これら2つのインターフェイスとそれぞれの長所/短所の明確な内訳を見つけるのに苦労しています。

12
Spring MVCとSpring Bootの違い
私は春を学び始めました。次のステップでは、より大きなWebアプリケーションを開発したいと思います。 今、私はSpring BootまたはSpring MVCのどちらから始めるべきか疑問に思っています。私はすでにいくつか読んだことがありますが、どちらも似ているので混乱しています。 では、2つの違いは何ですか?

4
Spring SecurityでのRoleとGrantedAuthorityの違い
Spring Securityには、アクセスを承認/制御する権限をGrantedAuthority取得するためのインターフェースなどの概念と実装があります。 createSubUsersやdeleteAccountsなどの許可された操作を管理者に許可します(ロール付きROLE_ADMIN)。 オンラインで見ているチュートリアル/デモと混同しています。私は読んだものをつなげようとしますが、2つを同じように扱っていると思います。 文字列をhasRole消費していGrantedAuthorityますか?私は間違いなく理解においてそれを間違っています。これらはSpring Securityで概念的に何ですか? ユーザーの役割を、その役割の権限とは別に保管するにはどうすればよいですか? 私はまたorg.springframework.security.core.userdetails.UserDetails、User(最後のGrantedAuthorityをメモする)を消費する認証プロバイダー参照DAOで使用されるインターフェースも調べています。 public User(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) または、他の2つを区別する他の方法はありますか?それともサポートされていませんか?私たちは自分で作る必要がありますか?

9
Spring @Autowiredの使用
Springによってワイヤリングされるクラスで@Autowiredを使用することの長所と短所は何ですか? 明確にするために、私は特に@Autowiredアノテーションについて話しているのであって、XMLでの自動配線については話していません。 おそらく私はそれを理解していないだけですが、私にはそれはほとんどアンチパターンのように見えます-クラスは、POJOであるだけでなく、DIフレームワークに関連付けられていることに気づき始めます。たぶん私は罰の大食いですが、私はBeanの外部XML設定が好きで、明示的な配線をしたいので、どこに何が配線されているかを正確に把握しています。
218 java  spring  autowired 

15
Springアプリケーションコンテキストの取得
SpringアプリケーションでApplicationContextのコピーを静的/グローバルにリクエストする方法はありますか? メインクラスが起動してアプリケーションコンテキストを初期化すると仮定すると、それをコールスタックを介してそれを必要とするクラスに渡す必要がありますか、またはクラスが以前に作成されたコンテキストを要求する方法はありますか?(私はシングルトンでなければならないと思いますか?)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.