SlideShare a Scribd company logo
SpringMVCとmixer2で作る
       Webアプリのキホン

        Basic Web Application
    with SpringMVC & mixer2
Spring勉強会 by #JSUG at VMWare-Japan
                        2013-01-24
プロローグ
PROLOGUE


           2
クリスマスイブのとあるツイート




                  3
MacBookじゃなくてスイマセン...




                       4
なんかこのタイトルもダサく
思えてきた...


  SpringMVCとmixer2で作る
         Webアプリのキホン
とりあえずタイトル変えてみる!
Webデザイナーさんと
仲良く仕事するための
SpringMVCとmixer2
     2013-01-24
    Spring勉強会
自己紹介


       •   わたなべ
       •   SI屋の技術屋さん
       •   @nabedge
       •   nabedge@gmail.com
       •   http://nabedge.blogspot.jp/



                                         8
目次

1.   SpringMVC
2.   テンプレートエンジン
3.   Mixer2をHelloWorldで解説
4.   Why mixer2 ?
5.   SpringMVCとmixer2の組み合わせの勘所
6.   コントローラとビューに対するテスト
7.   Webアプリの分割開発
8.   まとめ
9.   FAQ
                                 9
1. Spring MVC



                10
SpringMVC

• JavaでWebアプリをつくりためのMVCフレー
  ムワーク。
• 生のサーブレット&JSPで作るより100倍作り
  やすい。
• 大昔のStrutsより10倍は学習しやすい
• ライバルとしてはSeasarのSAStrutsとか。
• Spring3.Xになって以降はSAStrutsよりもさら
  に使いやすくなった!
• 詳しくは「Spring3入門」を読みましょう。
                              11
2. テンプレートエンジン



                12
テンプレートエンジン
JSP:一番身近なテンプレートエンジン

   こんにちは
   <% if (name == null) { %>
     ゲストさん
   <% } else { %>
     <%= name %>さん
   <% } %>
    通常のJava言語、EL式、カスタムタグで書く
                               13
テンプレートエンジン
Velocity:Javaでは老舗のテンプレートエンジン

    こんにちは
    #if (name == null) {
       ゲストさん
    #else
       ${name}さん
    #end
     VTL = Velocity Template Languageで書く
                                           14
テンプレートエンジン
FreeMarker:最近人気のテンプレートエンジン

   こんにちは
   <#if name?has_content>
     ${name}さん
   <#else>
     ゲストさん
   </#if>
   FTL = Freemarker Template Languageで書く
                                       15
テンプレートエンジン
Mixer2:Webデザイナーと仲良く仕事するため
のテンプレートエンジン
テンプレートファイル(*.html)は純粋なXHTMLとCSS
  こんにちは
  <span id=“name”>ななし</span>さん
値の埋め込みやロジックは普通のJavaで書く(*.java)
  String name = “ヤマダ”;
  Span span = html.getById(“name”, Span.class);
  span.getContent.clear();
  span.getContent.add(name);
  // これで <span id=“name”>ヤマダ</span>さん
  // になる
                                                  16
3. mixer2を
 HelloWorld(SpringMVC編)
           で解説
http://mixer2.org/site/springmvcsample.html


                                              17
補足:タグとJava型
HTMLタグとJavaオブジェクトを相互マッピング

 <html>…</html> ⇔ org.mixer2.jaxb.xhtml.Html
 <div>…</div>   ⇔ org.mixer2.jaxb.xhtml.Div
 (ほか全120種類くらいのタグすべてを実装済み)

タグの属性はJavaオブジェクトのプロパティにマッピング。
setter/getterメソッドでアクセス
  <div id=“foo”>…</div>
  をテンプレートとしてロードすると
  String id = div.getId(); // これでidに”foo”が入る
  (html4/5のすべての属性を実装済み)
                                               18
補足:複数要素はListになる
template.html                    listの中身
<html>                           index      型
<body>
                                 0          P
 <p>Hello World</p>
 foo                             1          String
 <span>bar</span>
</body>                          2          Span
</html>


Html html = mixer2Engine         java.util.List<Object> list
      .loadHtmlTemplate(            = html.getBody()
             “template.html”);          .getContent();
                                                               19
ちょっと一息




         •水分補給
         •時間を確認
         10分か15分くらい?
                   20
4. Why mixer2 ?



                  21
最大のメリット



 htmlモックアップを
 JSPに書き変えずに
 そのまま使える

               22
デモ
(フルーツショップサンプルアプリ編)
     https://github.com/nabedge/mixer2-
sample/tree/master/mixer2-fruitshop-springmvc


   「github mixer2-fruitshop-springmvc」
   でググるとすぐ見つかります。

                                                23
5. Mixer2とSpringMVCを
組み合わせる場合の勘所



                       24
勘所

1. コントローラクラスの肥大化を防ぐ
2. aタグやimgタグの相対パスの書き換え
3. <mvc:resources />で静的リソースを出
   力
4. 上の2,3を生かすためのおススメディレ
   クトリ構造



                            25
コントローラクラスの肥大化を防ぐ




                   26
ふつうのコントローラとJSP
商品情報を表示するコントローラクラス
  @Controller
  public class ItemController {
   @RequestMapping(value = "/item/{itemId}")
   public ModelAndView showItem(@PathVariable long itemId) {
     // DBから商品情報を取得
     Item item = itemService.getItem(itemId);
     // modelAndViewにitemを詰めて返す
     retern new ModelAndView(“item.jsp”, “item”, item);
   }

JSP
  <%@page pageEncoding="UTF-8"%>
  <html>
   <body>
    <span>商品名:${item.name}</span>
   </body>
  </html>                                                      27
コントローラの肥大化を防ぐ
@RequestMapping(value = "/item/{itemId}")
public ModelAndView showItem(@PathVariable long itemId) {

  // DBから商品情報を取得
  Item item = itemService.getItem(itemId);

  // テンプレートのロード
  String mainTemplate = "classpath:m2mockup/m2template/item.html"
  File file = ResourceUtils.getFile(mainTemplate);
  Html html = mixer2Engine.loadHtmlTemplate(file); このへんが肥大化
                                                       してしまう
  // 商品情報のdivタグ
  Div itemBox = html.getBody().getById("itemBox", Div.class);

  // 商品名を書き込む
  itemBox.getById("itemName", H1.class).getContent().clear();
  itemBox.getById("itemName", H1.class).getContent().add(item.getName());
  // 価格、説明、その他もろもろも...
                                                                      28
コントローラの肥大化を防ぐ
@RequestMapping(value = "/item/{itemId}")
public ModelAndView showItem(@PathVariable long itemId) {

  // DBから商品情報を取得
  Item item = itemService.getItem(itemId);

  // テンプレートのロード
  String mainTemplate = "classpath:m2mockup/m2template/item.html"
  File file = ResourceUtils.getFile(mainTemplate);
  Html html = mixer2Engine.loadHtmlTemplate(file);

  // 商品情報を埋め込む
  ItemHelper.replaceItemBox(html, item);
  ……
                                             ヘルパークラスに切り
                                             出せば1行で済む

                                                                    29
コントローラの肥大化を防ぐ
ヘルパーはごく単純なstaticメソッドでよい
public class ItemHelper {
                            テンプレのhtml              DBから取得した商品情報
 public static void replaceItemBox(Html html, Item item) {

  // 商品情報を入れるdivタグを取得
  Div itemBox = html.getBody().getById("itemBox", Div.class);

  // divの中のH1やSpanの中にDBから取得した値を入れる
  itemBox.getById("itemName", H1.class).getContent().clear();
  itemBox.getById("itemName", H1.class).getContent().add(item.getName());
  itemBox.getById("itemPrice", Span.class).getContent().clear();
  itemBox.getById("itemPrice", Span.class).getContent().add(
     item.getPrice().toString());
  itemBox.getById("itemDescription", Div.class).getContent().clear();
  itemBox.getById("itemDescription", Div.class).getContent().add(
     item.getDescription());
                                                                      30
相対パスの書き換え
左上のロゴはトップページへ
のリンク
テンプレートファイルではこうなってるけど
<a class=“topPageAnchor”
  href="../m2template/index.html">
 <img src="../m2static/img/fruitshop-logo.png" />
</a>
実際の出力ではこうしなきゃならない
<a class=“topPageAnchor”
  href=“/[contextPath]/">
 <img src="/[contextPath]/m2static/img/fruitshop-logo.png" />
</a>
                                                           31
相対パスの書き換え
“topPageAnchor”というclass属性を持つすべてのaタグのhref属
性を書き変える
String ctx = "xxx"; // コンテキストパスを取得しておく

for (A a : html.getDescendants("topPageAnchor", A.class)) {
   a.setHref(ctx + "/");
}

Mixer2ではすべてのタグ型が下記のメソッドを持っている
• getDescendants()メソッド:該当するすべての子孫タグをList
   で取得
• getById()メソッド:id属性でタグを1個だけ取得
• 他にもreplace系とかremove系のメソッドもあります。
                                                              32
相対パスの書き換え
Imgタグのsrc属性、styleタグのhref属性なども同様
// <img src="" />
for (Img img : tagObj.getDescendants(Img.class)) {
   if (img.isSetSrc()) {
       String src = img.getSrc();
       img.setSrc(convertPath(src));
   }
}

                   convertPathメソッドは、
                     ../m2static/
                   のような文字列を
                     /[contextPath]/m2static/
                   に置換している
                                                     33
<mvc:resources />で
 静的リソースを出力




                     34
Java/Webアプリでの静的ファイルの配置

http://localhost:8080/[contextPath]/foo/bar.png

  src
  └─main           普通ならdocroot配下に置く。
      ├─java       さもないとブラウザからアク
      ├─resources  セス不可能
      └─webapp
        └─foo
            └─bar.png

    ※maven標準ディレクトリ構造です
                                              35
Java/Webアプリでの静的ファイルの配置

src
└─main
    ├─java
    ├─resources
    │ │ applicationContext.xml
    │ │
    │ └─m2mockup                 テンプレートhtmlと画像
    │     ├─m2static
    │     │ └─img                やCSSをまとめて
    │     │          logo.png    resources配下に置く。
    │     │                      クラスパス上に置くほう
    │     └─m2template           が、Javaコードから扱い
    │            index.html      やすいから!
    │            item.html
    │
    └─webapp

                                                   36
DispatcherServletのstatic resource機能




 • Spring3.X以降、DispatcherServletは、http
   リクエストをコントローラクラスに中継する機
   能だけでなく、静的リソースを直接レスポンス
   する機能がある




                                         37
Java/Webアプリでの静的ファイルの配置
src/main/resources/mvc-dispatcher-servlet.xml の抜粋

  <mvc:resources
      mapping="/m2static/**"
      location="classpath:/m2mockup/m2static/"
      cache-period="60" />
  1. http://.../contextPath/m2static/** というURLへの
     アクセスに対して
  2. クラスパスから /m2mockup/m2static/** というリ
     ソースを探してそれを返す
  3. そのとき Cache-Control: max-age=60 のような
     httpレスポンスヘッダつきで返す
                                                    38
ただし、注意しないと、、、!
1. こういうディレクトリ構造で            2. こういう設定をしてしまうと
src                         <mvc:resources
└─main                        mapping=
    ├─java
    ├─resources
                                "/m2mockup/**"
    │ └─m2mockup              location=
    │     ├─img                 "classpath:/m2mockup/"/>
    │     │     logo.png
    │     └─item.html
    └─webapp


3. 画像やCSSだけでなく、テンプレートhtmlにもそのままアクセス
できてしまう!(もちろんまずい)
      http://…/[ContextPath]/m2mockup/img/logo.png
      http://…/[ContextPath]/m2mockup/item.html
                                                      39
だから、これがオススメ構造

src
└─main
    ├─java                      m2mockup配下にモック
    ├─resources                 アップhtmlを作る
    │ │ applicationContext.xml
    │ │
    │ └─m2mockup                画像やCSSはm2static配下に
    │     ├─m2static            置いて、 <mvc:resources />
    │     │ └─img
    │     │          logo.png
                                の設定での出力対象にする
    │     │
    │     └─m2template
    │            index.html
    │            item.html
    │
    └─webapp                  htmlテンプレートは
                          m2template配下に
                                                     40
これでデザイナとプログラマが仲良く仕事できる!




   プログラマとデザイナの取り決め事項
   1. htmlモックアップは
      src/main/resources/m2mockup の下に作
      ろうぜ。
   2. ただし*.htmlはm2template,それ以外は
      m2staticの配下でたのむ。
   3. 商品情報のdivタグはid=“itemBox”にしよう。
   4. 商品名はspanタグでid=“itemName”
   5. …..その他の情報も同様にclass属性やid属性を決
    めておけばよい。
                                         41
もちろん
「htmlをjspに書き変える」
という退屈な作業は不要



                   42
6. コントローラとビューに対するテスト




                  43
ざっくりした流れ
1. JunitコードのランナーとしてSpringJUnit4ClassRunner を
   使えば、DIコンテナが勝手にいい感じで起動してくれる。
2. HttpServletRequest, HttpServletResponseのモックをイン
   スタンス化する
3. モックのrequestにテスト対象のURIやパラメータをセット
4. そのrequestオブジェクトをリクエストハンドラに渡すと疑似
   リクエストが発生し、コントローラクラスに渡される。
5. コントローラの該当メソッドが戻り値として返す
   ModelAndViewオブジェクトにhtmlStringが入っている。
6. このhtmlStringの中をMixer2Engineで再度Htmlオブジェク
   ト化する
7. Htmlオブジェクトの中をAssertすればよい。

                                                44
実際のテストコードで説明します

 https://github.com/nabedge/mixer2-
 sample/blob/master/mixer2-fruitshop-
 springmvc/src/test/java/org/mixer2/samp
 le/web/controller/ItemControllerTest.java

                                             45
最後の給水




        •水分補給
        •時間を確認
        40分くらい?
                  46
Webアプリの分割開発




              47
普通のWebアプリプロジェクト(maven形式)
                     Javaクラス以外は
                     src/main/webapp



                           静的ファイル
                           このへん

 Javaクラスとか
 このへん


             JSPとか
             このへん

                                   48
普通のWebアプリを分割開発するときのカベ

1. Javaクラスや、その設定ファイル
   (*.properties,*.xml,*.sql)は別プロジェクト化
   してjar化してWebアプリ側から依存関係を
   つくればいい。
 – つまり、Javaライブラリは分割開発可能


2. しかし、src/main/webapp 配下に置くような
   JSP,静的リソース、設定ファイル類(MVCで
   言うとViewの周辺)は、プロジェクト分割&
   別パッケージ化が難しい。
                                     49
Mixer2を使うと

 1. Mixer2は、Viewを普通のjavaコードで取
    扱う。

 2. そのテンプレートもJavaコードから見ると
    ただのリソースファイルとして扱える。

 3. よって、普通のJavaライブラリ同様に分割
    が可能。


                                50
デモ

• デモでお見せします。
 プロジェクト間依存関係はこんな感
 じ
 m2flowershop-web(.war)
     m2flowershop-front(.jar)
     m2flowershop-cart(.jar)
       m2flowershop-resource(.jar)
                                     51
後日談

• ※結局、当日までにサンプルのコーディング
  が間に合わなかったのでこのデモはやってま
  せん。(^^;




                         52
7. まとめ




         53
まとめ

• SpringMVCはシンプルで使いやすいフレームワーク
• mixer2とSpringMVCは良いコンビ
• ディレクトリ構造を考えたうえでSpringMVCの静的リ
  ソース出力機能と組み合わせれば、htmlモックアップ
  をjspに書き変える作業は不要
• jspでは難しい、ビューに対するテストの自動化も可
  能
• htmlテンプレートファイルと静的ファイル(ex.画像)と
  Javaクラスをjarパッケージ化できるので、Webアプリ
  の分割開発すら可能。
                              54
FAQ
• Q. モックアップHTMLはクラスパス上に置かなきゃダメですか?
  – A. Mixer2EngineのloadHtmlTemplateメソッドはjava.io.File, String,
    StringBufferのいずれかでテンプレートhtmlを読めます。したがってOSのファイ
    ルシステム上でもDB上でもどこでもOKです。
  – ※後日談:ver1.1.14 以降、InputStreamからも読めるようになりました。


• Q. WEB-INF/view/mixer2view.jsp を通じて結局jspを使っているのはダ
  サくないですか?
  – A. 実はその通りです。本来は、コントローラのメソッドの戻り値としてHtmlオブ
    ジェクトを返すだけで済むようなViewResolverを実装するべきです。誰か作っ
    て!(Pull Request熱烈歓迎!)


• Q. mixer2を使う場合はJSPは完全に排除しなきゃだめですか?既存の
  taglibも使いたいのですが?
  – A. 可能です。たとえば、 *.htmlで用意したテンプレートを読み込んで、その一部
    のタグだけを部分マーシャルし、jsp上に埋め込むことも可能です。

                                                                 55
ご静聴ありがとうございました




                 56

More Related Content

What's hot (18)

XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
Mitsuru Katoh
 
Java EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfileJava EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfile
Norito Agetsuma
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Yoshitaka Kawashima
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
 
Deep dive into instanceof
Deep dive into instanceofDeep dive into instanceof
Deep dive into instanceof
Hiroshi Saito
 
Heap statsfx analyzer
Heap statsfx analyzerHeap statsfx analyzer
Heap statsfx analyzer
Yasumasa Suenaga
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
dynamis
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤
Yuichi Sakuraba
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
Y Watanabe
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
 
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
Mitsuru Katoh
 
Java EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfileJava EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfile
Norito Agetsuma
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Yoshitaka Kawashima
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
 
Deep dive into instanceof
Deep dive into instanceofDeep dive into instanceof
Deep dive into instanceof
Hiroshi Saito
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
dynamis
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤
Yuichi Sakuraba
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
Y Watanabe
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
 

Viewers also liked (20)

Springの今
Springの今Springの今
Springの今
Kazuyuki Kawamura
 
Spring3.1概要x di
Spring3.1概要x diSpring3.1概要x di
Spring3.1概要x di
Yuichi Hasegawa
 
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Y Watanabe
 
Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVCSpring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVC
Yuichi Hasegawa
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
Y Watanabe
 
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
Y Watanabe
 
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe
 
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷javaMixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
Y Watanabe
 
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
 
日本語によるJUnitの拡張について
日本語によるJUnitの拡張について日本語によるJUnitの拡張について
日本語によるJUnitの拡張について
Kazuro Fukuhara
 
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
Y Watanabe
 
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
 
Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016
Yoshio Terada
 
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
Y Watanabe
 
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe
 
properties, yaml, and me
properties, yaml, and meproperties, yaml, and me
properties, yaml, and me
Y Watanabe
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Y Watanabe
 
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
 
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
 
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Y Watanabe
 
Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVCSpring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVC
Yuichi Hasegawa
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
Y Watanabe
 
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
Y Watanabe
 
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe
 
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷javaMixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
Y Watanabe
 
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
 
日本語によるJUnitの拡張について
日本語によるJUnitの拡張について日本語によるJUnitの拡張について
日本語によるJUnitの拡張について
Kazuro Fukuhara
 
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
Y Watanabe
 
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
 
Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016
Yoshio Terada
 
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
Y Watanabe
 
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe
 
properties, yaml, and me
properties, yaml, and meproperties, yaml, and me
properties, yaml, and me
Y Watanabe
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Y Watanabe
 
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
 
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
 
Ad

Similar to SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug (20)

Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
龍一 田中
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
youku
 
Vue入門
Vue入門Vue入門
Vue入門
Takeo Noda
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
Yusuke Tochigi
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
 
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
hokori matu
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
tako pons
 
Ajax basic
Ajax basicAjax basic
Ajax basic
Katsuyuki Seino
 
Ruby on Rails Tutorial
Ruby on Rails TutorialRuby on Rails Tutorial
Ruby on Rails Tutorial
Ken Iiboshi
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
Hiroshi Okunushi
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
Yoshitaka Seo
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
Nobuhiro Sue
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
龍一 田中
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
youku
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
Yusuke Tochigi
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
 
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
hokori matu
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
tako pons
 
Ruby on Rails Tutorial
Ruby on Rails TutorialRuby on Rails Tutorial
Ruby on Rails Tutorial
Ken Iiboshi
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
Hiroshi Okunushi
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
Yoshitaka Seo
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
Nobuhiro Sue
 
Ad

More from Y Watanabe (6)

クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
Y Watanabe
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe
 
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Y Watanabe
 
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
Y Watanabe
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe
 
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Y Watanabe
 

Recently uploaded (6)

Azure OpenAI と LangChain4j を使用した LLM Java エンタープライズ・アプリケーションの 構築方法の紹介
Azure OpenAI と LangChain4j を使用したLLM Java エンタープライズ・アプリケーションの構築方法の紹介Azure OpenAI と LangChain4j を使用したLLM Java エンタープライズ・アプリケーションの構築方法の紹介
Azure OpenAI と LangChain4j を使用した LLM Java エンタープライズ・アプリケーションの 構築方法の紹介
Yoshio Terada
 
イミュータブルデータモデルの導入実験と結果(JJUG CCC 2025 Spring)
イミュータブルデータモデルの導入実験と結果(JJUG CCC 2025 Spring)イミュータブルデータモデルの導入実験と結果(JJUG CCC 2025 Spring)
イミュータブルデータモデルの導入実験と結果(JJUG CCC 2025 Spring)
kiyokawa0702yuuma
 
SayakaHayashi_既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討_deim2025
SayakaHayashi_既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討_deim2025SayakaHayashi_既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討_deim2025
SayakaHayashi_既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討_deim2025
Matsushita Laboratory
 
AIVIDEO MAG JUNE2025 FIRST TEST---------
AIVIDEO MAG JUNE2025 FIRST TEST---------AIVIDEO MAG JUNE2025 FIRST TEST---------
AIVIDEO MAG JUNE2025 FIRST TEST---------
1pcity Studios, Inc
 
20250611_話題のDevin、エンプラ開発で〇人分の仕事はできるのか !?
20250611_話題のDevin、エンプラ開発で〇人分の仕事はできるのか !?20250611_話題のDevin、エンプラ開発で〇人分の仕事はできるのか !?
20250611_話題のDevin、エンプラ開発で〇人分の仕事はできるのか !?
Masaki Yamakawa
 
PR業務に 地味に効く! AI活用実践集 ――毎日使ってわかった20の使いどころ
PR業務に 地味に効く! AI活用実践集 ――毎日使ってわかった20の使いどころPR業務に 地味に効く! AI活用実践集 ――毎日使ってわかった20の使いどころ
PR業務に 地味に効く! AI活用実践集 ――毎日使ってわかった20の使いどころ
maeri111b
 
Azure OpenAI と LangChain4j を使用した LLM Java エンタープライズ・アプリケーションの 構築方法の紹介
Azure OpenAI と LangChain4j を使用したLLM Java エンタープライズ・アプリケーションの構築方法の紹介Azure OpenAI と LangChain4j を使用したLLM Java エンタープライズ・アプリケーションの構築方法の紹介
Azure OpenAI と LangChain4j を使用した LLM Java エンタープライズ・アプリケーションの 構築方法の紹介
Yoshio Terada
 
イミュータブルデータモデルの導入実験と結果(JJUG CCC 2025 Spring)
イミュータブルデータモデルの導入実験と結果(JJUG CCC 2025 Spring)イミュータブルデータモデルの導入実験と結果(JJUG CCC 2025 Spring)
イミュータブルデータモデルの導入実験と結果(JJUG CCC 2025 Spring)
kiyokawa0702yuuma
 
SayakaHayashi_既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討_deim2025
SayakaHayashi_既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討_deim2025SayakaHayashi_既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討_deim2025
SayakaHayashi_既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討_deim2025
Matsushita Laboratory
 
AIVIDEO MAG JUNE2025 FIRST TEST---------
AIVIDEO MAG JUNE2025 FIRST TEST---------AIVIDEO MAG JUNE2025 FIRST TEST---------
AIVIDEO MAG JUNE2025 FIRST TEST---------
1pcity Studios, Inc
 
20250611_話題のDevin、エンプラ開発で〇人分の仕事はできるのか !?
20250611_話題のDevin、エンプラ開発で〇人分の仕事はできるのか !?20250611_話題のDevin、エンプラ開発で〇人分の仕事はできるのか !?
20250611_話題のDevin、エンプラ開発で〇人分の仕事はできるのか !?
Masaki Yamakawa
 
PR業務に 地味に効く! AI活用実践集 ――毎日使ってわかった20の使いどころ
PR業務に 地味に効く! AI活用実践集 ――毎日使ってわかった20の使いどころPR業務に 地味に効く! AI活用実践集 ――毎日使ってわかった20の使いどころ
PR業務に 地味に効く! AI活用実践集 ――毎日使ってわかった20の使いどころ
maeri111b
 

SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug