Javaは登場から長年経った今でも人気No.1であり続けているプログラミング言語だ。 仕事へ直結することから、スキルを証明するための資格試験の種類も多くなっている。 このページでは、Javaの資格試験についてまとめてみた。重要な資格はすべて網羅しているので、このページを見れば全体像の把握ができるはずだ。 Javaを勉強して仕事につなげたい人や、もう一歩スキルを上げるために資格を起爆剤にしたいと思っている方はぜひ参考にしてほしい。 Java資格って必要? そもそもJavaの資格は必要かについて疑問を持っているかもしれない。目的にもよるが取っておいて損はない、というのが結論だ。 未経験からJavaを勉強して就職したいとき 現在学生であったり、IT業界にいない状態からJavaを勉強して、エンジニアになりたいという人は、資格を持っているとてっとり早くスキルを証明できる。 TOEICの点数が高いから
最初は誰しもがファッ!?となるんですよねロガーって。 いずれtree-tipsで公開しようと思っている、solrのプロジェクトを今作っています。mavenでjarを管理している訳ですが・・ なんだこのロガーの数は!! commons-logging、log4j、slf4j-api、jcl-over-slf4j、logback-classic・・・・、こいつら一体何が違うんだ!どう使い分けるんだ!そもそも必要なのか!?となりました。 昔はcommons-logging+log4jというのがトレンドだった訳ですが、今はslf4j+logbackがトレンドになり、jdkも1.4から1.7になり、これらトレンドが推移する過程で、いろいろなjarが旧式に依存してしまい、旧式依存を解決するためにアダプタが登場し始め、mavenでjarを収集すると大抵両方入ってしまい、カオスになっているのです。 特にs
職場で、「例外処理どうしてます?」ということをきかれた。 自分の経験とか調べたことを書いておこう。 例外処理 アプリケーション実行中に、なんらかの問題が発生することがある。 問題が発生したんであれば、問題があったという事実を確実に知っておきたい。実装中でも、運用中でも、問題があるのに何も気づけないのは困る。 正常に動作しているうちは、それを専門とするオブジェクトにおまかせだけど、異常が発生したら、呼び出し元でも知っておきたいというはなしだ。 Javaでは、例外という仕組みをつかって、なんからの問題、「障害が発生した!」ということを検出することができる。ソースコードで、問題が発生した箇所で、問題を、例外(Exceptionクラス)というもので表して、それを呼び出し元に投げる。呼び出し元というのは、そのメソッドを直接呼んだメソッド、あるいは呼び出し元をたどって、最終的には、mainメソッドとか
You will build an application that prints out the current time every five seconds by using Spring’s @Scheduled annotation.
はじめに SpringBootでバッチ処理をしてみようと思い、SpringBatchを調べたのですが、もっとお手軽な方法がありましたのでご紹介します。 環境 Spring Tool Suite 3.8.0 手順 1ステップ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableScheduling public class SpringBootPracticeApplication { public static v
はじめに 以前の記事でchunk(チャンク)を使ってバッチ処理の例をあげましたが、今回はtasklet(タスクレット)を使用したバッチ処理を使ってみました。 chunkでは、Reader → Compressor → WriterというETL処理を行いましたが、taskletはそこまで必要ない場合に使えるのだと思います。 環境 Mac OSX 10.10.5 Yosemite Java 1.8.0_91 Spring Boot 1.3.7 PostgreSQL 9.5.1 Eclipse Mars 2 コード 起動クラス package com.tasklet.batch; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootAp
はじめに Javaでのバッチ処理について調べていると、どうやらSpring Batchが便利らしいので使ってみました。 環境 Mac OSX 10.10.5 Yosemite Spring Boot 1.3.5 PostgreSQL 9.5 JobとStep Spring Batchでの最小単位はステップで、そこに処理内容を記述します。 そのステップをまとめた処理を行うのがジョブです。 また、ステップには2種類、「tasklet」と「chunk」が有りますが、今回はchunk(チャンク)のみ使用しています。 準備 schema-all.sql 「src/main/resources」に置いてプラットフォームに合わせたファイル名にすると実行時に読み込まれます。 「all」としているのでどのプラットフォームでも実行されるそうです。 PostgreSQLでは実行されました。 DROP TABLE
6.3.1. Overview¶ 本節では、Spring Securityが提供している認証機能について説明する。 認証処理は、アプリケーションを利用するユーザーの正当性を確認するための処理である。 ユーザーの正当性を確認するためのもっとも標準的な方法は、アプリケーションを使用できるユーザーをデータストアに登録しておき、 利用者が入力した認証情報(ユーザー名とパスワードなど)と照合する方法である。 ユーザーの情報を登録しておくデータストアにはリレーショナルデータベースを利用するのが一般的だが、ディレクトリサービスや外部システムなどを利用するケースもある。 また、利用者に認証情報を入力してもらう方式もいくつか存在する。 HTMLの入力フォームを使う方式やRFCで定められているHTTP標準の認証方式(Basic認証やDigest認証など)を利用するのが一般的だが、 OpenID認証やシングルサ
今回は、Spring BootとSpring Sessionを使用してスケーラブルなステートフルWebアプリ(HTTPセッションを使うWebアプリ)を作ってみるぞ〜 システム構成のイメージ 今回は・・・ Webサーバー兼ロードバランサーとしてNginx アプリケーションサーバーとしてSpring Boot(Embedded Tomcat) セッションストアとしてKVS(Key Value Store)の有名どころであるRedis を使用し、Nginx、Spring Boot(Embedded Tomcat)、RedisをそれぞれDockerコンテナ上で動かします。 なお、今回はRedisは1台構成にさせてもらいます。実際のシステムを1台構成で動かすことはあり得ませんが・・・ (Master/Slave構成によるクラスタ化は次回の宿題ということで・・・) フレームワーク構成 Spring B
ログを出力するとき、常にユーザIDやセッションIDといった情報を付加する方法について記載します。 SLF4j の APIであるMDC(Mapped Diagnostic Context)を利用しユーザIDやセッションIDなどをストアすることにより、 ログ出力時にユーザID、セッションIDが付加されたメッセージを生成させることができます。 まず、SLF4jのMDCにユーザIDやセッションIDなどを登録するServletFilterを用意します。 例えば、ユーザIDがPrincipalに格納されている場合、 [AuthLoggingFilter.java] public class AuthLoggingFilter implements Filter { @Override public void init(FilterConfig config) throws ServletExcepti
logbackにはMapped Diagnostic Contexts (MDC)というログに追加情報を付与する機能があります。 この機能は、Webアプリでログ出力を行う時にはとても便利です。 [Chapter 8: Mapped Diagnostic Context] (http://logback.qos.ch/manual/mdc.html) 説明 簡単な例を以下に記述します。 class MyAppController { org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("myapp"); public void indexAction() { MDC.put("action", "index"); logger.debug("logging in indexAction"); func(); MDC.remo
概要 Spring Boot で書籍の貸出状況確認・貸出申請する Web アプリケーションを作る ( その32 )( 貸出申請画面の作成3 ) の続きです。 今回の手順で確認できるのは以下の内容です。 貸出申請画面の作成 最後に表示した貸出申請の ID を Cookie に保存し、次回ログイン時に前回表示していた貸出申請画面を表示する機能の実装 参照したサイト・書籍 Class CookieGenerator http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/CookieGenerator.html TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.0.1.RELEASE documentat
JPA(Java Persistence API)は、データベースから取得したデータをメモリ上に保持する仕様になっている。 そのため、不用意に大量のデータを取得すると、メモリ容量を圧迫してしまい、最悪の場合はOutOfMemoryErrorが起きる可能性がある。 本稿では、JPAの標準機能およびネイティブ機能のそれぞれについて、メモリ使用量を抑えながら大量データを取得する方法と、ネイティブ機能がうまく動作しない場合の回避策を紹介する。 JPAは読み込んだデータを一次キャッシュとして保持する JPAは、読み込んだEntityをPersistenceContext(永続化コンテキスト)と呼ぶ領域で管理する。 ここに格納された状態を一次キャッシュと呼び、一次キャッシュされたEntityをManagedな状態(JPAに管理された状態)と呼ぶ(なお、二次キャッシュもあるが割愛する)。 Persist
オブジェクト指向にもとづくクラス構造を、本来異質なRDBのテーブル構造に対応させることをOR(Object-Relational)マッピングといい、そのための仕掛けがORマッパーである。代表的なものがHibernateやJPAで、これらを使うことは、WEBアプリ界隈では常識といっていいものになっている。しかし、これを業務システム開発で利用するのは、特別な事情がない限りお勧めできない。 ORマッピングの技術は良いものと悪いものとをもたらした。良いものとしては、Ruby on Railsのような生産性の高い開発環境を挙げられる。じっさいRailsは、TwitterやGithubといった優れたサービスの基礎として社会に貢献した。いっぽう、業務システム開発の世界に対しては、ORマッパーはどちらかといえばハタ迷惑な影響ばかりをもたらしたと言わざるを得ない。テーブル構成が比較的単純に済むWEBアプリを
ちょっと意味不明なタイトルになってしまいましたが、RedirectAttributes を使うとリダイレクト先のページのまで有効ないわゆる Flash スコープが使えます。 とても便利な機能ですが、これをリダイレクトではなく単なるページ遷移の時にも使う場合は以下のように自身で FlashMapManager#saveOutputFlashMap をコールすることで実現できます。 FlashMap flashMap = RequestContextUtils.getOutputFlashMap(request); flashMap.put("message", "Hello!"); RequestContextUtils.getFlashMapManager(request).saveOutputFlashMap(flashMap, request, response);サンプルコードはここ
リダイレクトとフォワード時に、パラメータを受け渡す方法を確認します。 なお、STS3(3.9.6)+SpringBoot2.0+tymeleaf3.0迄動作確認しています。 Springにおけるリダイレクトとフォワード リダイレクトとフォワードの一般的な解説はこちらのほうがわかりやすいです。 atmarkit.itmedia.co.jp ここでは、Springにおけるリダイレクトとフォワードについてに絞ります。 Springにおけるリダイレクトとフォワードは、以下の違いがあります。 フォワード:URLは変わりません。パラメータも継承されます。 リダイレクト:URLは変わります。パラメータも継承されません。 ちょっとわかりづらいので、実際のコードと例で説明します。 いずれも、/localhost:8080/index?msg=TEST のURLから、/localhost:8080/hello
アガテナさんも大絶賛の創るJavaの正誤表の一番下にリクエストURLをHttpServletRequestで取得できる解説図があるんだけど、pathInfoが無かったので追加した図を作成〜 あと、getPathTranslated()で /workspace/hogeWebApp/hogePath のように、リクエストURLに含まれるpathInfoを表す絶対パスが取れる。
プロセスIDの取得 スレッドダンプの取得 Windowsでプロセスをサービス起動している場合 スレッドダンプを読む プロセスIDの取得 まずは Java のプロセスIDを取得するところから始める。jps で取得できる。 $ <JAVA_HOME>/bin/jps -l 主要なオプションは以下の通り(SunVM)。 オプション 説明 -m main メソッドに渡される引数を出力 -l アプリケーションの主要なクラスのフルパッケージ名、またはアプリケーションの JAR ファイルへのフルパス名を出力 -v JVM に渡される引数を出力 JDK7 からは JRockit と統合されたため jcmd が使えるので以下でもプロセスIDを取得できる。 $ <JAVA_HOME>/bin/jcmd または、単に ps コマンドで取得するでもよい。 $ ps -ef | grep -v 'grep' | g
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く