More Related Content
Similar to Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう! (20)
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
- 14. Spring BootJava Spring
Java JavaEE
Ruby Rails
Python Django
フレームワーク(コンポーネントの集合)を
さらに使いやすくしたフレームワーク
じゃあ、Spring Bootって何?
#jjug_ccc #ccc_m3
- 16. アノテーション名 記載場所 説明
@SpringBootAppli
cation
Mainクラス パッケージ内のクラスと設定を自
動的に読み込む
@RestController クラス WebAPI用のコントローラー
@Configuration クラス 設定クラス
ソースコードでSpringの設定を実
装できる
@RequestMapping クラス
メソッド
URLに紐づけて、アクセスできるよ
うに設定する
@Autowired メソッド
フィールド
実装クラスを自動的にインジェク
ションする(DIする)
基本のアノテーション(Spring)
#jjug_ccc #ccc_m3
- 41. public class ChatForm {
private String name;
private String message;
・・・・・省略・・・・・
}
javajo.form > ChatForm.java 2章
クライアントから
受け取った値を格納する
フィールドを作成
- 42. public class ChatForm {
・・・・・省略・・・・・
/**
public String getName() {
return name;
}
・・・・・省略・・・・・
public void setMessage(String message) {
this.message = message;
}
**/
}
javajo.form > ChatForm.java 2章
フィールドにアクセスする
getter/setterを作成します
- 43. public class ChatForm {
・・・・・省略・・・・・
/**
public String getName() {
return name;
}
・・・・・省略・・・・・
public void setMessage(String message) {
this.message = message;
}
**/
}
javajo.form > ChatForm.java 2章
すでに実装済みなので、
コメントアウトを外す
だけでOK
- 44. public class ChatForm {
・・・・・省略・・・・・
public String getName() {
return name;
}
・・・・・省略・・・・・
public void setMessage(String message) {
this.message = message;
}
}
javajo.form > ChatForm.java 2章
すでに実装済みなので、
コメントアウトを外す
だけでOK
- 47. public class StompConfig extends
AbstractWebSocketMessageBrokerConfigurer {
}
javajo.config > StompConfig.java 2章
メッセージを処理する
抽象クラスを継承
- 50. public class StompConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints
(StompEndpointRegistry registry) {
registry.addEndpoint("endpoint");
}
}
javajo.config > StompConfig.java 2章
エンドポイントの
登録メソッドを作成
- 52. public class StompConfig extends AbstractWebSocketMessageBrokerConfigurer {
・・・・・省略(registerStompEndpointsの直後)・・・・・
@Override
public void configureMessageBroker(MessageBrokerRegistry
registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
}
}
javajo.config > StompConfig.java 2章
メッセージブローカーの
設定メソッドを作成
- 55. public class ChatController {
ChatForm greet(ChatForm chatForm) {
return chatForm;
}
}
javajo.controller > ChatController.java 2章
チャットのコントロー
ラークラスを作成します
- 57. @RestController
public class ChatController {
@MessageMapping(value = "/message" )
ChatForm greet(ChatForm chatForm) {
return chatForm;
}
}
javajo.controller > ChatController.java 2章
メッセージを受け付ける
MessageMappingを付与
- 58. @RestController
public class ChatController {
@MessageMapping(value = "/message" )
@SendTo(value = "/topic/messages")
ChatForm greet(ChatForm chatForm) {
return chatForm;
}
}
javajo.controller > ChatController.java 2章
処理結果を送信する宛先
SendToを付与
- 63. public class StompConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints
(StompEndpointRegistry registry) {
registry.addEndpoint("endpoint");
}
}
javajo.config > StompConfig.java 2章
エンドポイントの
登録メソッドを作成
- 67. public class StompConfig extends AbstractWebSocketMessageBrokerConfigurer {
・・・・・省略(registerStompEndpointsの直後)・・・・・
@Override
public void configureMessageBroker(MessageBrokerRegistry
registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
}
}
javajo.config > StompConfig.java 2章
メッセージブローカーの
設定メソッドを作成
- 71. public class StompConfig extends AbstractWebSocketMessageBrokerConfigurer {
・・・・・省略(registerStompEndpointsの直後)・・・・・
@Override
public void configureMessageBroker(MessageBrokerRegistry
registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
}
}
javajo.config > StompConfig.java 2章
メッセージブローカーの
設定メソッドを作成
- 72. @RestController
public class ChatController {
@MessageMapping(value = "/message" )
ChatForm greet(ChatForm chatForm) {
return chatForm;
}
}
javajo.controller >ChatController.java 2章
メッセージを受け付ける
MessageMappingを付与