let's learn java language

I learning java language.

spring boot 1.4.0.RELEASE がでたよ

https://start.spring.io/ で 1.4.0 つかえるようになったよ


build.gradle:

buildscript {
    ext {
        springBootVersion = '1.4.0.RELEASE'
    }
    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/snapshot" }
        maven { url "https://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

早速 1.4.1.SNAPSHOT も使えるようになってたよ

spring boot 1.4.0RC1 でプロジェクトつくる

spring boot 1.4.0RC1 がでたようです。

github.com

あらゆる web で一番好きなサイト はここです

https://start.spring.io/

ここから

http://amazo.vg4.net/images/1467800565106457855.png

で、登録。。。1.4.0RC1 が輝かしい.

zip がおちるので解凍

spring boot のつくる

SpringApplication.run(Sample140rc1Application.class, args);

はなにをしてくれるのか、追ってもよくわかりませぬ。のでコメントアウトして

public static void main(String[] args) {
    // SpringApplication.run(Sample140rc1Application.class, args);

    long min = Long.MIN_VALUE;

    System.out.println("abs: " + min + "\t-> " + Math.abs(min));
}

こうしました。

早速実行

15:40:45: Executing external task 'bootRun'...
:compileJava
:processResources UP-TO-DATE
:classes
:findMainClass
:bootRun
abs: -9223372036854775808   -> -9223372036854775808

BUILD SUCCESSFUL

Total time: 6.627 secs
15:40:52: External task execution finished 'bootRun'.

無事に実行できました。spring 使う理由全くない内容ですがまぁいいですよね。

thymeleaf の cache = false

spring boot で thymeleaf つかうと cache されてめんどいじゃないですか

spring.thymeleaf.cache=false

って、application.properties にかくと確か、キャッシュされないとか。(どういう仕組だ?)

で、やってみてもうまくいかない。

どうも、eclipse とかの上で、たちあげて、編集も eclipse からやらないとダメぽいな。

はっきりいってよくわからないが、jar 作る段階で、resource は jar に含まれるから、結局 jar になったあとは cache = false なんてなんの意味もないんじゃまいか?

spring boot + session ( in memory )

spring-boot でセッションを扱うには簡単な方法だと

アノテーションをクラスにつけて

@SessionAttributes(value = "contactForm")

ModelAttribute でそれを設定する

   @ModelAttribute("contactForm")
    ContactForm contactForm() {
        return new ContactForm();
    }

と、勝手に model に入れてくれる。

セッション破棄は

   @RequestMapping(value = "finish", method = RequestMethod.GET)
    String finish(SessionStatus sessionStatus) {
        sessionStatus.setComplete();
        return "contact/finish";
    }

こんな感じ

なんともマジカルだな。annotation みてもほぼ空っぽだしなぁ。実際どう動くのかコードで知りたいがなかなかたどりつかん。。。

gradle はまりどこ

gradle でエラー

エラー: メイン・クラスorg.gradle.wrapper.GradleWrapperMainが見つからなかったかロードできませんでした

ないですね。.gitignore に *.jar があるので、push されなかったんですね。

gradle もってなければ brew intall gradle とかでいれて、

gradle wrap

して、

git add -f gradle/wrapper/gradle-wrapper.jar

で強制追加。