Tagbangers Blog

Java

Nexus Repository OSS 3.x のインストール

社内レポジトリー用に Nexus Repository をインストールしたのでメモ。 基本的には公式サイトに書いてある通り。 https://books.sonatype.com/nexus-book/reference3/install.html Nexus のインストールディレクトリを $install-dir、データディレクトリを $data-dir とする。 1) Nexus 実行用のユーザーをつくる $ sudo useradd nexus 2) パッケージのダウンロードと展開 https://www.sonatype.com/download-oss-sonatype Unix 版...

クライアントとサーバの通信の流れを見てみよう!

入社当時Webの勉強のためにWebサーバ作っていたのですが、まだできておらずWebの理解を深めなきゃという気持ちで再び取り組みはじめました。 今回は、サーバとクライアントの通信がどのように行われているのかについて書きます。 まず、クライアントとサーバを簡単に作ってみましょう。 Client.java package client; import java.net.Socket; public class Client {     public static void main(String[] args) throws Exception {         try(Socke...

Spring I/O 2016の資料が少しずつあがってきました!-part1-

先月参加したSpring I/O 2016 の動画等が徐々にアップされてきているのでまとめてみます。 とりあえず1日目から!! ■CUSTOMIZE YOUR SPRING BOOT EXPERIENCE BY WRITING YOUR OWN SPRING BOOT STARTER(MICHAEL SIMONS) https://github.com/michael-simons/springio2016 ■10 WAYS TO GET SUPER-PRODUCTIVE WITH SPRING BOOT(BRIAN CLOZEL ANDSTÉPHANE NICOLL) https://git...

うわさのRiot.jsとSpring Bootでサーバーサイドレンダリング

前置き ウェブアプリケーションをもっともっときもちのいい UI に。 ちらつきは悪だ そのための SPA (シングルページアプリケーション)。 でもいつまでも最初のページで Ajax による遅延描画で画面をガタガタちらつかせている場合じゃない。 だから、最初のページはサーバサイドでコンテンツをレンダリングしておきたい。 これがサーバーサイドレンダリング。 でもどうせだったらブラウザ側で実行しているコード (Javascript) をサーバサイドでもそのままつかってコンテンツをレンダリングできれば一石二鳥では? これが Isomorphic なアプローチ。 今回の構成 Riot.js Riot....

Notes on Reactive Programming Part I: The Reactive Landscape - DAVE SYER氏のSpringブログ(日本語超訳) 途中

またSpring blogの超訳を載せたいと思います。今回はDave Syerさんの6月7日の記事です。オリジナルはこちらです。 Reactiveプログラミングというのはとてもおもしろく、今のところ色々いわれているようですが、部外者や筆者のようなエンタプライズJava開発者からするとすべての概念がわかりやすいとはいえません。 本記事によって「何がそんなに盛り上がってるか」について、みなさんの理解がクリアになればと思います。 アプローチとしてはできるだけ具体的なことを書くようにします。もっと学術的なアプローチやHaskellで書かれた大量のコードサンプルを探しているのであれば別のサイトをググッて...

Javaの気持ちを本気出して考えてみた。

Javaの超基礎的な話なのですが、import文って知ってますよね? そもそもどうやってクラスを正しく判別してimportしているんでしょうね。そしてどうやってメソッドを呼んでいるんでしょうね。 ま、普通にMainクラスからPrintTagbangersを呼ぶ時こんな感じだと思います。 Main.java package com.example.sample2; import java.lang.reflect.Method; public class Main {    public static void main(String[] args) throws Except...

Spring MVC でリダイレクトさせないときでも RedirectAttributes を使いたい

ちょっと意味不明なタイトルになってしまいましたが、RedirectAttributes を使うとリダイレクト先のページのまで有効ないわゆる Flash スコープが使えます。 とても便利な機能ですが、これをリダイレクトではなく単なるページ遷移の時にも使う場合は以下のように自身で FlashMapManager#saveOutputFlashMap をコールすることで実現できます。 FlashMap flashMap = RequestContextUtils.getOutputFlashMap(request); flashMap.put("message", "Hello!"); Requ...

Hibernate SearchのFieldBridgeとignoreFieldBridgeについて

前にだいぶはまってしまい色々な方のアドバイスにより解決し(てもらっ)たところをまとめます。 結論 Hibernate Searchで複数のカラムを条件にした検索がしたい場合など、お決まりのフィールドをカスタムしたい場合はFieldBridgeを使って表現することができます。 またFieldBridgeを使って登録された項目を検索するときはignoreFieldBridgeを使います。 私の間違いとやりたかったこと 人・商品・ブランドというEntityがあり、Entity同士の関連は Person 1-n Item n-1 Brand となっていたとします。 そのときに「あるブランドの商品を持っ...

テストメソッドの名前

プログラマならクラス、メソッド、変数などのネーミングに迷うことが必ずあると思います。 昔、テキトーにつけてしまった変数名やメソッド名たち・・・振り返ってみると、 なんでこんなセンスのない名前にしてしまったんだ・・・こうしておけば良かった・・・って思うこと、ありますよね? ネーミングは非常に重要! プログラムの半分以上はネーミングだ! そう豪語している方がいましたね。半分以上かは知りませんが、本当に重要だと思います。 正直、ネーミングはセンスが問われる部分もあると思いますが、最低限逸脱しないためのルールというものが必要なので、 社内でもある程度の指針は存在しています。 その中で、今回はJunit...

Spring Security でマルチテナントしたときの Remember-me 認証対応

下記のログイン画面のように、ID と それ以外のパラメータを用いて認証した場合の Spring Security の Remember-Me 認証方法をご紹介。 ソースコードは GitHub (https://github.com/tagbangers/spring-best-practice...) で公開しています。 Spring Security は Remember-Me 認証の実装の1つとして、PersistentTokenBasedRememberMeServices クラスを提供している。PersistentTokenBasedRememberMeServices はログイン情報...