arcanum_jp’s blog

おっさんの日記

SpringBootで作ったアプリをwarにしてデプロイしたい

SpringBootで作ったアプリは組み込みTomcatで起動するので別にwarになんてしなくていいんだけど、自分のサーバーには既にコンテナが起動しているためwarにして配布したい。あと、多分組み込みTomcat毎にポート占有すんでしょ?そうするとアプリごとにポート設定分けて作るとかメンドイじゃん、と思うと僕は一路インターネットの海に向かっていた。

 

基本的にはこちらのエントリを参考にしたメモです。引用ベースでコードを使用させていただきました。

 

qiita.com

 

warにするためにpom.xmlで次を追加

 

warにするのでこれを追加(なぜだかは知らんが)

<packaging>war</packaging>

 

Tomcatを使う依存性を追加

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

 

 

このspring-boot-starter-tomcatという依存性はMavenリポジトリを確認すると、別のコンテナを使う場合の依存性らしい

 

mvnrepository.com

Starter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web

 

@SpringBootApplicationでエンドポイントになるクラスは

  1. SpringBootServletInitializerを継承する。
  2. configure( )をオーバーライド

SpringBootServletInitializerを継承しないとどうなるか?warはできるけど、それをコンテナに配置してもアプリ起動が失敗します。

 

docs.spring.io

 

warを従来のコンテナに配置できるようにあれこれバインドするクラスみたいですね。

An opinionated WebApplicationInitializer to run a SpringApplication from a traditional WAR deployment. Binds Servlet, Filter and ServletContextInitializer beans from the application context to the server.

 

configure( )に関しては以下のように、アプリクラスのClassオブジェクトを返すだけ

 

@Override

protected SpringApplicationBuilder configure(

    SpringApplicationBuilder application) {

    return application.sources(DemoApplication.class);
}

 

 STSのプロジェトエクスプロラーでcontrol + クリックで【Run As】→【6 Maven build...】→Goalsに「package」を入力→【Run】ボタン押下。他のサイトだと、上記の設定をした後、mvn packageで同じ動作になるみたいですね。

 

これでプロジェクトフォルダの下にある[target]フォルダにwarができます。あとはこれをデプロイすれば良いだけです。

 

ちなみにできたwarを解凍してみると空の[META-INF]とweb.xmlなしの[WEB-INF]があるだけでした。(当然依存ライブラリや作ったクラスなどはありますが)

 

 

 

SpringBootで環境毎にログの出力先を切り替えるメモ

開発環境、結合、本番などログの場所が異なる場合、あと当然だけどログレベルが異なるだろうから、環境毎に切り替える方法をしらべた。

 

基本的にはこちらの写経だけど、当サイトが無くならないとも限らないので引用ベースで必要な情報はこちらに転記しておく

 

環境はSTS(Spring-Tool-Suite4上で確認)

 

qiita.com

 

SpringBoot自身は既にlogbackの参照があるらしくlogback.xml書けばいいらしいが、環境毎に変える場合はjaninoというライブラリが必要になるらしい。なのでpom.xmlに次を追加する。

 

<dependency>

    <groupId>org.codehaus.janino</groupId>

    <artifactId>janino</artifactId>

</dependency>

<dependency>

    <groupId>ch.qos.logback</groupId>

    <artifactId>logback-access</artifactId>

</dependency

 

 logbackの設定であるlogback.xmlはresourcesの下に配置すればいいみたい。このlogback.xmlの設定で、環境変数によって切り替えるよう設定する。下記は、spring.profiles.activeという環境変数が存在したら、<then>のログバックの設定、しなかったら<else>のログバックの設定となる。ちなみに環境はlocal=ローカル環境、prd=本番環境

 

下記の設定はわざと先のエントリの値からは間引いている。ここで書きたいのは環境毎の出力先を切り替える方法であるため、それ以外の部分は間引いている

 

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <if condition='isDefined("spring.profiles.active")'>
        <then>
            <include resource="logback/${spring.profiles.active}.xml"/>
        </then>
        <else>
            <include resource="logback/prd.xml"/>
        </else>
    </if>
</configuration>

 

 設定を見ると、環境毎の設定ファイルはlogbackディレクトリに作ればよい。STS上では次のような感じになる。設定については先のエントリを参照するか、ご自分の設定をしてください。

 

f:id:arcanum_jp:20190124121902p:plain

 

その上でSTSの起動時のVMオプションに以下のように環境変数を追加

 

-Dspring.profiles.active=local

 

f:id:arcanum_jp:20190124122049p:plain

これで実行する。

 

イスラーム主義、末近 浩太著を読んで

 

イスラーム主義――もう一つの近代を構想する (岩波新書)

イスラーム主義――もう一つの近代を構想する (岩波新書)

 

 

ジュンク堂でブラブラと回遊しながらどんな本読めばいんだ?って悩んでる時に見つけた本、そういえばイスラム教とかイスラム主義とか日本人からみて教え自身が前近代的(硬直的に感じる)でニュースで見る過激派なんか、なんだか危ない感じがするけど本当のところはどんなもんだろう?って疑問になり購入

 

色々あるが、イスラム教とイスラム主義自身は異なる、ISなどのいわゆるイスラム原理主義などがあるがそれらはイスラム主義の中の一つでしかないこと。この分類を押さえればいいみたい。以下読んでのメモなど

 

中東はオスマン帝国の崩壊まではイスラム教にとって、個人の信仰と政治は切り離せないもん、渾然一体となっているものだったけど、西洋による植民地化で分割統治と西洋化(本では世俗化という表現)によってその対比として生み出されていったもので、西洋思想とイスラム教との模索の中で生まれた考えで、イスラム教の教えを政治に取り入れましょうという主義。まぁ考えてみればその土地にもともとあった思想に帰りつつあるという感じだろうか。

 

 前述のようにイスラム主義は、ニュースなどで見るイスラム過激派などの集団と混同されることから最近では、そう行った過激派組織などが掲げるものは「ジハード主義」という言葉が使われるようになっている。

 

ただし、このジハードという言葉についても自分なんかは例の自爆テロや聖戦みたいな戦うというイメージを持っているけどちょっと違う模様。ジハード自身は「神のために奮闘する」という意味でしかなく、個人が良い、善きムスリムであるために神の作ったこの地で慈善活動に勤しむ事であったり、クルアーンコーラン)を繰り返し精読したりして理解を深めるといった事など、活動全般をいう。

 

 そのなかで(侵略など)信仰の危機が迫った時に座して死を待つのは神の意志に反するという形で武器を取るというものも含まれる。この武器を取る事に固執した主義者をジハード主義という。

 

 オスマン帝国が崩壊せず、西洋が植民地化して行かなかったらこのイスラム主義やその先にあるジハード主義というものも生まれなかったかもしれないね。またお前らか西洋!みたいな、

 

西洋じゃないけど以前読んだ話では、インドのヒンドゥー教なんかはインドあたりに侵略したアングロサクソンが地元民を支配するために作った階級制度というのが元だって聞いたけど、支配により支配者側の思想が埋め込まれるというのは何度となく起こってきたのだろう、それが中東では西洋による植民地化で分割統治時の西洋化思想の流入があり、その模索として人々の中からイスラム主義が生まれた。

 

西洋の文化って父性の強い文化だと感じていて(なので論理的な思考に強い)そういう文化に侵略された結果、混じり合い、西洋的との折り合いをどうつけていくか、本書の場合はイスラム的なものの模索が始まった。まさに西洋の物事を分析していく方法によってイスラム主義というものが生み出されたということ。

 

この本で言ってる西洋化とはとりもなおさず民主主義の事であるが、西洋から流入された民主主義が根付くのではなく、どのような民主主義を実践していくかがイスラム主義には求められるという事か、では一方戦後民主主義流入した日本ってどうなんだろうねとふと思ったりする。非常に面白い本でした。

 

 

サヨリの干物作って娘の笑顔を見た

お題の通りです。

 

いつものごとく、バス時間が合わないので駅にあるセルバに寄って食材とか見るだけ見てみようかなと回っていたら(見るのは好きなのです)ちょうどいい具合の鯛が安く売っているじゃありませんか!おお!20cmぐらいのサイズで、これ3枚に下ろして4人でちょうどいい・・・しかも2尾で400円・・・以前もこのサイズで買って文句も言われなかったのでまた・・・

 

とふと横を見ると銀ピカな細い魚。なんだこれ・・・サヨリ?綺麗だなぁということでその場でWebで調べたろころ新鮮であれば刺身、干物にしても美味しいと言うことで、干物ように買ってきました。

 

そうそう高くない魚みたいですが1尾あたり75円です。サンマより安いw

f:id:arcanum_jp:20190116205525j:plain

 

銀ピカで綺麗です。剣みたいですね。

f:id:arcanum_jp:20190116205532j:plain

 

さばいてよく洗ってこんな風に5%ぐらいの塩水に1時間ほど漬けます。頭ですが、サンマもですが自分はエラ付近の焼いた時にパリパリになったところが好きなので残す派です。こっち見られるの嫌って人はカットすれば良いかと

f:id:arcanum_jp:20190116212251j:plain

 

こんな風に並べて

f:id:arcanum_jp:20190116224712j:plain

 

冷蔵庫にぶちこんで2日ほど置きます。途中、裏返してまんべんなく乾くようにします。こうすると網で乾かす必要もなく、網が体液でダラダラと汚くなって洗うのが大変という事もありません。

 

冷蔵庫で乾かすってのは、「釣りバカ日誌」で紹介されていましたね。確か、浜ちゃんが南米に赴任した時にゲリラに誘拐されてと言う話です。誘拐された先で子供と仲良くなって、話を聞くと誘拐する環境の一因としてお金を稼ぐ方法が無いという事に気付き、干物の作り方、冷蔵庫で乾かす方法を教えてお金を稼がすようにして誘拐から足を洗わせたという話だったような気がします。今思うとありえないですが。

 

サヨリが寒そうにこっち見てます。そういえばジョジョでもこういうシーンがありましたね。。。(もうやめろ!)

f:id:arcanum_jp:20190116224755j:plain

 

できました。

f:id:arcanum_jp:20190118173022j:plain

 

あとは弱火で焼いてむさぼり食います。

f:id:arcanum_jp:20190118174807j:plain

 

今回、多分骨が食べづらくて子供達どういうかなぁと思っていましたが、思いの外、娘には好評で、美味しい美味しいと骨だけになるまで綺麗サッパリ食べてくれました。本当にこういう時に、作ってよかったと思います。

 

一揆の原理、一揆は労働争議

 

一揆の原理 日本中世の一揆から現代のSNSまで

一揆の原理 日本中世の一揆から現代のSNSまで

 

 

いやぁ衝撃を受けた本だった。面白すぎた。

 

一揆というと、江戸時代の農民たちが重い年貢にしびれを切らして「オラ達もうお上に我慢できねぇだ!」とクワやカマを武器に持って米屋を打ち壊しながら代官を引きづり下ろそうとする革命みたいな、白土三平カムイ伝みたいなのを想像してた。実際カムイ伝をペーパーバックスで読んで、面白いなと思っていた層。

 

ここで一揆のイメージってのは

 

  • クワやカマを武器にしている
  • 米屋を打ち壊す
  • 代官を引きづり降ろす革命的なもの

 

などの最終的には政権打倒などを目標としたもので、そんなイメージを持っていたが、実はそれらは戦後の一揆研究がマルクスの思想から流れる「階級闘争の歴史」感に基づいているからだという。実際には

 

  • クワやカマは持ち出すが農民は武器として使用しない、為政者もなるべく武器は使用しない
  • 米屋は打ち壊すがそれらは当時の金持ちは有徳人と呼ばれ災害の発生時には富めるものが富を放出して貧民を助けるというのが社会的な要請であり、放出しないと強制的に放出させるためで当たり前のことだった模様
  • 階級社会の中で農民は要求(年貢が高い等)を訴えるという行為のみ。打倒を目指すわけではない

 

 

本書によると一揆とは上で書いたような革命的なものではないという、読んでいて感じるのはどちらかというと団体交渉のようだ、実際本書でもそのように書かれる。

 

直訴や逃散(ちょうさん)という制度も面白い。江戸時代というと農民は生まれた所に死ぬまでいるというイメージだったが、この制度で実は村から逃げるという選択肢も存在していたしそれらはお上から認められていた。

 

いやそれ現代の話じゃないの?てだんだんなってくる。今も団体交渉って権利はあるし、会社に不満があれば退職で別の会社に行ける。でもまぁ殆ど行使されないよねぇとか、思いつつ、

 

 じゃぁ今の日本人が上で書いたような一揆労働争議)を起こせないのはどういうわけなのかなぁと思いつつ、教育なんだろうなぁと。

 

JINSの顧客情報の取り組みが面白いな

 メガネが息子とじゃれているときにボキっと折ってしまい、こりゃアカン1年も使ってないのにな・・・とまたJINSに行ってメガネ作ったんだけど、こんなの渡された。

 

お、ついにJINSもまた顧客情報を保存するのか?いやーーーほんと今まで不便だった・・・別に自分は個人情報保存してくれるならそれでいいでよ?視力とかのデータでしょ?って思いつつ話を聞いてみると、自分のデータをアプリに保存すると言うもの。

 

ありゃりゃ・・・?あんまメリット無いなぁと・・・

f:id:arcanum_jp:20190105111430j:plain

JINSは例の個人情報流出の事件があって、店側では一切個人情報を持たないような仕組みになったんだけど、正直買う方から見ると、ほんと、不便になったなと言う感じしかなかった。

 

www.itmedia.co.jp

 

自分も前職で個人情報や会社の情報をデータとして借受けるときは客先にもめんどくさいプロセスをご理解していただいた上で借りるし返すときもほんとめんどくさいプロセスを経ていたんだけど、個人情報ほどめんどくさい、企業としては保存したくないものなんだよなぁって思いつつ仕事してた。(別に個人情報により利益を得るような企業じゃなかったし)個人にリーチする企業ならそりゃ個人のなにかしらの情報は喉から手が出るぐらい欲しいんだろうけど、ほんとめんどくさい。

 

んで先ほどのアプリ。個人の視力などのデータはあくまでアプリで自分で管理というものみたい。なのでJINSとしては個人情報はとっていないと。まぁこれだとスマホ交換するたびにアプリ入れるかよ?とかツッコミ入れたくなってくるけど、これである程度、毎回視力検査などの工数をカットできるって店側にメリットがあるってことなんだろうなぁと。

 

 

 

宮城県南部の郷土料理、イカニンジン作った

f:id:arcanum_jp:20190103155409j:plain

 

自分の実家は宮城県南部にあります。昔からよくこの季節に食べていたイカとニンジンを和えた料理ですが、宮城県北部に住んでいたカミさんは見たことも食べたこともなかったらしく、このバキバキなニンジンなんなの?って言ってました。結構宮城って北部と南部でいろいろと食べ物が違うらしく結構カルチャーショックでした。自分がショックを受けたのは「はっと」でしょうか?宮城北部の方でコンスタントに食べられている食事みたいで、まぁすいとんなんでしょうけど、、、

 

このイカニンジンも実は宮城と福島の一部の地域で食べられているものみたいですね。全国的に食べられていたものかと思っていました。Wikipediaで見ると、福島県北部の郷土料理らしいですね、母は宮城県丸森出身なので、その地域に引っかかっていたという感じでしょうか?その周辺地域でも作られていたのでしょう。

https://ja.wikipedia.org/wiki/いかにんじん

 

作り方を長らく知らなかったのでこの機会にと母に教えてもらい作りました。

 

作り方は、

 

  1. イカの干物を細長く切ります。
  2. 水に晒して柔らかくします。
  3. ニンジンは細長く切ります。
  4. 切ったニンジンを塩で揉んで洗い流します。
  5. イカとニンジンと調味料にめんつゆと酒を入れて和えます。

たったこれだけです。以下に写真付きで書きますが大体ニンジン3本ぐらいで30分程度で仕込めます。

 

イカを細く切ります。これで大体小さいイカ2枚分です。

f:id:arcanum_jp:20190103125327j:plain

 

水にさらしてふやかしておきます。作った感触だけどこれはあんまり時間置かない方が良いと感じました。イカの旨味が水に逃げてしまうので。

f:id:arcanum_jp:20190103130245j:plain

 

ニンジンを切ります。大体これで3本です。無心になって切る時間は楽しいですね。

f:id:arcanum_jp:20190103154512j:plain

 

切ったニンジンを塩で揉んで水に流します。味は基本的にめんつゆらしく、この工程はニンジンをしんなりさせるためかなと思います。ちなみに水で流しても結構塩味は効いてますよ。

f:id:arcanum_jp:20190103154734j:plain

 

イカとニンジンをめんつゆと酒で和えます。酒は子供も食べる都合上、アルコールはあらかじめ飛ばしておきます。好き付きですが、実家では飛ばさずにそのまま酒を入れていたそうです。

f:id:arcanum_jp:20190103155215j:plain

 

重しを乗せてあとは待つだけですね、、少々雑な写真ですが・・・

f:id:arcanum_jp:20190103155225j:plain

 

適当に盛り付けて完成です。家では多分自分ぐらいしか食べないのだろうけど、これでこれからもイカニンジンを食べることができます。

f:id:arcanum_jp:20190103155409j:plain