タグ

ブックマーク / qiita.com/opengl-8080 (32)

  • Spring Security 使い方メモ 基礎・仕組み - Qiita

    apply plugin: 'war' sourceCompatibility = '1.8' targetCompatibility = '1.8' compileJava.options.encoding = 'UTF-8' repositories { mavenCentral() } dependencies { providedCompile 'javax.servlet:javax.servlet-api:3.1.0' compile 'javax.servlet:jstl:1.2' compile 'org.springframework.security:spring-security-web:4.2.1.RELEASE' compile 'org.springframework.security:spring-security-config:4.2.1.RELEASE'

    Spring Security 使い方メモ 基礎・仕組み - Qiita
    quodius
    quodius 2023/09/14
  • DbUnit使い方メモ - Qiita

    DbUnitとは Java でデータベースのテストを行うためのフレームワーク JUnit でテストを実行する前にデータベースにテストデータを登録したり、テスト後のデータベースの状態が期待通りか検証したりできたりする テストデータや期待値は XML、CSVExcel 形式で定義できる 結構昔からあるけど、2022年現在も Java でデータベースのテストをする場合は DbUnit が現役らしい1 環境 OS とか Java とかのバージョン。 >gradle --version ------------------------------------------------------------ Gradle 7.4.2 ------------------------------------------------------------ Build time: 2022-03-31

    DbUnit使い方メモ - Qiita
    quodius
    quodius 2022/07/23
  • オブジェクト指向エクササイズをやってみる - Qiita

    昨日のDDD(ドメイン駆動設計)勉強会in仙台は、4名の参加者でした。前半は「オブジェクト指向エクササイズ」の説明、後半はレガシーコードをオブジェクト指向エクササイズで書き換えてみる演習を行いました。用意したレガシーコードはこちら https://t.co/xdXEl43mrH — Takehiro Inoue (@i_takehiro) March 18, 2016 なんか面白そうなのが流れてきたので、やってみた。 でき上がったコードは GitHub に上げています。 まずはソースを読む ソースは こちら に上げられている。 クラス図にすると、以下のような感じ(分かりやすいように日語にしてる)。 いい感じで気持ち悪いですね! 「飲み物」クラスと「自動販売機」クラスがある。 どうやら、「自動販売機」にお金を投入して「飲み物」を購入するプログラムを想定しているらしい。 これらを使うクライア

    オブジェクト指向エクササイズをやってみる - Qiita
    quodius
    quodius 2021/07/20
  • IntelliJ IDEA 入門 - Qiita

    package sample.intellij; public class Main { public static void main(String... args) { System.out.println("Hello IntelliJ!!"); } } 適当にソースを記述したら、メニューバーの [Run] -> [Run] と選択して 起動する Main クラスを選択する。 コンソールに結果が出力される。 環境設定 テーマ [File] -> [Settings] [Appearance & Behavior] -> [Appearance] [UI Options] の [Theme] を選択。 目に優しい暗色系がいいので、 Darcula を選択。 フォント [File] -> [Settings] [Editor] -> [Colors & Fonts] -> [Font]

    IntelliJ IDEA 入門 - Qiita
    quodius
    quodius 2021/05/28
  • JUnit5 使い方メモ - Qiita

    package sample.junit5; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.DisplayName; class JUnit5Test { @Test void fail() { Assertions.assertEquals(10, 8); } static class StaticClass { @Test void fail() { Assertions.assertEquals(10, 8); } } static class StaticTest { @Test void fail() { Assertions.assertEquals(10, 8); } } class InnerTest { @Te

    JUnit5 使い方メモ - Qiita
    quodius
    quodius 2021/05/13
  • JavaEE使い方メモ(CDI) - Qiita

    環境構築 コード CDI とは Contexts and Dependency Injection の略。 Java EE 7 には ver 1.1 が含まれている。 JSR は 346。 DI (依存性の注入)に加えて、管理しているインスタンスのスコープの管理まで行ってくれる。 CDI 誕生の経緯と JBoss Seam の変遷 CDI は、 JBoss が提供していた独自フレームワークである Seam が前身となっている。 Seam は日語で「継ぎ目」という意味。 Java EE 5 の頃の JSF と EJB をシームレスに連携させることを目的に作られたのが、この Seam というフレームワーク。 この Seam の中で、 DI やコンテキストの管理を担っていたコアの部分が抽出され、 JSR として標準化されたものが CDI 1.0 (JSR299)になる。 参照実装は Weld

    JavaEE使い方メモ(CDI) - Qiita
    quodius
    quodius 2021/02/04
  • Mavenの基本勉強メモ - Qiita

    ずっと Gradle 使ってたけど、お仕事で Maven をゴリゴリに使わないといけなくなったのでお勉強。 Maven とは Java のビルドツール。OSS。 Apache Ant に代わるものとして作られたらしい。 読み方は「メイヴン」または「メイヴェン」(自分はメイヴン派)。 結構昔からあるけど1、現在も開発が続けられているし、 Maven を採用しているプロジェクトも多い印象。 2020年現在、Java のビルドツールといえば Maven か Gradle が選ばれることが多い(と思う)。 2020年現在のメジャーバージョンは3。 Maven 1 と 2 は互換性が無いが、2 と 3 は互換性が保たれている。 環境 >mvn --version Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven h

    Mavenの基本勉強メモ - Qiita
    quodius
    quodius 2021/02/04
  • 暗号技術勉強メモ - Qiita

    JCA (Java Cryptography Architecture) を学ぶための前提知識として、暗号技術の基的なところを勉強したときのメモ。 JCA の使い方についてはこちら。 用語 暗号について説明する際に利用される用語について、先に整理しておく。 平文 暗号化されていないメッセージのこと。 暗号化 平文に暗号処理を施して、第三者から内容がわからないようにすること。 暗号化後のメッセージを暗号文と呼ぶ。 復号 暗号文を元の平文に戻す処理のこと。 「復号化」というと怒られる。 アリスとボブ 暗号について説明するときに慣例的に使用される仮の名前。 アルファベットの A, B, C... の順番で名前が考えられており、 Alice, Bob, Carol(もしくは Charlie)... のような感じになっている。 名前ごとに役割が決まっていて、アリスは送信者、ボブは受信者、キャロルは

    暗号技術勉強メモ - Qiita
    quodius
    quodius 2021/01/28
  • Gradle を完全に理解した人が、何も分からなくなるための第一歩 - Qiita

    自己紹介 opengl-8080 主に Qiita で技術メモを書いたり 関西の SIer 勤務 タイトルの元ネタ エンジニア用語の「完全に理解した」「何も分からない」「チョットデキル」は「ダニング・クルーガー効果」で簡単に説明ができます。これは一種の認知バイアスで能力の低い段階では自分の能力の低さを認識できないためです(過大評価しがち)。その反面で能力が高くなると過少評価しがちです。 pic.twitter.com/LGaJ4E5hWo — おちゃめ (@ochame_nako) April 8, 2019 ※スライドモードでは画像が表示されないみたいなので、スライドモードを解除して記事文を直接参照してください。 お話しすること 「Gradle 完全に理解した」レベルの人が、「Gradle 何も分からん」レベルになるためのお話 自分自身、最近 Gradle のことが何も分からなくなって

    Gradle を完全に理解した人が、何も分からなくなるための第一歩 - Qiita
    quodius
    quodius 2020/11/13
  • JavaEE使い方メモ(基本+環境構築) - Qiita

    Java EE とは Java Platform, Enterprise Edition の略。 Java SE(Standard Edition) がデスクトップアプリケーション開発向けの仕様がまとめられているのに対して、Enterprise ーすなわち企業向けのアプリケーション(Web アプリとか)を開発するうえで必要になるライブラリやフレームワークの仕様がまとめられたエディション。 名称について 2014年12月現在の最新はバージョン7。 バージョン4までは J2EE (Java 2 Platform, Enterprise Edition)と呼ばれていたが、バージョン5からは Java EE (Java Platform, Enterprise Edition)と名称が変更されている(年上の人たちは J2EE って言っちゃう人が多い)。 バージョン4までは J2EE 1.4 という

    JavaEE使い方メモ(基本+環境構築) - Qiita
    quodius
    quodius 2020/08/21
  • JavaEE使い方メモ(JPA その1 - 基本) - Qiita

    環境構築 マッピングの話 JPQL の話 Criteria API の話 コード JPA とは Java Persistence API の略。 O/R マッパー。 データベースアクセスに関する多くの処理が抽象化されていて、オブジェクトの世界にデータベースの話が入り込まないように設計されている印象。 それゆえに、クラスとテーブルを1対1で対応させたり、生 SQL を直接記述したりといった実装をしていた人には取っ付きにくいフレームワークだと思う。 しかし、「エリック・エヴァンスのドメイン駆動設計」の5章、6章で紹介されているようなパターン(Entity, Value Object, Repository, Aggregate)を守ろうとすると、 JPA の持つ機能は結構重要になると思っている(特にテーブルとのマッピング)。 Hello World プロジェクトの作成 コンテキストルートが j

    JavaEE使い方メモ(JPA その1 - 基本) - Qiita
    quodius
    quodius 2020/05/11
  • 排他制御のあれこれ - Qiita

    この記事は、システムエンジニア Advent Calendar 2016 - Qiita の23日目の記事です。 昨日は @yy_yank さんの 気負わず普通にテストしよう でした。 明日は @koduki さんです。 はじめに 複数ユーザが触るアプリケーションを作る場合、同時にデータが更新された場合の制御は避けては通れません。 この制御はスレッドセーフとか同時更新とか色々な観点で考えないといけないのですが、いまいちそのあたり自分自身の中できれいに整理できていませんでした。 なので、この機会に同時に更新される場合の排他制御について、自分なりに整理してみました。 まえおき 説明に使用する言語は Java です。 説明のためにシーケンス図っぽいものを使っていますが、 UML の厳密な定義には従っていません。図が描きやすいからシーケンス図を利用している、ってだけなので厳密な記法ルールに従ってい

    排他制御のあれこれ - Qiita
    quodius
    quodius 2020/05/01
  • JCA (Java 暗号化アーキテクチャ)使い方メモ - Qiita

    JCA とは Java Cryptography Architecture(Java 暗号化アーキテクチャ)の略。 Java で暗号技術を使うための API、フレームワーク。 環境 openjdk 11.0.2 OS Windows 10 (64bit) 前提知識 JCA を使うには、暗号技術についての基礎知識(どういう技術があるのか、どういう仕組なのかとか)が必要になる。 これを知っておかないと、クラス構成の意味や正しい使い方が理解できない恐れがある。 最悪、実際の利用シチュエーションでは問題のある使い方をしてしまい、セキュリティホールを埋め込んでしまうかもしれない。 なので、まずはそもそもの暗号技術について勉強しておく必要がある。 暗号技術についての説明は こちら を参照。 事前定義している関数 検証には jshell を利用している。 よく利用する処理はあらかじめ関数として定義してお

    JCA (Java 暗号化アーキテクチャ)使い方メモ - Qiita
    quodius
    quodius 2019/12/06
  • JavaEE使い方メモ(JPA その3 - JPQL) - Qiita

    環境構築 JPA の基的な話 マッピングの話 Criteria API の話 コード JPQL とは Java Persistence Query Language の略。 JPA で使用できるクエリ言語。 SQL に似ているけど、クエリの対象はデータベースではなくエンティティ。 検索では、テーブル名ではなくエンティティ名を指定し、カラム名ではなくプロパティ名を指定する。 また、検索結果はテーブルのレコードではなく、エンティティやそのコレクションが取得される。 決して、「データベース製品間の差異を吸収した標準的な SQL」ではない。 「JavaJavaScript とは似てるようで全然別の言語」みたいな感じ。 エンティティの検索や CRUD が行える。 バージョンが上がるごとに、ちょっとずつできることが増えていっている。 基 エンティティモデル 実装 package sample

    JavaEE使い方メモ(JPA その3 - JPQL) - Qiita
    quodius
    quodius 2019/06/20
  • OutOfMemoryError の調べ方 - Qiita

    OutOfMemoryError (以下 OOME)が起こったときにお手上げ状態にならないためにも、 Java のメモリ管理の仕組みとか、 OOME が起こったときの調査方法とかを調べる。 環境 OS Windows 7 > java -version java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) Java 8 で、 Oracle の JVM を前提とした話です。 Java のメモリ管理 これを知っておかないと、 OOME が起こっても、メモリ内で何が起こっていて、どこを調査すべきで、どのように対処したらいいのかが判断できない。 なので、まずは、そもそも J

    OutOfMemoryError の調べ方 - Qiita
    quodius
    quodius 2019/05/29
  • DDD の Java EE 実装サンプル - Cargo Tracker を読み解く - Qiita

    Cargo Tracker とは エリック・エヴァンスのドメイン駆動設計 で紹介されている様々なパターンを実際に使用して、有志が作成したサンプル Web アプリのこと。 DDD Sample Application - Introduction オリジナルは Spring Framework を使用している。 一方、この実装を Java EE 7 で置き換えたサンプルが公開されている。 Cargo Tracker この実装を読みながら、 DDD で紹介されている以下のパターンがどのように実装されているのかを確かめてみる。 レイヤ化アーキテクチャ エンティティ 値オブジェクト 集約 リポジトリ サンプルアプリを動かす ソースのダウンロード このページ の一番下に zip のリンクがあるので、そこからダウンロードする。 環境準備 以下のソフトウェアをインストールする。 JDK 7 以上 Mav

    DDD の Java EE 実装サンプル - Cargo Tracker を読み解く - Qiita
    quodius
    quodius 2017/07/05
  • 簡単なHTTPサーバーを作る - Qiita

    簡単な HTTP サーバーを実装することで HTTP を学ぶ。 ローカルの HTML ファイルをブラウザから開けるようになるのを目指す。 実装はこちら 免責事項 あくまで車輪の再発明による HTTP および HTTP サーバーのローレベルなところを勉強するのが目的です。 セキュリティなどの考慮は一切していないので、ここの実装を使ったらいろいろ問題が発生すること必至です(ディレクトリトラバーサルとか)。 ここでの実装を利用したことで発生する問題に対して、当方は一切責任を負えませんのであしからず(利用するとは思えないけど)。 まずはソケット通信から HTTP は TCP/IP の上で動作するプロトコルなので、まずはソケット通信から始める。 package gl8080.http; import java.io.BufferedReader; import java.io.InputStream

    簡単なHTTPサーバーを作る - Qiita
    quodius
    quodius 2017/06/20
  • GlassFishのキャッシュを疑っていくスタイル - Qiita

    GlassFish で開発してると、以下のような問題に結構たまにまぁまぁ頻繁に遭遇する。 実装を修正したけど、変更が反映されない。 いろいろいじってたらエラーが出たので、動いていた頃に戻したけどエラーが改善されない 「エラーを吐いている箇所をごっそり削除しても、同じ場所でエラーになる?!」なんて時はキャッシュがかなり怪しい。 その場合は、 GlassFish を一旦停止して、以下のフォルダを削除してから再起動すると改善することがある。 <GlassFish インストールフォルダ>\glassfish\domains\<ドメイン名>\osgi-cache\ の下にある felix 。 Stack Overflow とかを検索すると、よく「このフォルダを消してごらん」的な回答を見かける。 Register as a new user and use Qiita more convenientl

    GlassFishのキャッシュを疑っていくスタイル - Qiita
    quodius
    quodius 2017/06/14
  • JPA と DDD の関係で僕が思っていること - Qiita

    このスライドについて このスライドは、 JJUG CCC 2016 Fall でお話ししたときに使用したスライドです。 自己紹介 opengl-8080 主に Qiita で技術メモを書いたり 関西の SIer 勤務 今日話すこと JPA と DDD の関係について思っていること JPA で DDD のパターンを実装するとどうなるか JPAとDDDの関係で思っていること 最初は、 JPA に対してあまり良いイメージはなかった DDD を学ぶにつれて、徐々にイメージが変わっていった なぜ変わっていったのか、どう変わっていったのか JPAでDDDのパターンを実装 エンティティ・値オブジェクトなどを JPA で実装する 仕様上の限界、実装ごとの現実 JPAとDDDの関係で思っていること JPA へのイメージの変化 DB アクセスライブラリ1との出会い DB アクセスってこうやるのかぁ JPA と

    JPA と DDD の関係で僕が思っていること - Qiita
    quodius
    quodius 2017/05/10
  • JavaEE使い方メモ(Bean Validation) - Qiita

    環境構築 コード Bean Validation とは バリデーション(入力チェック)用のフレームワーク。 入力チェックは様々なレイヤに分散されやすい。 例えば、桁数やフォーマットのような形式チェックはプレゼンテーションレイヤに、マスタの存在や他のデータとの関連が正しいかなどのビジネスロジックのチェックはそれより深いレイヤなどに分かれたりすることがある。 こういった分散されやすい入力チェックを、一箇所にまとめまられるようにしようという目標のもと作られたものらしい。 入力チェックのルール(制約)はアノテーションで定義する。 null チェックなどの汎用的なものはあらかじめ定義されている。もし標準のアノテーションでは足りない場合は、独自にアノテーションやバリデーションロジックを定義することもできる。 この仕様は、単体で利用するよりかは他のフレームワーク(JPA, JAX-RS, JSF など)

    JavaEE使い方メモ(Bean Validation) - Qiita
    quodius
    quodius 2017/05/02