Gradleマルチプロジェクトでは、Mavenリポジトリは絶対パスで指定すべきだった話

こんにちは、エキサイト株式会社の平石です。 今回は、Gradleでマルチプロジェクトを構成している状態で、MavenのLocalRepositoryを指定する際にハマった内容を紹介します。 デフォルト以外のLocalRepository 今回は、repositoriesの設定で独自のRepository…

SpringBootで複数のapplication.ymlの読み込んで、環境ごとの起動をラクにする

エキサイト株式会社エンジニアの佐々木です。SpringBootではapplication.ymlなどの設定情報を読み込む方法がいくつかあるのでまとめます。 前提 設定ファイル一覧 コード 起動引数で設定される値を変える 補足./gradlew bootRun の場合 設定ファイルの中で指…

Spring AI に入門する

エキサイト株式会社エンジニアの佐々木です。詳細は話せませんがAI系の業務が発生したので、技術選定の一環でSpring AIを触ってみました。 前提 手順 1. Spring CLI をインストールする 2. Spring CLIでAI用のプロジェクトを作成する 3. OpenAIのAPIキーを取…

Thymeleafでハイパーリンクを実装する

はじめに こんにちは、新卒2年目の岡崎です。今回は、Thymeleafでハイパーリンクを実装する方法を紹介します。 環境 Thymeleaf 3.3.0 前提 以下のようなオブジェクトが存在することを仮定します。 @Data public class Test { private Long id; private Strin…

JavaでURIを作る方法

はじめに こんにちは、新卒2年目の岡崎です。今回は、JavaでURIを作る方法について紹介します。 前提 Java openjdk version "21.0.2" 2024-01-16 LTS OpenJDK Runtime Environment Corretto-21.0.2.13.1 (build 21.0.2+13-LTS) OpenJDK 64-Bit Server VM Cor…

SpringBootの階層の深いapplication.ymlをrecordで取り出す

エキサイト株式会社メディア事業部エンジニアの佐々木です。Javaにrecord型が登場し、SpringBootでも結構いろいろなところで使用できるようになりました。今回は、application.ymlからrecordを使用して取り出す方法になります。 前提 application.yml コード…

htmxのhx-swap-oobとhx-select-oobを理解する

エキサイト株式会社エンジニアの佐々木です。htmxのhx-swap-oobとhx-select-oobを理解します。 前提 hx-swap-oob hx-select-oob まとめ 最後に 前提 HTML内にhtmxをロードしてください。 <script src="https://unpkg.com/htmx.org@1.9.11" integrity="sha384-0gxUXCCR8yv9FM2b+U3FDbsKthCI66oH5IA9fHppQq9DDMHuMauqq1ZHBpJxQ0J0" crossorigin="anonymous"></script> hx-swap-oob h…

GitHub Actionsでプルリクエストがマージされた時、自動的にGitタグをつける

はじめに こんにちは。新卒2年目の岡崎です。今回は、GitHub Actionsでプルリクエストがマージされた時、自動的にGitタグをつける方法を紹介します。 また、この記事はGitHub Actionsのことがあまり分からない初心者向けの記事になっております。 はじめに …

HTMXでリクエスト実行後にJavaScriptコードを実行する方法

こんにちは、エキサイト株式会社の平石です。 今回は、HTMXでhx-getやhx-postを使ってリクエストを実行した後に任意のJavaScriptコードを実行する方法をご紹介します。 はじめに HTMXでは、hx-getやhx-postを利用して、リクエストを実行することができます。…

Flywayを使ったマイグレーションで利用されるhistoryテーブルの名前を変更する

こんにちは、エキサイト株式会社の平石です。 私の担当するサービスでは、Spring Boot (Java)を利用していますが、ローカルではFlyway + MyBatis GeneratorでDB環境および、JavaからDBへの接続環境を構築しています。 その際、複数のデータベースに接続しよ…

MyBatis Generatorを利用して、Model(DTO)やMapperを自動生成する

こんにちは、エキサイト株式会社の平石です。 今回はMyBatis Generatorを利用して、ModelやMapperを自動生成する方法をご紹介します。 はじめに 導入 環境 実際にやってみる Javaプログラムから実行する方法 依存関係 設定ファイル PostgreSQLを使う際の補足…

個人的・テックブログの続け方

こんにちは。 エキサイト株式会社の三浦です。 エンジニアであれば、「テックブログ」の存在を知っている方も多いのではないでしょうか(かくいうこのブログ自体もテックブログです)。 中には、実際に「テックブログを始めてみた」という方もいるかも知れま…

VScodeでThymeleafファイルの相対パスを開く方法

こんにちは。エキサイト株式会社 デザイナーの小野寺です。 VScodeでThymeleafファイルの作業中、読み込んでいるファイルへの移動(いつもならcmd + クリック)がデフォルトで出来ず、詰みかけたところ見つけたプラグインで救われたので、今日はそのお話をシ…

Metabaseをコンテナで立ち上げてみた

こんにちは。 エキサイト株式会社の三浦です。 今回は、Metabaseをコンテナで立ち上げてみた話をしていきます。 Metabaseとは コンテナで立ち上げる 最後に 参考 Metabaseとは MetabaseはBIツールの一つで、社内のデータを可視化するのに役立ちます。 www.me…

SpringBoot3 x Thymeleaf で標準のレイアウトを使用する

エキサイト株式会社メディア事業部エンジニアの佐々木です。SpringBoot3でMPAアプリケーションを開発する場合に、Thymeleafテンプレートを使用することは、ほぼデファクトになるかと思います。今回はThymeleafのフラグメントを使用した簡単なレイアウトファ…

OpenAPI Generatorを利用して自動生成したJavaのAPIクライアントをローカルリポジトリに保存する

こんにちは、エキサイト株式会社の平石です。 今回は、OpenAPI Generatorを利用して自動生成したJavaのAPIクライアントを独自のローカルリポジトリに保存する方法をご紹介します。 なお、今回の方法は例として「OpenAPI Generatorを利用して自動生成したJava…

LEFT JOINでハマった話

こんにちは、エキサイト株式会社の平石です。 今回は、初歩的な内容でありながら、SQLでLEFT JOINを利用した際にハマったことを記事にしたいと思います。 なお、本ブログのSQLはMySQL 8.2で動作確認をしています。 例 以下のような3つのテーブルがあるとしま…

PHP アプリケーションの FCM HTTP v1 API 移行手順

エキサイト株式会社の@mthiroshiです。 アプリのプッシュ通知は、Firebase Cloud Messaging を用いて実装できます。サーバー環境から FCM 実装でプッシュ通知を送る方法の一つとして、FCM HTTP API があります。現在、FCM HTTP API は、新しいAPIへの移行の…

Amazon Aurora MySQLの証明書を更新した話

こんにちは。 エキサイト株式会社の三浦です。 AWSのAurora MySQLにはサーバー証明書が組み込まれていますが、以前デフォルトとして設定されていた rds-ca-2019 がもうすぐ有効期限を迎えます。 今回は、この証明書を更新した話をしていきます。 準備 アプリ…

Spring Bootで@CacheEvictを使ってキャッシュを削除する

こんにちは、エキサイト株式会社の平石です。 今回は、Spring Bootで一度作成したキャッシュをTTLが過ぎる前に明示的に削除する方法をご紹介します。 キャッシュを削除したいとき キャッシュという仕組みでは、DBなどの情報源にアクセスした結果を高速にアク…

SpringdocでAPIの情報を補足する際、リクエストパラメータには@Parameterを使うべきという話

こんにちは、エキサイト株式会社の平石です。 今回は、SpringdocでAPIのリクエストに対して、付与するアノテーションをご紹介します。 なお、今回のソースコードは以下の環境で動作確認をしています。 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2…

社内カンファレンス「TechCon2024」の裏側!ハイブリット開催の配信設定について

こんにちは。エキサイト株式会社の Hiroshi Sakai です。 2024年も無事TechConが開催されました!開催にあたっての記事は以下をご覧ください。 tech.excite.co.jp このブログでは、TechCon2024で初めて行われたオフライン、オンラインのハイブリット開催の配…

PHPerKaigi 2024 ルーキーズLT大会枠で登壇するまで

概要 こんにちは、エキサイト株式会社のまみです。(Xのリンク貼りたいがために挨拶しました) PHPerKaigi 2024 のルーキーズLT大会枠で登壇しました :) 登壇するまでの日記?記録?を書きます。 「社外での発表」は私にとっては挑戦でした。同じようにちょっ…

PHPerKaigi 2024に参加&登壇してきました

こんにちは!エキサイト株式会社のまさきちです。 先日、PHPerKaigi2024に参加&登壇してきました。 「ブログを書くまでがPHPerkaigi」 という事でさっそく書いていきます。 PHPerKaigi2024とは 2024年3月7日(木)〜3月9日(土)の間で開催された国内最大級…

Aurora MySQLを2系から3系に上げる際の懸念点

こんにちは。 エキサイト株式会社の三浦です。 AWSのAurora MySQL 2(MySQL 5.7互換)は、2024年10月31日で標準サポートが終了します。 docs.aws.amazon.com 一応料金を支払えばサポートは延長できますが、このタイミングでAurora MySQL 3(MySQL 8互換)へ…

【社内カンファレンス登壇記】TechCon2024でFigma Variantsのお話をしました!

こんにちは。 エキサイトで内定者アルバイトとしてデザイナーをしている齋藤です。 2024年2月16日に行われた、技術者向けの社内カンファレンス「Excite × iXIT TechCon」のLT枠で登壇させていただきましたので、その体験談を記したいと思います。 発表したこ…

【インターン体験記】UIの修正・改善提案で学んだこと

こんにちは!エキサイトインターン生のやのふきです。 この記事では、エキサイトでの就業型インターン中に担当した業務とそこから得た学びを紹介します。 自己紹介 担当した業務内容 メッセージ機能のレイアウト修正 部門別分析のアラート設定に関するUI改善…

Excite × iXIT TechCon 2024 のランチタイム企画として「ききソースコード」 を実施しました。

こんにちは。エキサイト株式会社の あはれん です。 エキサイトで第3回目となるTechConが開催されました! TechConの概要については以下の記事を御覧ください。 tech.excite.co.jp 私は運営チームとしてランチタイム企画を担当し、社内エンジニアの個性あふ…

社内カンファレンス「TechCon2024」で激熱なノベルティを作りました

こんにちは!SaaS・DX事業部デザイナーの鍜治本です! 今年も、社内技術カンファレンス「TechCon2024」が開催されました!! 開催にあたっての記事はこちら。 tech.excite.co.jp このブログでは、カンファレンス開催にあたり準備したノベルティについてのあ…

Adobe fireflyを使って生成した画像でバナーを作ってみた

エキサイトお悩み相談室でデザインを担当しているSAZUKAです。 最近Adobe fireflyという生成AIツールを使ってバナーを作ってみたので共有させてください。 www.adobe.com 「バナーを作った」というと語弊があるかもしれません。 正しくは希望の画像を生成し…