知名度は高くないけど 便利なJavaライブラリ集 #jjug_ccc_a1 @making (Toshiaki Maki) 2024-06-16 JJUG CCC 2024 Spring 資料のURL: https://bit.ly/java-lib
こんにちは。@phonypianistです。 本投稿はアクロクエスト アドベントカレンダー 12月21日 の記事です。 最近、Quarkusアプリを本番適用しました。 QuarkusはJavaアプリを作るための軽量なフレームワークで起動が速いって聞くけど、実際どれくらい速いんだろう?と気になったので、Spring Bootや、類似OSSのMicronautと比べてみました。 背景 JavaのフレームワークといえばSpringBootが主流ですが、起動が遅かったり、必要なメモリが多かったりしています。 これは、アプリ起動時にリフレクションを用いてDI(Dependency Injection)を行っているのが要因の1つです。 マイクロサービス、コンテナネイティブなアプリケーションは、負荷の状況に応じて、シームレスにスケールアウトできる必要があります。 アプリケーションの起動速度が遅かったり、
maven3でマルチモジュールプロジェクトを作成する場合、デフォルトのディレクトリ構成では、親プロジェクト ディレクトリの下に子プロジェクト ディレクトリを格納する形になる。 例: 親プロジェクトが guide-ide-eclipse、子プロジェクトがguide-ide-eclipse-site、guide-ide-eclipse-core、guide-ide-eclipse-module1 guide-ide-eclipse guide-ide-eclipse-site guide-ide-eclipse-core guide-ide-eclipse-module1 問題点 親プロジェクトと子プロジェクトには依存関係がある。そのため、親プロジェクトディレクトリからのディレクトリ構成が必要になる。 eclipse上のsubversionから親プロジェクトをチェックアウトした場合、子プロジェ
概要 Spring Framework (Spring Boot)のTipsです。随時更新していく予定です。 ある程度ボリュームのある内容は別記事として投稿し、そこへリンクしています。 また、最初のころのtipsは2015年投稿で使用バージョンが古く、現在では参考にならないかもしれませんのでご注意ください。 1. プロパティファイルの値をフィールドのデフォルト値に設定する 環境: Spring Boot 1.3.0.M5, Java 1.8.0_60 Valueアノテーション Valueアノテーションを使用してプロパティファイルの値をフィールドのデフォルト値とすることができます。 Annotation Type Value myapp: string: property: Some text propertyDefault: # propertyUnresolvable: int: pro
今回は2015年11月にバージョン1.0.0がリリースされ、2016年4月19日に1.1がリリースされたmybatis-spring-boot-starterの使い方を紹介します。 MyBatisをSpring Boot上で使う際は、mybatis-springから提供されているSqlSessionFactoryBeanやSqlSessionTemplateのBean定義を開発者が行う必要がありましたが、mybatis-spring-boot-starterの登場によりこれらのBean定義は自動コンフィギュレーションによって解決されます まずは、実際にmybatis-spring-boot-starterを利用して簡単なCLI(Command Line Interface)アプリケーションを作ってみます 。 Note: 2019/7/16: 追記 JDK 13で導入予定(現時点ではPrev
mavenのビルドで静的解析を実行して、規定のレベルに達していなければfailureを返すための設定 mvn siteで静的解析レポートを出力する例は見かけるが、testと同じようにcheckする設定例をあまり見かけなかったので書いてみた。 静的解析ツール checkstyle SpotBugs PMD OpenClover JaCoCo Jacocoは、OpenCloverとの比較検討のために追加していて、カバレッジのレポート出力(jacoco.exec)だけを実行し、カバレッジ検査は行なっていない。 pom.xmlの設定例 GitHubリポジトリの<build/>と<reporting/>を参照 静的解析プラグインのcheckゴールを実行することでビルド時に検査する 設定例では静的解析の実行フェーズをverifyとしており、mvn verify で静的解析を実行してくれる レポートも出
こんにちは、@kojiisdです。 この間AWS Summit Tokyoに参加してきたのですが、皆一様に「AWS Lambda」を、 これからのサーバレスアーキテクチャを支える技術として紹介していましたね。 資料でも言葉でも多分に見聞きしており、軽いゲシュタルト崩壊を起こしている今日この頃、 皆さんはいかがお過ごしでしょうか。 さて、今回はAWS Lambdaです。 AWS Lambdaの処理はJavaやNode.js、Pythonなどの言語で記述することができますが、その性能差がどの程度あるのか?測ってみました。 構成 今回の構成は次の様なシンプルなものにしています。 [計測対象(言語)] Python Node.js Java [計測対象(カテゴリ)] 処理速度 使用メモリ [Lambdaでの処理内容] API Gatewayでリクエストを受け付け Lambda内でDynamoDBか
こんにちは、 @snuffkin です。 Acroquestでは、Elastic{ON}のような勉強会やカンファレンスに参加するだけでなく、社内向けの勉強会も開催しています。 新しい技術を調べて「使ってみた」的な発表をしたり、実際に開発の中で得られた知見を発表したり。 各自が得意分野で、様々なテーマで発表し、技術の研鑽を行っています。 私の場合、しばらく性能改善に取り組んでいたため、 その際に解決した問題からいくつか事例をフィードバックし、 性能問題を起こさないよう喚起しました。 10 performanceimprovements 性能改善10事例 from Acroquest Technology www.slideshare.net スライドでも書きましたが、特に大量に繰り返し実行される処理では、性能を意識した実装をしないと問題になりがちです。 問題があちこちに散らばると性能が大きく
こんにちは、fujiiです。 かれこれ1年ぶりになりましたが、ENdoSnipeをバージョンアップし、ver5.2をリリースしました! そこで今回はENdoSnipe5.2の新機能を紹介したいと思います。 おっと、その前に「ENdoSnipeって何?」という方は、技術評論社さんのサイトの連載を読んで、ENdoSnipeについて復習しましょう! 今回のリリースはDashboard機能の強化をメインに行っています。 それでは、さっそく紹介していきますね。 グラフ機能強化 グラフ機能を強化し、グラフを任意にカスタマイズできるようになりました。 ツリーの任意の要素を右クリックし、「Add Multiple Resource Graph」 というメニューを選ぶことで、グラフの追加ができます。 表示する系列を指定する方法には、系列指定(Graph Selection)と正規表現指定(Regular E
いろいろな文字列連結のコードを書いた人がいたのでまとめておきますね。 主に変態さん。 とりあえず、基準として、メモリ確保したStringBuilder版 public static String stringBuilderJoinMem(){ StringBuilder s = new StringBuilder(9100).append("["); for(int i = 0; i < strarray.length; ++i){ if(i != 0){ s.append("],["); } s.append(strarray[i]); } s.append("]"); return s.toString(); } 1037ms ということで、まずはbackpaper0さん。比較的常人のコード。 https://gist.github.com/backpaper0/10273558 pu
5. 5 / 54 ラムダ式とストリームAPI • ラムダ式とは関数を簡便に表現するための記法。 • ストリームAPIは、ラムダ式を利用したコレク ション操作用のAPI • 関数型プログラミング言語由来。歴史は古い。 • これまでの手続き型やオブジェクト指向的なプ ログラミング手法から、関数型プログラミング に変わります。 • パラダイムシフトのよかん!! 6. 6 / 54 簡単なサンプル • フルーツの一覧の中から • 名前が“りんご”で始まり、 • 値段が100円以上のものを、 • 値段順で並び替え、 • 名前だけを取り出して、 • リストを作成する 1 List<String> apples = fruits.stream() 2 .filter(f -> f.getName().startsWith("りんご")) 3 .filter(f -> f.getPrice() > 10
“Java is still not dead—and people are starting to figure that out.” Welcome to my introduction to Java 8. This tutorial guides you step by step through all new language features. Backed by short and simple code samples you’ll learn how to use default interface methods, lambda expressions, method references and repeatable annotations. At the end of the article you’ll be familiar with the most rece
こんにちは! ツカノ(@snuffkin)です。 ElasticsearchとKibanaを使うとログなどを簡単に可視化できるため、利用者が急速に増えてきています(私もそのひとりです)。様々なブログで紹介されているKibana画面はとても素敵で、積極的に使いたくなります。 ただ、それなりの規模でElasticsearchを利用するには、中身を知ったり、データ設計や運用面なども考える必要がありますが、そのあたりの情報はまだ十分ではないように思います。そこで、Elasticsearchの中身をもっと知るために、ひとりでひっそりソースコードリーディングをしてみました。 今回利用したElasticsearchのバージョンは1.0.0.RC2です。以下の場所から実行媒体とソースコードをダウンロードして確認しています。また、確認はWindowsで行っています。 実行媒体 http://www.elas
Java8 の Developer preview が公開されたので、そろそろ新機能についてまとめておきます。 機能一覧はこちらです。 インターフェースにstaticなメソッド定義が可能になった 例えば、java.util.Comparator には以下の static なメソッドが追加されています。 @FunctionalInterface public interface Comparator<T> { public static <T, U> Comparator<T> comparing( Function<? super T, ? extends U> keyExtractor, Comparator<? super U> keyComparator) { Objects.requireNonNull(keyExtractor); Objects.requireNonNull(k
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く