サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
kagamihoge.hatenablog.com
Thymeleafコアには含まれない、spring-securityとThymeleafを結び付けて使うためのThymeleaf Extrasモジュールの基本的な使い方に関するメモ。基本的に、このエントリは https://github.com/thymeleaf/thymeleaf-extras-springsecurity のドキュメントを基にしている。このエントリ中で単に「ドキュメント」と書く場合、このURLを指す。 なおACL関連は準備が面倒なので省略している。 基本的な使い方 spring-bootでSpring MVCを想定して進める。pom.xmlにthymeleaf-extras-springsecurity[3|4|5]を追加する。 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifact
昔、自分がどのようにプログラミングをしているか、を文章に書き起こせるか、という話を同僚としたことがある。それで書いてみようとしたのだが、すぐに行き詰った。最大の壁は自分の思考を文章にすることで、文章は基本的に上から順に読む線形の構造になるが、プログラミング時の脳内の思考は(おそらく)そんな単純ではない。他にも、あまり簡単な例にすると一般化されないし、かといって理論に寄り過ぎると実用性が無い……などなど。考え始めると、何をどれだけ書けば良く分からなかったので適当なところで諦めた過去がある。 そこで本書だが、テスト駆動に関する本ではあるものの、実質的には、どのようにプログラミングをすると良いのか、を解説している。数個程度のクラスから構成される機能を作るとき、いかに取り組めば良いのか。あるいは、おおむね一日単位のプログラミングにどのように取り組めば最適なパフォーマンスを発揮できるのか。 正直なと
https://flywaydb.org/documentation/ を読んだ。 Overview Flywayはデータベースマイグレーションをやりやすくします。 Tip: すぐに読み終えられるのでGet Startedセクションを先に目を通すことをオススメします。 Flywayはオープンソースのデータベースマイグレーションツールです。単純さとCoCに特に主眼を置いています。 Flywayは7つの基本コマンド群から構成されています。Migrate, Clean, Info, Validate, Undo, Baseline and Repair. マイグレーションはSQL(データベース固有の文法(PL/SQL, T-SQL)もサポート)もしくはJava(複雑なデータ変換やLOBの処理など向け)で書きます。 Flywayにはコマンドラインクライアント](https://flywaydb.o
flyway使ってるの初めて見て良く分からん感じだったのでとりあえずチュートリアル https://flywaydb.org/getstarted/ を読んで訳した。 ※画像はすべて本家のものです。 Why database migrations? まず最初にShinyというプロジェクトを仮定し、ここでの成果物の一つはShiny SoftというソフトウェアでこれはShiny DBというDBに接続します。 これを簡単に図示すると以下のようになります。 他にもソフトウェアとDBが存在します。ここまでは良いでしょう。 しかし大半のプロジェクトにおいて、そのシンプルな世界観は急速に以下のように変貌します。 環境のコピーを一回した程度では収まらず複数管理する必要が出てきます。このことは様々な課題を生み出します。 ソースコードの世界ではこれに上手く対処してきました。 今日のバージョン管理は普遍的なツー
直近でWildFly 11でSpring Boot動かすのに調べたことのメモ。といっても、WildFlyプラスそのプロジェクト固有事情による設定とかの内容も混じっている。ただまぁ、自分用の作業ログなので余りそのへんは気にしない。 ソースコード https://github.com/kagamihoge/wildflyspringboot 環境 jdk1.8.0_152 Eclipse 4.7.1 WildFly 11.0.0.Final spring-boot 1.5.9.RELEASE とりあえず動かす とりあえず https://projects.spring.io/spring-boot/#quick-start コピペして動かす。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.
http://javarevisited.blogspot.jp/2012/12/how-classloader-works-in-java.html をテキトーに訳した。 How ClassLoader Works in Java Javaのクラスローダーは実行時にクラスをロードするのに使われます。JavaのClassLoaderは三つの基本原則に基づいて動作し、それぞれdelegation, visibility, uniquenessです。Delegation原則は親クラスローダーにクラスロードのリクエストを委譲し、もし親クラスローダーがクラスを発見あるいはロード出来ない場合のみクラスをロードします。Visibility原則は、子クラスローダーは親クラスローダーがロードする全クラスを参照可能ではあるが、親クラスローダーは子クラスローダーがロードするクラスを参照出来ません。Unique
http://openjdk.java.net/jeps/286 をテキトーに訳した。英語とJavaの勉強には丁度良かろうと読んでみたけど、型推論の知識あんま無いんでかなり苦戦した。なので、誤訳してる可能性がかなりあると思います。 JEP 286: Local-Variable Type Inference Author Brian Goetz Owner Dan Smith Created 2016/03/08 15:37 Updated 2016/03/09 20:18 Type Feature Status Candidate Component specification?/?language Scope SE Discussion platform dash jep dash discuss at openjdk dot java dot net Effort M Duratio
Apache Shiroのチュートリアルの一部でAuthorizationに関する部分の https://shiro.apache.org/java-authorization-guide.html をテキトーに訳した。 Java Authorization Guide with Apache Shiro 認証もしくはアクセス制御とは、リソースへのアクセス権を特定する機能です。つまり、誰が何にアクセスするのか、ということです。 認証チェックの例を挙げると、ユーザに対し、webページの閲覧・データ編集・ボタンの可視性・プリンターへの出力、を許可するかどうかをチェックします。これらはすべて、ユーザが何にアクセスできるかどうかを決定しています。 Elements of Authorization 認証には三つの中核要素があり、パーミッション・ロール・ユーザで、これらはShiroでは頻繁に参照しま
Apache Shiroのチュートリアルの一部でAuthenticationに関する部分の https://shiro.apache.org/java-authentication-guide.html をテキトーに訳した。 Java Authentication Guide with Apache Shiro 認証とは本人確認のプロセスです。アプリケーション側ではユーザが自身を誰と言ってきているのかを確認します。確認のためには、アプリケーションシステムが理解できる形式かつ信用する、本人確認用の何かをユーザは提供する必要があります。 このガイドの目的はJavaでの認証をShiroで実行する方法の概要を示すことです。Shiroの10 Minute Tutorialをまだ読んでいない場合はまずそちらに時間を取り、Shiroの基本的知識を身につけてください。 Terminology you’ll
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ をテキトーに訳した。Spring Framework Reference Documentation 4.1.xのIII. Core Technologies 7. Validation, Data Binding, and Type Conversionをテキトーに訳した - kagamihogeの日記の続き。 8. Spring Expression Language (SpEL) 8.1 Introduction Spring Expression Language(SpEL)とは、強力な式言語で実行時にオブジェクトグラフの検索と操作を行います。シンタックスはUnified ELに似ていますが、追加機能があり、notably
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ をテキトーに訳した。Spring Framework Reference Documentation 4.1.5のIII. Core Technologies 5.4.5までをテキトーに訳した - kagamihogeの日記の続き。 今度はmanaged-の訳が管理とかマネージドとかにブレ出す。 5.4.6 Method injection 多くのアプリケーションにおいてコンテナ内のビーンはシングルトンです。あるシングルトンビーンが別のシングルトンビーンと協調したい場合、もしくは、非シングルトンビーンが別の非シングルトンビーンと協調したい場合、通常はプロパティとしてビーン定義をすることで依存性を扱います。ビーンのライフサイクルが異
http://java67.blogspot.sg/2014/01/why-string-class-has-made-immutable-or-final-java.html をテキトーに訳した。 Why String Class is made Immutable or Final in Java - 5 Reasons Stringについて聞かれないJavaの採用面接はほとんど無く*1、なぜJavaのStringはイミュータブルなのか?(Why String is Immutable in Java)はその最たるものと言えます。なぜJavaのStringはイミュータブルなのか?(Why String is Immutable in Java)は、言い換えると、なぜJavaのStringクラスはfinalなのか?(Why String class is made final in Ja
immutables.github.io Immutablesはこの夏イチオシのテクノロジなんですけども、いまいち周知されていない感じがあります。http://t.co/ToMXVzIW5L— 太一 (@ryushi) 2015, 8月 20 というわけでGuidesの一部(Get started!, Inception, Immutable objects, Using annotation processor in IDE)をテキトーに訳した。 http://immutables.github.io/immutable.html Get started! Prerequisites Immutablesアノテーションプロセッサ(Immutables annotation processor)の動作にはJava 7以上が必要です。 基本的なイミュータブルオブジェクトの生成に必要な依存性を
JavaでのDBのテストデータ作成はDbSetupが楽 - Qiita を見て DbSetup をちょっと試してみた。 それで、中々良さげだったのでユーザーガイド(http://dbsetup.ninja-squad.com/user-guide.html)をテキトーに翻訳してみた。 User Guide Don't clean up, prepare! 伝統的なデータベーステストの方法は、空のデータベースから始め、各テストの前にデータベースを操作し、テストを実行し、テスト後にデータを削除します。 このアプローチは不十分です。 データベースはテスト前に空でなければならず、そうでない場合失敗します。 テストが失敗する場合、テスト後にデータベースの中身を検証することには意味があります。 大半のテストはread-onlyで、同一のデータセットを何度も何度も追加&削除することはテストを遅くさせます
俺は実務経験をある程度こなしたあと、RDBの知識不足を認識したクチである。改めてRDBを勉強し始めて困ったことの一つは、実行計画の読み方がよくわからないことだった。もちろん、ぐぐればNESTED LOOP JOINが何かとかは出てくるし、公式のマニュアルも参考になる。ただ、webの文献は体系だって解説があるとは限らないし、個人のブログなどは粒度がバラバラで、まとまった量の知識を得るには向いていない。マニュアルも膨大な量があるので慣れていないと目的の文書が書いてあるかどうかすら分からないし、あったとしても必要なレベルの解説があるかどうは分からない。 そこで本書の出番である。既存の書籍にもSQLとパフォーマンスを論じたものはあるにはあるのだが、それに特化した本の存在は、少なくとも俺は知らない。一冊だけ、データベースパフォーマンスアップの教科書 基本原理編 - kagamihogeの日記という極
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle のPart Iをテキトーに訳した。 内容的にはイマサラだし、ぐぐると既に訳されている方いるから二番煎じ感あるし、序章なので技術的にはそんな大したこと書いてないんで、資料的価値は無いんだけど。目的はSpringと英語の勉強がだから気にしない。 Part I. Overview of Spring Framework Spring Frameworkは、軽量で、エンタープライズアプリケーションを構築し始めるのにワンストップのソリューションとなりうる可能性を秘めています。Springはモジュール化されており、必要なパーツのみを選ぶことが可能です。IoCコンテナ上に任意のwebフレームワークを使用出来ますが、Hibernate integr
2020/4/7 追記 本エントリは古い内容のため下記を参照してください。 kagamihoge.hatenablog.com Spring Batchをためす。 やること Getting Started · Creating a Batch Service のチュートリアルを読んでHello Worldレベルのことをやる。 環境 Java Java SE Development Kit 8u31 Eclipse Luna(4.4.1) IDE for Java EE Developers Spring spring-boot-starter-parent 1.2.1.RELEASE spring-batch-core-3.0.2.RELEASE.jar ソースコードと説明など チュートリアル的なことその1 pom.xml spring-bootの設定、Spring Batch、REST、
10万件のUPDATEをマルチスレッドで分割した場合、実行時間にどのような影響があるか。実際にやってみる。 環境 DB CentOS-6.5-x86_64 Oracle Database 11g Release 2(11.2.0.1.0) Enterprise Edition Java Java SE Development Kit 8u31 Eclipse Luna(4.4.1) IDE for Java EE Developers ツール A5:SQL Mk-2 Version 2.10.1 (x64 edition) rlogin Version 2.16.6 準備 下記のテーブルに10万件追加し、このテーブルに対してUPDATEを1件ずつかけていく。実行時間の計測開始前にテーブルのDROP&CREATE&10万件INSERT&バッファキャッシュクリア、を行う。 DROP TABLE
SLF4J + Log4j 2のhello worldレベルのことをやる。 環境 Java Java SE Development Kit 8u25 Eclipse Luna(4.4.1) IDE for Java EE Developers やったこと SLF4J pom.xmlに依存性を追加する。 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.10</version> </dependency> SLF4J Manualのサンプルコードをコピペしてくる。 package com.example.slf4jlog4j2; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public clas
Oracle Flashback Technologyという機能は、たとえばついうっかりDELETEしちゃった行を元に戻すのに使える。EE以上で使用可能。SQL Developerに依存する機能ではないが、SCNの確認程度には便利なので、せっかくなので使う。 環境 DB CentOS-6.5-x86_64 Oracle Database 11g Release 2(11.2.0.1.0) Enterprise Edition ツール Oracle SQL Developer 4.0.3(4.0.3.16.84) rlogin Version 2.16.6 やること テストテーブルに適当な適当なデータをINSERTしてから全件DELETEする。そのあと、全件DELETE前のデータで復元可能なことを確認する。 準備 後述するOracle Flashback Transaction Queryを
http://openjdk.java.net/jeps/223 をテキトーに訳した。 JEP 223: New Version-String Scheme Summary JDKのバージョン文字列規則をメジャー・マイナー・セキュリティアップデートリリースを区別しやすいように修正します。 Goals 人間が理解しやすく、また、プログラムがパースしやすいようにします。 現在の業界標準、具体的にはSemantic Versioningに合わせます。 既存のパッケージングシステムとプラットフォーム依存のメカニズムであるRPM, dpkg, IPS, Java Network Launching Protocol (JNLP)などが使用可能なものにします。 バージョン文字列の一つの要素に二種類の情報を混ぜ込む現行方式を削除します。すなわち、マイナーリリース番号とセキュリティレベルでは解読が難しく、
@kagamihoge CCCでハンズオンをおこなった @making さんの本が、とっかかりに良さそうでしたよー http://t.co/gI7XWtNsHa— Takafumi Yoshida (@zephiransas) November 19, 2014 というわけで、はじめてのSpring Boot―「Spring Framework」で簡単Javaアプリ開発 (I・O BOOKS)をオススメされたので買ってきた。とりあえず、最初の方の章の環境構築を参考にEclipseでhello world的なことをやる。 環境 Java Java SE Development Kit 8u25 Eclipse Luna(4.4.1) IDE for Java EE Developers やったこと Spring Tool Suite(STS)プラグインのインストール 書籍では、IDEには独立
@kagamihoge ppは基本的にOracleサイトから落とせますよ( ^ω^) 商用利用せずに個人で実験するレベルであれば、製品版と同じ物を使用できますよ☆ xeは機能制限が多くて、、、— かーりん (@curry9999) August 5, 2014 OTN開発者ライセンス付きのソフトウエアは、評価・学習・テスト・アプリケーション開発に利用できます。 http://www.oracle.com/technetwork/jp/indexes/downloads/index.html より抜粋 というわけで、Database 11g Enterprise Editionsも個人の日記レベルの学習用途であれば問題無く使用可能なことを教えて頂いた。OracleではビットマップインデックスはExpress Editionでは使用出来なかったので学習対象から外していたのだが、個人で自由に試せ
http://www.thatjeffsmith.com/のaboutによるとProduct Manager for Oracle, working on the SQL Developer teamという方が主にSQL Developerについて書かれているブログがあります。詳しい経緯は不明ですがSQL DeveloerのTipsについて30日間連続で書き続けるという、ひとりAdvent Calendarのようなチャレンジをしておられます。このエントリではそのチャレンジに敬意を表すると同時に、テキトー翻訳をしていきます。 このエントリではTipsの1から15まで訳しています。 なお、下記翻訳文中の「私」は特に断りが無い限り引用元のJeff Smith氏のことを指します。また、画像はすべて同氏のブログに張られているものを参照しています。 30 SQL Developer Tips in 3
The Java EE 7 Tutorialの31 JAX-RS: Advanced Topics and an Exampleの章をテキトーに訳した。 31 JAX-RS: Advanced Topics and an Example Java API for RESTful Web Services (JAX-RS, JSR 339で定義)は、開発者が容易にRESTアーキテクチャを使用できるように設計されています。この章ではJAX-RSの高度な機能について解説します。もしJAX-RSが初めてであれば、この章を読み進める前にChapter 29, "Building RESTful Web Services with JAX-RS"を参照してください。 JAX-RSは、CDI・EJB・Servletに統合されています。 この章では以下のトピックを扱います。 Annotations for
やること jBatchを使用してテキストファイルの中身をOracleにロードする。 とはいえ、単なるデータロードであればワザワザjBatchを使うのはオーバーヘッドがかさむだけである。OracleでSQL*Loaderや、手動ならSQL DeveloperやA5:SQL等各種のツールを使うのが手っ取り早い。 ただし、ごく単純なデータロードの実装を通して学べることも多い。このエントリの目的は、ごく単純なデータロードを通してjBatchの挙動を知ることにある。 やることとしては、jBatchを使用してOracleにデータをロードし、また、いくつかのパラメータを変更して、そのときの実行時間の変化を確認する。 環境 Java Java SE Development Kit 7u65 Eclipse Luna(4.4.0) IDE for Java EE Developers GlassFish S
The Java EE 7 Tutorialの29 Building RESTful Web Services with JAX-RSの章をテキトーに訳した。 29 Building RESTful Web Services with JAX-RS この章では、RESTアーキテクチャ・RESTfule webサービス・Java API for RESTful Web Services (JAX-RS、JSR 339で定義)、を解説します。 JAX-RSにより、開発者はJava言語を使用してRESTfule webサービスを簡単に作成できます。 この章では以下のトピックを扱います。 What Are RESTful Web Services? Creating a RESTful Root Resource Class Example Applications for JAX-RS Furt
The Java EE 7 Tutorialの51 Transactionsの章をテキトーに訳した。 51 Transactions 一般的なエンタープライズアプリケーションは一つ以上のデータベースに情報の保存と取得を行います。この情報は業務に必須なものなので、情報には正確かつリアルタイム性と信頼性が求められます。データの整合性が低下する場合があり、複数のプログラムで同時に同じ情報を更新可能になっていたり、システムエラーが処理中のビジネストランザクションで影響を与えたデータを残したまま部分的にだけデータを更新したり、といった場合です。こうしたシナリオを防ぐために、ソフトウェアトランザクションはデータの整合性を保証します。トランザクションは複数のプログラムによるコンカレントなデータアクセスを制御します。システムエラーの際には、トランザクションはリカバリ後にデータが一貫性を保つことを保証します
The Java EE 7 Tutorialの25 Contexts and Dependency Injection for Java EE: Advanced Topicsのセクションを読んでテキトーに訳した。 25 Contexts and Dependency Injection for Java EE: Advanced Topics このチャプターではContexts and Dependency Injection for Java EE (CDI)のより高度な機能について解説します。とくに、CDIの高度な機能が提供する強い型付けによる疎結合コンポーネントに触れます。 以下のトピックをここで扱います。 Packaging CDI Applications Using Alternatives in CDI Applications Using Producer Methods
次のページ
このページを最初にブックマークしてみませんか?
『目指せ一人前のプログラマ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く