この記事について こちらの記事はクリーンアーキテクチャの Java 実装による解説記事です。 MVC フレームワークに組み込むために一部変更している部分もあります。 それをふまえてご覧ください。 講演内容が @IT さまに記事にしていただけました。 あわせてご参照ください。 https://www.atmarkit.co.jp/ait/articles/1907/08/news002.html クリーンアーキテクチャよりも軽量で無理なく導入しやすいアプリケーションアーキテクチャパターンを考案しました。 https://nrslib.com/adop/ スライド JJUG CCC 2019 Spring での発表資料です。 この発表をするにあたって記事を書くことにしました。 YouTube YouTube でこちらの解説を行いました。 その他解説もしています。もしよろしければチャンネル登録を
関ジャバ'25 4月度 のLT資料です。 https://kanjava.connpass.com/event/350832/ 10ページ目はアップロード後に指摘をいただいたので追加しました。 LT(5分)ですよ?
ロックフリーな同期処理を実装する – AtomicXxxxxクラス java.util.concurrent.atomicパッケージでは、値の代入/取得といった処理をハードウェアレベルでアトミックに実行する手段を提供します。 ・AtomicBoolean ・AtomicInteger ・AtomicIntegerArray ・AtomicLong ・AtomicLongArray これらのクラスを利用することで、synchronized修飾子、ReentrantLockクラスのようにロックを取得することなく、処理を同期させることが可能になります。 それぞれのクラスで利用できる処理には、以下のようなものがあります。 AtomicXxxxxクラスの主なメソッド(*はAtomicBooleanでは利用できないもの) メソッド 概要
背景 JJUG CCC 2023 Spring にて、櫻庭祐一さんによる Virtual Threads - 導入の背景と、効果的な使い方 というセッションがあった。 このセッションの中で、 Virtual Thread を使う場合はなるべく synchronized を使わないようにすべきであること、またどうしてもロックが必要であれば ReentrantLock などのロッククラスを使うようにすることが説明されていた。 それを聞いていて、「え? ReentrantLock って synchronized を使わずに同期化を実現しているってこと? どうやって?」と疑問に感じたので、仕組みを調べてみた。 あと、 ReentrantLock と synchronized の使い分けとかもちょっとだけ調べた。 環境 > gradle --version ---------------------
Spring Boot 2系のOSS版サポート終了を、モダンなアプリ開発環境を手に入れる“絶好のチャンス”とするための選択肢とは:「最高の開発者体験」の実現に向けて JavaとSpring Bootの進化は止まらない。Spring Boot 2系のOSS版サポート終了を、モダンなアプリケーション開発・運用を加速する“絶好のチャンス”として生かすにはどうすればよいのか。その決断をするのは今だ。 人気開発フレームワークのOSS版サポートが終了、その後はどうする? Javaアプリケーションの開発フレームワークである「Spring Boot」の2.7.x(2系の最終マイナーバージョン)が、2023年11月24日にOSS(オープンソースソフトウェア)版サポートを終了する。ユーザーは、3.1.xあるいは(2023年11月23日リリース予定の)3.2.xにバージョンアップするか、商用サポートサービス「V
Java 21 LTSに対応した無償のJavaディストリビューション「Amazon Corretto 21」と「Microsoft Build of OpenJDK 21」がリリース AWSとマイクロソフトから、Java 21に対応したOpenJDKディストリビューションがそれぞれリリースされました。 Java 21は今月リリースされた最新のLTS(Long Term Support)版Javaです。仮想スレッドなど大きな新機能も追加されました。 参考:「Java 21」正式リリース。仮想スレッドが正式版に、入門者向けに「void main」と簡潔な記述、世代的ZGCなど新機能 Corretto 21のLTSはいつまでサポートされる? AWSからリリースされたのが「Amazon Corretto 21」です。 CorrettoはAmazon.comによる無料のOpenJDKのビルドです。本
オラクルはJavaをサーバレス環境で実行するのに最適化した技術「GraalOS」を発表しました。 同時に、Oracle Cloudのサーバレス実行基盤である「Oracle Cloud Functions」でGraalOSの機能を提供することも発表されました。 Javaをコンパイルし、ネイティブバイナリを実行 GraalOSは名称にOSと付いているものの、LinuxやWindowsのようなOSではなく、Javaをデプロイする新たな技術とその基盤を指します。 具体的には、同社が提供しているJava実行環境である「GraalVM」のコンパイラを用いてJavaをコンパイルしてネイティブバイナリを生成し、それをサーバレス基盤にデプロイし実行することで、サーバレスアプリケーションの瞬時の起動と高速な実行などを実現するというものです。 参考:Javaのネイティブバイナリ生成可能なGraalVMの全機能が
「Java 20」正式リリース。スレッド間で共有できるScoped Values、複数スレッド処理をまとめるStructured Concurrencyなど新機能 オラクルはJavaの最新バージョン「Java 20」正式版のリリースを発表しました。 Java 20 is now available! #Java20 #JDK20 #OpenJDK Download Now: https://t.co/6hZhod56WB Release notes: https://t.co/3eTwYKn1Cw API Javadoc: https://t.co/QUNgT4ol6Y Features: https://t.co/enLcqDmBQX Inside Java on JDK20: https://t.co/WIzDOeTgZl pic.twitter.com/7ahbOPF4LQ — Ja
By David Heinemeier Hansson on Jan 6, 2013 In languages less open than Ruby, hard-coded class references can make testing tough. If your Java code has Date date = new Date(); buried in its guts, how do you set it to a known value you can then compare against in your tests? Well, you don't. So what you do instead is pass in the date as part of the parameters to your method. You inject the dependenc
ちょっとJavaのインストールについて調べてみました2023年版。 Javaにはディストリビューションがたくさんあるので、目につくインストーラーをWindowsで全部ためしてみました。 初心者が勉強するためにJavaをインストールするというときにどれを使うのが手軽か確認するというのが主な目的です。 Oracle JDK Temurin by Adoptium Amazon Corretto Azul Zulu Liberica JDK Microsoft Build of OpenJDK SapMachine OpenJDK SDKMAN! winget OpenJ9 / Semeru Runtime Red Hat Build of OpenJDK GraalVM Scoop いろいろあるので、結論を先に書いておくと次のようになります。 いまPATHの設定が必要なJDKインストーラはない
はじめに 先日、JakartaOne Live Japan 2022というイベントで登壇させていただく機会を頂きました。 QuarkusやHelidonのような新しめのEEフレームワークがこれまでのPayaraやWebLogicとどう違うのか? CloudRunのようなサーバレス環境でMicroProfileのどの機能が効果的に働くのか? という点を最近のWeb開発周りのトレンドと絡めながら話ました。上記のようにアーカイブ動画も公開されていますが、せっかくなのでQuarkusがサーバレス環境で実行に最適化されるまでの周辺事情等をまとめたいと思います。Javaだけに留まらず最近の環境事情の整理にも役立つかと思います。 TL;DR Quarkus/Helidonは軽量で高速な新しいEEフレームワーク コンテナや、サーバレス、クラウドネイティブなど最新のトレンドに基づいた設計 GCPのCloud
5年ぶりの本格的なメジャーバージョンアップ「Jakarta EE 10」正式リリース、クラウドネイティブなど対応 Eclipse Foundationは、代表的なJavaフレームワークの1つであるJakarta EEの最新版「Jakarta EE 10 Platform」の正式リリースを発表しました。 The new era of #CloudNative #Java is here! Check out the #JakartaEE10 release page to discover new updates or features in over 20 component specifications: https://t.co/3KG28loVyz #JakartaEE #opensource pic.twitter.com/xGITL5KjUt — Jakarta EE (@Jak
Javaのアノテーションはクラスやインタフェース、メソッドやフィールド、パッケージなどに対してメタデータとして付加情報を記入する機能で、Java SE 5 で追加された。アノテーションはjava.lang.annotation.Annotationインタフェースを実装することで自作することもできる。 Microsoft Visual C++は、SAL注釈 (SAL annotation) と呼ばれる独自のソースコード注釈言語をサポートする[1]。SAL注釈は関数の引数や戻り値、構造体やクラスのメンバー変数(フィールド)といったC言語/C++の構文要素を修飾し、振る舞いや仕様を規定することで、これらを利用するコード上の誤りをコンパイラによって指摘することができるようになる。また、SAL注釈によって仕様が明確になり、公開されたヘッダーファイルそのものがAPIドキュメントとして利用できるようにな
• CVSS Severity Rating • Fix Information • Vulnerable Software Versions • SCAP Mappings • CPE Information It was found that the fix to address CVE-2021-44228 in Apache Log4j 2.15.0 was incomplete in certain non-default configurations. This could allows attackers with control over Thread Context Map (MDC) input data when the logging configuration uses a non-default Pattern Layout with either a Cont
先日騒ぎになっていた CVE-2021-44228 についてのアプリケーション側の対応について記載いたします。 緩和策としてすでに AWS WAF での Rule の Update 等が行われているため、AWS サービスの詳細については別途記事を御覧ください。 Log4jの脆弱性対策としてAWS WAFのマネージドルールに「Log4JRCE」が追加されました ここでは SpringBoot をベースとしたアプリケーションへの影響と対応可否の判断についてどのような調査を行ったかを記載します。 ひとまず結論 Spring 側から見解がすでに出ています。 Log4J2 Vulnerability and Spring Boot 以下抜粋します。 Spring Boot users are only affected by this vulnerability if they have switc
SLF4JとLogbackの中の人はここ数年活発ではないのでLog4j2などを代わりに使いましょう。 SLF4Jの活動は最近活発ではない SLF4JはVCSとしてGitHubを利用しています。最後の変更が2020年2月、最後のリリースが2019年12月となっていることからも、あまり活発ではないことが伺えます。 またBTSとしてJIRAを使っていますが、こちらもメンテナンスされていません。昨夏SLF4J-209が既にクローズ可能な状態であることやSLF4J-186が修正可能であることなどをコメントしましたが、1年近く経った今もすべて返信がない状態です。 2020年12月にイシューを閉じていたりするので全く動きがないわけではないのですが、年間で22つ作成されたのに対して2つしか閉じられていないので、充分にメンテされているとは言い難い状況です。 2021年5月31日時点での過去360日のイシュー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く