SlideShare a Scribd company logo
1 of 114
Download to read offline
Spring Bootで変わる
Javaアプリ開発!
日本Springユーザ会 勉強会
∼やっぱりSpringを始めよう!
2014/08/13
槙 俊明(@making)
ハッシュタグ
#jsug
自己紹介
• @making
• http://blog.ik.am
• 日本Javaユーザーグループ(JJUG)幹事
• Spring Boot本書いています
http://amzn.to/hajiboo
地味にSpring Boot Contributor
JJUG CCC 2014 Fall
http://www.java-users.jp/?p=1253
2014/11/15(土)
2014/09/30までCall for Paper募集中!
Springネタを是非お待ちしております!
http://www.slideshare.net/makingx/
spring-4spring-boot-spring-jjug-jsug
http://www.slideshare.net/
makingx/grails-30-spring-boot
今日のコンテンツ
1. Spring Boot概要
2. Spring Bootで何が変わる?
• アプリの設定が変わる
• アプリのデプロイも変わる
• システムのアーキテクチャも変わる?
Spring Boot概要
Spring Bootとは?
フレームワークというよりプラットフォーム
現在1.1.5.RELEASE
簡単に言うと、Spring Framework
でアプリケーションを簡単に作る
ための仕組み
Spring Bootを使うことで・・
モダンでいけてるJava
アプリケーションを
簡単に構築できる
Spring Bootの特徴
• あらかじめオススメの組み合わせが決
まる
• 依存ライブラリを同梱するだけで自動
で設定が決まる
• 組み込みサーバーを同梱し、アプリを
即実行可能 アプリケーション自体は
Spring MVCやSpring Batchで書く
Spring BootはDropwizard
にインスパイアされた
Dropwizardに比べてSpring Bootがいいところ
•これまでのSpring Frameworkのノウ
ハウがそのまま活かせる
•Spring Frameworkの開発元が開発し
ている
•チュートリアル・サンプル・ドキュメ
ントが充実している
チュートリアルが豊富
• http://spring.io/guides
70種類以上の簡易チュートリアル
サンプルが豊富
• https://github.com/spring-projects/spring-boot/tree/
master/spring-boot-samples
40種類以上のサンプルプロジェクト
Technology Radar July2014
http://thoughtworks.fileburst.com/assets/technology-radar-july-2014-en.pdf
Spring BootでHello World
Mavenアーキタイプでプロジェ
クト雛形生成
$ mvn -B archetype:generate -DgroupId=com.example
-DartifactId=jsug-helloworld -Dversion=1.0.0-
SNAPSHOT -DarchetypeArtifactId=maven-archetype-
quickstart
Spring Bootに関係のない汎用的な手順
pom.xmlを編集
<parent>	
<groupId>org.springframework.boot</groupId>	
<artifactId>spring-boot-starter-parent</artifactId>	
<version>1.1.5.RELEASE</version>	
</parent>	
<dependencies>	
<dependency>	
<groupId>org.springframework.boot</groupId>	
<artifactId>spring-boot-starter-web</artifactId>	
</dependency>	
<dependency>	
<groupId>org.springframework.boot</groupId>	
<artifactId>spring-boot-starter-test</artifactId>	
<scope>test</scope>	
</dependency>	
</dependencies>	
<build>	
<plugins>	
<plugin>	
<groupId>org.springframework.boot</groupId>	
<artifactId>spring-boot-maven-plugin</artifactId>	
</plugin>	
</plugins>	
</build>	
<properties>	
<java.version>1.8</java.version>	
</properties>	
 
この設定を追加
するだけ
インポート後
いろいろな依存関係が追加され
ている
package com.example;	
!
import org.springframework.boot.SpringApplication;	
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;	
import org.springframework.web.bind.annotation.RequestMapping;	
import org.springframework.web.bind.annotation.RestController;	
!
@RestController	
@EnableAutoConfiguration	
public class App {	
!
@RequestMapping("/")	
String home() {	
return "Hello World!";	
}	
!
public static void main(String[] args) {	
SpringApplication.run(App.class, args);	
}	
}
魔法のアノテーション
mainメソッドでアプリ実行
まずは実行
• 実行方法は2通り
または
$ mvn spring-boot:run
$ gradle bootRun Gradleの場合
ログ
組込Tomcatが起動した
http://localhost:8080 にアクセス
実行可能jarを作成
$ mvn package
jarを実行
$ java -jar target/jggug-helloworld-1.0.0-
SNAPSHOT.jar
プロパティを変更して実行
$ java -jar target/jggug-helloworld-1.0.0-
SNAPSHOT.jar --server.port=8888
--(プロパティ名)=(プロパティ値)
予め用意されている沢山のプロ
パティを変更可能
• http://docs.spring.io/spring-boot/docs/
1.1.4.RELEASE/reference/html/common-application-
properties.html
一度作ったjarはそのまま本番環境で使用可能。
配布も可能。
Spring Bootで何が変わる?
Spring Bootで何が変わる?
• アプリの設定が変わる
• アプリのデプロイが変わる
Spring Bootで何が変わる?
• アプリの設定が変わる
• アプリのデプロイが変わる
ほとんど設定不要!
Spring Bootで何が変わる?
• アプリの設定が変わる
• アプリのデプロイが変わる
ほとんど設定不要!
jarを実行するだけ!
アプリの設定が変わる
AutoConfigure
• 自動でいい感じの設定が行われる仕組み
• @EnableAutoConfigurationで自動設
定が有効化
• ポイントは@Conditionalアノテーション
AutoConfigureの説明の前に
ベースとなるJavaConfigの説明
package com.example;	
!
import org.springframework.context.annotation.Bean;	
import org.springframework.context.annotation.Configuration;	
!
@Configuration	
public class AppConfig {	
!
@Bean	
SomeBean someBean() {	
returen new SomeBean();	
}	
}
JavaConfigの記法 com.example.AppConfig
JavaConfig宣言
Bean定義宣言
@Conditional
package com.example;	
!
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass;	
import org.springframework.context.annotation.Bean;	
import org.springframework.context.annotation.Configuration;	
!
@Configuration	
@ConditionalOnClass({SomeBean.class})	
public class AppConfig {	
!
@Bean	
SomeBean someBean() {	
returen new SomeBean();	
}	
}
クラスパス上にSomeBeanが存在
した場合にこのBean定義が有効
SomeBeanを含むライブラリ(jar)
を追加するだけで有効になる!
Autoconfigureを支える
@Conditional
@ConditionalOnBean
指定したクラスの
有効
@ConditionalOnClass 指定したクラスがクラスパス上にあれば有効
@ConditionalOnMissing
Bean
指定したクラスの
ば有効
@ConditionalOnMissing
Class
指定したクラスがクラスパス上にあれば有効
@ConditionalOnPropert
y
指定したプロパティが指定した値であれば有効
@ConditionalOnExpress
ion
指定した
等。
org.springframework.boot.autoconfigure.condition	
以下を参照
初めからサポートされている
Autoconfigure
初めからサポートされている
Autoconfigure
•Spring AMQP(RabitMQ)
•Spring Batch
•Spring Data
•Spring HATEOAS
•Spring Integration
•Spring Mobile
•Spring Security
•Spring Social
•Tomcat
•Jetty
•ThymeLeaf
•JPA
•JMS
•WebSocket
•Solr
•ElasticSearch
•MongoDB
•Redis
•Liquibase
•Flyway
など
Starter
• 使いたい機能のAutoConfigureを有効にするための、
依存関係を定義したMavenプロジェクト(pom)
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-starters
30種類以上のstarterプロ
ジェクト
!
<dependency>	
<groupId>org.springframework.boot</groupId>	
<artifactId>spring-boot-starter-data-jpa</artifactId>	
</dependency>	
spring-boot-starter-data-
jpaを追加するだけ。
[例] Spring Data JPAを使いたい
必要な依存関係が追加される
👉 AutoConfigureの中をのぞこう
@Configuration	
@ConditionalOnBean(DataSource.class)	
@ConditionalOnClass(JpaRepository.class)	
@ConditionalOnMissingBean(RepositoryFactoryBeanSupport.class)	
@ConditionalOnExpression("${spring.data.jpa.repositories.enabled:true}")	
@Import(JpaRepositoriesAutoConfigureRegistrar.class)	
@AutoConfigureAfter(HibernateJpaAutoConfiguration.class)	
public class JpaRepositoriesAutoConfiguration {	
	 @Configuration	
	 @EnableSpringDataWebSupport	
	 @ConditionalOnWebApplication	
	 @ConditionalOnMissingBean(PageableHandlerMethodArgumentResolver.class)	
	 protected static class JpaWebConfiguration {	
	 }	
}
DataSourceが出来ていて
JpaRepositoryクラスが存在
各種条件が ったら有効
別の定義をimport
@EnableConfigurationProperties(JpaProperties.class)	
@Import(DataSourceInitializedPublisher.Registrar.class)	
public abstract class JpaBaseConfiguration implements BeanFactoryAware {	
!
	 // ...	
	 @Bean	
	 @ConditionalOnMissingBean	
	 public EntityManagerFactoryBuilder entityManagerFactoryBuilder(	
	 	 	 JpaVendorAdapter jpaVendorAdapter) {	
	 	 EntityManagerFactoryBuilder builder = new EntityManagerFactoryBuilder(	
	 	 	 	 jpaVendorAdapter, this.jpaProperties, this.persistenceUnitManager);	
	 	 builder.setCallback(getVendorCallback());	
	 	 return builder;	
	 }	
	 @Bean	
	 @Primary	
	 @ConditionalOnMissingBean	
	 public LocalContainerEntityManagerFactoryBean entityManagerFactory(	
	 	 	 EntityManagerFactoryBuilder factory) {	
	 	 return factory.dataSource(this.dataSource).packages(getPackagesToScan())	
	 	 	 	 .properties(getVendorProperties()).build();	
	 }	
}
HibernateJpaAutoConfiguration	
の親クラス
EntityManagerFactory	
の生成
@Configuration	
@ConditionalOnWebApplication	
@ConditionalOnMissingBean({ OpenEntityManagerInViewInterceptor.class,	
	 	 OpenEntityManagerInViewFilter.class })	
@ConditionalOnExpression("${spring.jpa.openInView:${spring.jpa.open_in_view:true}}")	
protected static class JpaWebConfiguration extends WebMvcConfigurerAdapter {	
	 // ...	
!
	 @Bean	
	 public OpenEntityManagerInViewInterceptor openEntityManagerInViewInterceptor() {	
	 	 return new OpenEntityManagerInViewInterceptor();	
	 }	
}	
Open Session In Viewパターン
がデフォルトで適用されている
= Springのオススメパターン?
@EnableAutoConfiguration
package com.example;	
!
import org.springframework.boot.SpringApplication;	
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;	
import org.springframework.context.annotation.ComponentScan;	
!
@EnableAutoConfiguration	
@ComponentScan	
public class App {	
!
public static void main(String[] args) {	
SpringApplication.run(App.class, args);	
}	
}
エントリポイントに
@EnableAutoConfigurationをつけると
自動設定が有効になる
@Service	
@Transactional	
public class BookmarkService {	
@Autowired	
BookmarkRepository bookmarkRepository;	
!
public List<Bookmark> findAll() {	
return bookmarkRepository.findAll(new Sort(Sort.Direction.ASC, "id"));	
}	
!
public Bookmark save(Bookmark bookmark) {	
return bookmarkRepository.save(bookmark);	
}	
!
public void delete(Long id) {	
bookmarkRepository.delete(id);	
}	
}
public interface BookmarkRepository
extends JpaRepository<Bookmark, Long>
{	
!
}
特別な設定なしでSpring Data JPAが使える。特別な設定なしでSpring Data JPAが使える。
ハンズオンで作ったアプリ
設定なしでREST API
を作れる!
AutoConfigureは黒魔術ではない
org.springframework.boot.autoconfigure	
パッケージのソースを読めば、
何が設定されるか分かる。
通常はマニュアル読めばよい。
使いたい機能が合った場合(いままで)
1.必要なライブラリ群の依存関係(通常複数)を追加
2.ライブラリを使うために必要な設定を追加
3.アプリケーションからライブラリを使用する
使いたい機能が合った場合(いままで)
1.必要なライブラリ群の依存関係(通常複数)を追加
2.ライブラリを使うために必要な設定を追加
3.アプリケーションからライブラリを使用する
autoconfigureで不要
starterだけでOK
ここに注力できる
使いたい機能が合った場合(これから)
1.必要なライブラリのstarterを追加
2.ライブラリを使うために必要な設定を追加
3.アプリケーションからライブラリを使用する
例1: 「Spring Social Twitter」を
使ってつぶやく
HelloWorldアプリから10数行だけ
コードを足して、OAuth認可後、
Twitterへツイートできるようにする。
!
<dependency>	
<groupId>org.springframework.boot</groupId>	
<artifactId>spring-boot-starter-social-twitter</artifactId>	
</dependency>	
HelloWorldアプリから10数行だけコー
ドを足して、OAuth認可後、Twitterへ
ツイートできるようにする。
例1: 「Spring Social Twitter」を
使ってつぶやく
starterを追加
@RestController	
@EnableAutoConfiguration	
public class App {	
@Autowired	
ConnectionRepository connectionReposiory;	
@Autowired	
Twitter twitter;	
!
@RequestMapping("/")	
String home(@RequestParam("tweet") String tweet) {	
if (connectionRepository.findPrimaryConnection(Twitter.class) == null) {	
return "<a href='/connect/twitter'>Please connect</a>";	
}	
twitter.timelineOperations().updateStatus(tweet);	
return tweet + " is tweeted!";	
}	
!
public static void main(String[] args) {	
SpringApplication.run(App.class, args);	
}	
}
App.java編集
アプリケーション登録
https://dev.twitter.com/
APIキーの設定
spring.social.twitter:	
app-id: 3b6ZO4iF4AG08P62OVFWlVxEP	
app-secret: 2IdbPGbLjwsCw6prcPNumrQlV07uMKi4hseQoShaeJl51xEEkA	
spring.social.auto-connection-views: true
コネクション用の画面を自動生成
application.yml
Appを実行
ツイート
例2: DBマイグレーションライブラリ
「FlyWay」を使ってみる
<dependency>	
	 <groupId>org.springframework.boot</groupId>	
	 <artifactId>spring-boot-starter-data-jpa</artifactId>	
</dependency>	
<dependency>	
	 <groupId>org.hsqldb</groupId>	
	 <artifactId>hsqldb</artifactId>	
	 <scope>runtime</scope>	
</dependency>	
<dependency>	
	 <groupId>org.flywaydb</groupId>	
	 <artifactId>flyway-core</artifactId>	
</dependency>
ライブラリを追加するだけで
AutoConfigureが有効に
あとは所定の位置にSQLを書くだけ
spring.jpa.hibernate.ddl-auto: validate
CREATE TABLE PERSON (	
	 id BIGINT GENERATED BY DEFAULT AS IDENTITY,	
	 first_name varchar(255) not null,	
	 last_name varchar(255) not null	
);	
!
insert into PERSON (first_name, last_name) values ('Dave', 'Syer');
現在適用されているSQLの
バージョンを確認して、必要
なSQLを自動で実行
DDLの実行はFlywayに任せ
るために、JPAの機能を抑制
Spring Bootの対象は
Webアプリだけではない
• バッチ処理
• システム連携
• Hadoop YARN
説明量が増えすぎたので
今日はカット😢
アプリのデプロイが変わる
これまでのデプロイ(開発)
1.コードを書く/修正する
2.(アプリケーションをビルドする) <= IDEが
自動で行う
3.IDEのプラグインでAPサーバーを起動する
4.IDEのプラグインでAPサーバー上でアプリ
ケーションを実行する
これまでのデプロイ(本番)
1.コードを書く/修正する
2.Ant/Maven/Gradleなどでアプリケーショ
ンをビルドしてwarを作成する
3.APサーバーを起動する
4.APサーバーにwarをデプロイする(warを所
定の場所に配置する)
Spring Bootのデプロイ(開発)
1.コードを書く/修正する
2.(アプリケーションをビルド
する) <= IDEが自動で行う
3.mainメソッド実行する
Spring Bootのデプロイ(本番)
1.コードを書く/修正する
2.Maven/Grandleでビルドして

実行可能jarを作成する
3.jarを所定のフォルダにcpする
4.jarを実行する
Spring Bootの基本パターン
実行可能jarを作って実行。
プロパティは外から変える。
一度作ったjarはどこでも使えてポータブル!
アプリケーションの更新
新しいjarをcpするだけ。
JenkinsやGitbucketと同じ!
起動スクリプト(RedHat系)
# 途中略	
case "$1" in	
start)	
	 echo -n "Starting MyApp "	
	 nohup java $JVM_OPTS -jar $MYAPP_HOME/myapp.jar $PARAMS >> $LOG_FILE 2>&1 &	
	 pid=$!	
	 echo $pid > "$MYAPP_PID_FILE"	
	 success	
	 echo	
	 ;;	
stop)	
	 echo -n "Shutting down MyApp "	
	 killproc myapp	
	 RETVAL=$?	
	 echo	
	 ;;	
*)	
	 echo "Usage: $0 {start|stop}"	
	 exit 1	
	 ;;	
esac
/etc/init.d/myapp start
/etc/init.d/myapp stop
ポータビリティはPaaSフレンドリ
Spring Bootで作ったWebアプリはHeroku
やCloud Foundryへ簡単にデプロイできる
Immutable/Disposable Infrastructure
と相性が良い。Dockerとか。
Herokuにデプロイ
web: java $JAVA_OPTS -jar target/*.jar --server.port=$PORT
プロジェクト直下のProcfileに以下を記述
$ heroku create	
$ git push heroku master	
でHerokuへデプロイ!
Herokuとローカルで
DBを動的に切り替えたい場合
@Bean(destroyMethod = "close")	
DataSource dataSource() throws URISyntaxException {	
String url, username, password;	
String databaseUrl = System.getenv("DATABASE_URL");	
if (databaseUrl != null) {	
URI dbUri = new URI(databaseUrl);	
url = "jdbc:postgresql://" + dbUri.getHost() + dbUri.getPath() + ":" +
dbUri.getPort() + dbUri.getPath();	
username = dbUri.getUserInfo().split(":")[0];	
password = dbUri.getUserInfo().split(":")[1];	
} else {	
url = this.properties.getUrl();	
username = this.properties.getUsername();	
password = this.properties.getPassword();	
}	
DataSourceBuilder factory = DataSourceBuilder	
.create(this.properties.getClassLoader())	
.url(url)	
.username(username)	
.password(password);	
return factory.build();	
}
Herokuでは環境変数
DATABASE_URLにDB情報
が含まれる
Herokuの場合
ローカルの場合
Spring Cloudというサブプロジェク
トを使うとこのへんを吸収できる
Herokuとローカルで
DBを動的に切り替えたい場合
spring:	
profle:	
active: dev	
jpa.hibernate.ddl-auto: update	
---	
spring:	
profiles: dev	
datasource:	
driverClassName: org.h2.Driver	
url: jdbc:h2:file:/tmp/bookmark	
username: sa	
password:	
jpa.database: H2	
---	
spring:	
profiles: heroku	
datasource:	
driverClassName: org.postgresql.Driver	
jpa.database: POSTGRESQL
Profile毎にYAMLで設定可能
デフォルトでdevを指定
Herokuの場合
PostgreSQLを使用する
ローカル(dev)の場合
H2データベースを使用する
application.yml
profile毎のファイルを
作成することも可能
実行時にProfile指定
web: java $JAVA_OPTS -jar target/*.jar —server.port=$PORT
--spring.profiles.active=heroku
Procfileに--spring.profiles.active	
でherokuプロファイルを指定
ちなみにこれはBoot以前からある機能。
YAMLもSpring4.1から本体に取り込まれる。
Heroku Button
Github上のアプリを「ボタンぽち」で
Herokuにデプロイできる仕組み
[![Deploy](https://www.herokucdn.com/deploy/
button.png)](https://heroku.com/deploy)
README.mdにボタンのリンクを貼るだけ
Spring Bootなら簡単
Procfileと
app.jsonを用意
{	
"name": "Bookmark Application",	
"description": “Handson Application"	
}
app.json
http://bit.ly/jsug-heroku
Spring Bootなら簡単
Procfileと
app.jsonを用意
{	
"name": "Bookmark Application",	
"description": “Handson Application"	
}
app.json
ぽち
http://bit.ly/jsug-heroku
ブランチを自動で判断
ぽち
ブランチを自動で判断
2~3分
2~3分
アプリの配布も変わる?
Spring Bootでアプリを作成して、
Githubで管理し、
Heroku Buttonを配置
アプリの配布も変わる?
Spring Bootでアプリを作成して、
Githubで管理し、
Heroku Buttonを配置
アプリを即座にDeploy & Tryできる!
(PaaS上の)アプリの状態を知りたい
<dependency>	
	 <groupId>org.springframework.boot</groupId>	
	 <artifactId>spring-boot-starter-actuator</artifactId>	
</dependency>
Spring Boot Actuator
(PaaS上の)アプリの状態を知りたい
<dependency>	
	 <groupId>org.springframework.boot</groupId>	
	 <artifactId>spring-boot-starter-actuator</artifactId>	
</dependency>
Spring Boot Actuator
依存関係を追加するだけで、アプリの情
報やメトリクスを取得するためのエンド
ポイントが公開される
JSONで取得できる情報
http://docs.spring.io/spring-boot/docs/1.1.5.RELEASE/reference/html/production-ready-endpoints.html
等
パス 取得内容
/metrics
アクセスカウンタやレスポンスタイム、
JVM
/health 各種データソースのヘルスチェック
/dump スレッドダンプ
/configprops プロパティ
/env 環境変数
Actuator用のAutoconfigure対応
サードパーティ
• CRaSH (SSHサポート)
• Jolokia (JMXをJSONで出力)
• CodaHale Metrics (さらなるメトリクス)
システムアーキテクチャも
変わる?
伝統的なアーキテクチャ
http://www.infoq.com/articles/microservices-intro より図を拝借
モノリシックアーキテクチャ
伝統的なアーキテクチャ
http://www.infoq.com/articles/microservices-intro より図を拝借
モノリシックアーキテクチャ
システムが大きくなると、全体
を把握するのが大変で、保守が
難しい。
伝統的なアーキテクチャ
http://www.infoq.com/articles/microservices-intro より図を拝借
モノリシックアーキテクチャ
システムが大きくなると、全体
を把握するのが大変で、保守が
難しい。
技術の変更は難しい(リスキー
d)
伝統的なアーキテクチャ
http://www.infoq.com/articles/microservices-intro より図を拝借
モノリシックアーキテクチャ
システムが大きくなると、全体
を把握するのが大変で、保守が
難しい。
技術の変更は難しい(リスキー
d)
技術的に発展的成長が難しい
アーキテクチャ
マイクロサービスアーキテクチャ
http://www.infoq.com/articles/microservices-intro より図を拝借
Single Responsibility Principle (SRP)
に基づき名詞や動詞単位でサービスを分割
マイクロサービスアーキテクチャ
http://www.infoq.com/articles/microservices-intro より図を拝借
Single Responsibility Principle (SRP)
に基づき名詞や動詞単位でサービスを分割
HTTPやAMQPで通信
マイクロサービスアーキテクチャ
http://www.infoq.com/articles/microservices-intro より図を拝借
Single Responsibility Principle (SRP)
に基づき名詞や動詞単位でサービスを分割
HTTPやAMQPで通信
Amazon
Netfilx
eBay
などが採用
マイクロサービスアーキテクチャ
http://www.infoq.com/articles/microservices-intro より図を拝借
Single Responsibility Principle (SRP)
に基づき名詞や動詞単位でサービスを分割
HTTPやAMQPで通信
これまで説明
してきた
Spring Bootの
機能が効く!
Amazon
Netfilx
eBay
などが採用
マイクロサービスアーキテクチャの
メリット・デメリット
メリット デメリット
自担当のサービスのコードを
理解しやすい
システム全体を見なくなる
新しい技術を採用しやすい・
失敗してもやり直しやすい
分散システムの整合をとる
のが難しい
サービス単位でスケールできる
サービス間の通信オーバー
ヘッドがある
1
ーク等
他サービスの障害をふまえ
た設計が必要
IDE
マイクロサービスアーキテクチャの
メリット・デメリット
メリット デメリット
自担当のサービスのコードを
理解しやすい
システム全体を見なくなる
新しい技術を採用しやすい・
失敗してもやり直しやすい
分散システムの整合をとる
のが難しい
サービス単位でスケールできる
サービス間の通信オーバー
ヘッドがある
1
ーク等
他サービスの障害をふまえ
た設計が必要
IDE 銀の弾丸ではない
続きはWebで
http://www.infoq.com/minibooks/emag-microservices
まとめ
アプリの設定が変わる
• Autoconfigureで自動設定
• Starterで依存関係解決
アプリのデプロイが変わる
• 実行可能jar + 外部プロパティ
• Herokuボタン
システムアーキテクチャも変わる?
• モノリシックアーキテクチャ
• マイクロサービスアーキテクチャ
まとめ
アプリの設定が変わる
• Autoconfigureで自動設定
• Starterで依存関係解決
アプリのデプロイが変わる
• 実行可能jar + 外部プロパティ
• Herokuボタン
システムアーキテクチャも変わる?
• モノリシックアーキテクチャ
• マイクロサービスアーキテクチャ
_人人人人人人人人人人人人人人_	
 
> SIerの皆様は使えないかも <	
 
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
最後に
これからのレガシーJavaアプリ
•JSP
•web.xml
•src/main/webapp
使ったら負け!
移行の際の注意
• Bean定義ファイルの内容を”
そのまま移植”してはいけない
• JSP、warなど踏襲してはいけ
ない
Grails3のベースにもなる
http://www.slideshare.net/danveloper/future-of-grails
Scala、Kotlinでも普通に使えます
https://github.com/making/jggug-workshop-
springboot/tree/bookmark-scala
https://github.com/making/spring-boot-
demo-jvm-languages
色々なJVM言語でHello World
ハンズオンアプリのScala版
まずはハンズオンから
Webブラウザ
curl
Tomcat
Spring Boot
Spring Framework
SpringSecurity
ThymeLeaf
SpringMVC
Jackson
SpringDataJPA
Hibernate
H2
Database画面のあるアプリ
REST API
http://www.slideshare.net/
makingx/grails-30-spring-boot
ご清聴有り難うございました
Spring Boot本出版されたら買ってください!

More Related Content

What's hot

怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかShohei Okada
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編なべ
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring土岐 孝平
 
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Ryosuke Uchitate
 
Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf Toshiki Iga
 
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き土岐 孝平
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer増田 亨
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーションssuser070fa9
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_cccPivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_cccMasatoshi Tada
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Takeshi Hirosue
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント土岐 孝平
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかYoshitaka Kawashima
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
Laravelでfacadeを使わない開発
Laravelでfacadeを使わない開発Laravelでfacadeを使わない開発
Laravelでfacadeを使わない開発Kenjiro Kubota
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方増田 亨
 

What's hot (20)

怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
 
Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf Practical migration from JSP to Thymeleaf
Practical migration from JSP to Thymeleaf
 
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_cccPivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
Laravelでfacadeを使わない開発
Laravelでfacadeを使わない開発Laravelでfacadeを使わない開発
Laravelでfacadeを使わない開発
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 

Viewers also liked

Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action Alex Movila
 
Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!🎤 Hanno Embregts 🎸
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introductionRasheed Waraich
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudEberhard Wolff
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Koichi Sakata
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudEberhard Wolff
 

Viewers also liked (6)

Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
 
Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!Building a Spring Boot Application - Ask the Audience!
Building a Spring Boot Application - Ask the Audience!
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 

Similar to Spring Bootで変わる Javaアプリ開発! #jsug

どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 
REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfkToshiaki Maki
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkToshiaki Maki
 
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_bootGrails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_bootToshiaki Maki
 
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
 
Spring native について
Spring native についてSpring native について
Spring native についてTakamasa Mitsuji
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcToshiaki Maki
 
JSUG勉強会 2018年その5 Spring I/O 報告会
JSUG勉強会 2018年その5 Spring I/O 報告会JSUG勉強会 2018年その5 Spring I/O 報告会
JSUG勉強会 2018年その5 Spring I/O 報告会Alisa Sasaki
 
WildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsWildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsYoshimasa Tanabe
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発 daisuke-a-matsui
 
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編ksimoji
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側賢 秋穂
 
ルーター自前実装の話
ルーター自前実装の話ルーター自前実装の話
ルーター自前実装の話Kazushi Kawamura
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具Sho Ito
 
Jenkinsプラグイン開発
Jenkinsプラグイン開発Jenkinsプラグイン開発
Jenkinsプラグイン開発Takahisa Wada
 
React+TypeScriptもいいぞ
React+TypeScriptもいいぞReact+TypeScriptもいいぞ
React+TypeScriptもいいぞMitsuru Ogawa
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会Yuki Okada
 
jvmlang.daitokai 1.0.0 MinCamlJを作ってみた
jvmlang.daitokai 1.0.0 MinCamlJを作ってみたjvmlang.daitokai 1.0.0 MinCamlJを作ってみた
jvmlang.daitokai 1.0.0 MinCamlJを作ってみたKazuyoshi Kamitsukasa
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行Yoshitaka Kawashima
 

Similar to Spring Bootで変わる Javaアプリ開発! #jsug (20)

どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
REST with Spring Boot #jqfk
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfk
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
 
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_bootGrails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
 
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)
 
Spring native について
Spring native についてSpring native について
Spring native について
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbc
 
JSUG勉強会 2018年その5 Spring I/O 報告会
JSUG勉強会 2018年その5 Spring I/O 報告会JSUG勉強会 2018年その5 Spring I/O 報告会
JSUG勉強会 2018年その5 Spring I/O 報告会
 
WildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsWildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE Apps
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
 
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
 
ルーター自前実装の話
ルーター自前実装の話ルーター自前実装の話
ルーター自前実装の話
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具
 
Jenkinsプラグイン開発
Jenkinsプラグイン開発Jenkinsプラグイン開発
Jenkinsプラグイン開発
 
React+TypeScriptもいいぞ
React+TypeScriptもいいぞReact+TypeScriptもいいぞ
React+TypeScriptもいいぞ
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
 
jvmlang.daitokai 1.0.0 MinCamlJを作ってみた
jvmlang.daitokai 1.0.0 MinCamlJを作ってみたjvmlang.daitokai 1.0.0 MinCamlJを作ってみた
jvmlang.daitokai 1.0.0 MinCamlJを作ってみた
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
 

More from Toshiaki Maki

From Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugToshiaki Maki
 
Concourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoToshiaki Maki
 
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tToshiaki Maki
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
 
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Toshiaki Maki
 
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerToshiaki Maki
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpToshiaki Maki
 
Spring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugToshiaki Maki
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Toshiaki Maki
 
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoToshiaki Maki
 
Why PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring BootWhy PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring BootToshiaki Maki
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jpToshiaki Maki
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07Toshiaki Maki
 
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoToshiaki Maki
 
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsugToshiaki Maki
 
Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugToshiaki Maki
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Toshiaki Maki
 
Managing your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CIManaging your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CIToshiaki Maki
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...Toshiaki Maki
 
Short Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyoShort Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyoToshiaki Maki
 

More from Toshiaki Maki (20)

From Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
 
Concourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyo
 
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
 
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
 
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & Micrometer
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjp
 
Spring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsug
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
 
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyo
 
Why PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring BootWhy PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring Boot
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
 
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
 
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
 
Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjug
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
 
Managing your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CIManaging your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CI
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
 
Short Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyoShort Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyo
 

Recently uploaded

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (12)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

Spring Bootで変わる Javaアプリ開発! #jsug