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

Javaは人気のある高水準プログラミング言語です。言語自体の使用または理解に問題がある場合は、このタグを使用してください。このタグが単独で使用されることはめったになく、[spring]、[spring-boot]、[jakarta-ee]、[android]、[javafx]、[gradle]、および[maven]と組み合わせて使用​​されることがほとんどです。

9
SpringでREST APIのバージョン管理を行う方法は?
Spring 3.2.xを使用してREST APIバージョンを管理する方法を検索してきましたが、メンテナンスが簡単なものは見つかりませんでした。最初に私が抱えている問題を説明し、次に解決策を説明します...しかし、ここで車輪を再発明するのかどうか疑問に思います。 Acceptヘッダーに基づいてバージョンを管理したいと思います。たとえば、リクエストにAcceptヘッダーが含まれている場合、application/vnd.company.app-1.1+jsonSpring MVCがこれをこのバージョンを処理するメソッドに転送するようにします。また、APIのすべてのメソッドが同じリリースで変更されるわけではないので、各コントローラーに移動して、バージョン間で変更されていないハンドラーを変更する必要はありません。また、Springは既に呼び出すメソッドを検出しているため、コントローラー自体で使用するバージョンを判別するロジックは必要ありません(サービスロケーターを使用)。 ハンドラーがバージョン1.0で導入され、v1.7で変更されたバージョン1.0から1.8のAPIを取り上げたので、これを次のように処理します。コードがコントローラー内にあり、ヘッダーからバージョンを抽出できるコードがいくつかあると想像してください。(Springでは以下は無効です) @RequestMapping(...) @VersionRange(1.0,1.6) @ResponseBody public Object method1() { // so something return object; } @RequestMapping(...) //same Request mapping annotation @VersionRange(1.7) @ResponseBody public Object method2() { // so something return object; } 2つのメソッドに同じRequestMappingアノテーションがあり、Springがロードに失敗するため、これはSpring では不可能です。アイデアは、VersionRangeアノテーションがオープンまたはクローズドバージョン範囲を定義できるというものです。最初の方法はバージョン1.0から1.6まで有効ですが、2番目の方法はバージョン1.7以降(最新バージョン1.8を含む)で有効です。誰かがバージョン99.99に合格することを決めた場合、このアプローチはうまくいかないことを知っていますが、それは私が共存しても問題ありません。 さて、春はどのように機能するかを真剣にやり直さなければ上記は不可能なので、ハンドラーをリクエストに一致させる方法をいじくり回すこと、特に自分自身を書くことを考えていました ProducesRequestConditionでそこにバージョン範囲を持たせることを考えていました。例えば コード: @RequestMapping(..., produces = "application/vnd.company.app-[1.0-1.6]+json) @ResponseBody public Object method1() { …

18
春のブーツで残りのベースURLを設定するにはどうすればよいですか?
私は単一の春のブートプロジェクトでmvcと休憩を混合しようとしています。 すべての残りのコントローラー(例:example.com/api)のベースパスを1か所に設定したい(@RequestMapping('api/products')代わりに、で各コントローラーに注釈を付けたくありません)@RequestMapping('/products')。 MVCコントローラーは、example.com / whateverからアクセスできる必要があります 出来ますか? (私はSpring Data Restを使用せず、Spring MVCのみを使用しています)

2
@RunWith(MockitoJUnitRunner.class)とMockitoAnnotations.initMocks(this)
新しいjUnit4テストを作成しているときに、@RunWith(MockitoJUnitRunner.class) またはMockitoAnnotations.initMocks(this)のどちらを使用するのか迷っています。 私は新しいテストを作成しました、そしてウィザードはランナーでテストを自動的に生成しました。MockitoJUnitRunnerのJavadocは次のように述べています。 JUnit 4.4以降と互換性があるこのランナーは、次の動作を追加します。 Mockで注釈が付けられたモックを初期化するため、MockitoAnnotations.initMocks(Object)を明示的に使用する必要はありません。モックは各テストメソッドの前に初期化されます。各テストメソッドの後にフレームワークの使用を検証します。 Runnerを使用することが、これまで使用してきたinitMocks()メソッドよりも優れているかどうかはわかりません。 どんな考えやリンクもいただければ幸いです!
118 java  junit4  mockito 

7
ロンボクでスーパーコンストラクターを呼び出す方法
クラスがあります @Value @NonFinal public class A { int x; int y; } 私は別のクラスBを持っています @Value public class B extends A { int z; } lombokは、A()コンストラクターを見つけることができないというエラーをスローしています。これを明示的に呼び出して、次のコードを生成するようにクラスbに注釈を付けます。 public class B extends A { int z; public B( int x, int y, int z) { super( x , y ); this.z = z; } …
118 java  lombok 

13
Arrays.asList(array)とnew ArrayList <Integer>(Arrays.asList(array))の違い
違いは何ですか 1.List&lt;Integer&gt; list1 = new ArrayList&lt;Integer&gt;(Arrays.asList(ia)); //copy 2.List&lt;Integer&gt; list2 = Arrays.asList(ia); どこia整数の配列です。 で許可されていない操作があることを知りましたlist2。なぜそうなのですか?どのようにメモリに保存されますか(参照/コピー)? リストをシャッフルlist1しても、元の配列には影響しませんが影響list2します。しかし、それでもlist2やや混乱しています。 ArrayListリストにアップキャストされる方法と新規作成する方法との違いArrayList list1 differs from (1) ArrayList&lt;Integer&gt; list1 = new ArrayList&lt;Integer&gt;(Arrays.asList(ia));
118 java  list  collections 

11
JavaでLongを日付に変換すると1970が返される
Webサービスからダウンロードした長い値のリスト(例:1220227200、1220832000、1221436800 ...)があります。日付に変換する必要があります。残念ながらこの方法では、例えば: Date d = new Date(1220227200); 1970年1月1日を返します。正しく変換する別の方法を知っている人はいますか?
118 java  date  long-integer 

7
15 MB以上の大きなメッセージをKafkaで送信するにはどうすればよいですか?
文字列メッセージをJava Producer APIを使用してKafka V. 0.8に送信します。メッセージサイズが約15 MBの場合、を取得しMessageSizeTooLargeExceptionます。message.max.bytes40 MB に設定しようとしましたが、それでも例外が発生します。小さなメッセージは問題なく機能しました。 (例外はプロデューサーに表示されます。このアプリケーションにはコンシューマーがありません。) この例外を取り除くにはどうすればよいですか? 私のサンプルプロデューサー設定 private ProducerConfig kafkaConfig() { Properties props = new Properties(); props.put("metadata.broker.list", BROKERS); props.put("serializer.class", "kafka.serializer.StringEncoder"); props.put("request.required.acks", "1"); props.put("message.max.bytes", "" + 1024 * 1024 * 40); return new ProducerConfig(props); } エラーログ: 4709 [main] WARN kafka.producer.async.DefaultEventHandler - Produce request with correlation id 214 …
118 java  apache-kafka 

3
新しい日時APIを使用して日付をフォーマットする
私は新しい日付時間APIで遊んでいましたが、これを実行すると: public class Test { public static void main(String[] args){ String dateFormatted = LocalDate.now() .format(DateTimeFormatter .ofPattern("yyyy-MM-dd HH:mm:ss")); System.out.println(dateFormatted); } } それは投げます: Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay at java.time.LocalDate.get0(LocalDate.java:680) at java.time.LocalDate.getLong(LocalDate.java:659) at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298) at java.time.format.DateTimeFormatterBuilder$NumberPrinterParser.format(DateTimeFormatterBuilder.java:2543) at java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2182) at java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1745) at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1719) at java.time.LocalDate.format(LocalDate.java:1685) at Test.main(Test.java:23) LocalDateクラスのソースコードを見ると、次のことがわかります。 private int …

14
gradlewコマンドが見つかりませんか?
私はgradlewでJavaプロジェクトに取り組んでいます。私はOSとしてUbuntu Linuxを使用しています。「gradle」を実行すると、実行され、情報が表示されます。しかし、「gradlew」を実行すると、「コマンド 'gradlew'が見つかりませんでした。つまり、コマンド 'gradle' from package 'gradle'(universe)gradlew:command not found」と出力されます。 私は調査を行い、jdkを使用し、sudo apt-get install gradleを実行しました。私は完全に無知です

8
Javaシングルトンと同期
シングルトンとマルチスレッドに関する私の質問を明確にしてください: マルチスレッド環境でJavaにシングルトンを実装する最良の方法は何ですか? 複数のスレッドgetInstance() が同時にメソッドにアクセスしようとするとどうなりますか? シングルトンを作れgetInstance() synchronizedますか? シングルトンクラスを使用する場合、同期は本当に必要ですか?

10
HTMLメールを送信するにはどうすればよいですか?
JMSを使用してWebアプリケーションで電子メールを正常に送信しましたが、結果はプレーンテキストでしか表示されません。コンテンツがhtmlを表示できるようにしたい。どうすればいいのですか?ここに私がおおよそ持っているものがあります: Message msg = new MimeMessage(mailSession); try{ msg.setSubject("Test Notification"); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(sentTo, false)); String message = "&lt;div style=\"color:red;\"&gt;BRIDGEYE&lt;/div&gt;"; msg.setContent(message, "text/html; charset=utf-8"); msg.setSentDate(new Date()); Transport.send(msg); }catch(MessagingException me){ logger.log(Level.SEVERE, "sendEmailNotification: {0}", me.getMessage()); }
117 java  email  javamail 



11
ライニンゲン-ローカルjarの依存関係を追加する方法?
レイニンゲンを使用して、clojureプロジェクトを構築および開発したいと考えています。ローカルディレクトリからいくつかのjarを選択するように指示するようにproject.cljを変更する方法はありますか? 公開リポジトリにアップロードできない独自のjarファイルがいくつかあります。 また、leiningenを使用してclojureプロジェクトの「lib」ディレクトリを維持できますか?私のclojureプロジェクトの多くが同じjarファイルを共有している場合、それらのプロジェクトごとに個別のコピーを保持する必要はありません。 ありがとう
117 java  build  clojure  maven  leiningen 

6
PlayでRESTful!フレームワーク
モバイルアプリにコンテンツを提供するプロジェクトを計画していますが、ウェブサイトが必要です。 私の質問は、JerseyまたはRestletを使用してモバイルアプリ用のREST APIを開発し、次にPlayを使用するのが理にかなっているかどうかです。ウェブサイトを提供する。 または、Playを使用する方が理にかなっていますか?それをすべて行うには?もしそうなら、PlayでRESTを実行する方法!フレームワーク?

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