STOMP'u Spring ile Yapılandırma
Verimli iletişim için Spring'in STOMP aracısını ve mesaj işleme mekanizmalarını kurun.
STOMP'u Spring ile Yapılandırma, CoddyKit'te ücretsiz bir WebSockets & Real-Time Systems with Spring dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, WebSockets & Real-Time Systems with Spring öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. WebSockets & Real-Time Systems with Spring kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Spring & STOMP Configuration
Spring Boot makes building real-time applications with WebSockets and STOMP much easier. It provides powerful abstractions and auto-configuration to get you started quickly.
In this lesson, we'll learn how to set up Spring to handle STOMP messages. This involves configuring message brokers, defining endpoints, and establishing communication paths.
Activating STOMP with Spring
The first step is to enable Spring's WebSocket message broker capabilities. This is done with a single annotation: @EnableWebSocketMessageBroker.
- This annotation configures a message broker behind the scenes.
- It also sets up a Spring application context for handling STOMP messages.
- You'll typically place this on a configuration class.
Customizing Your STOMP Setup
To customize how Spring handles WebSocket and STOMP messages, you'll implement the WebSocketMessageBrokerConfigurer interface.
This interface provides methods that allow you to:
- Configure the message broker.
- Register STOMP endpoints.
- Add interceptors and customize message converters.
Setting Up the Message Broker
The message broker routes messages to their intended recipients. Spring provides a "simple" in-memory broker for basic needs.
You configure it in the configureMessageBroker method:
enableSimpleBroker(): Activates the in-memory broker.- Paths like
/topicare for public, publish-subscribe messages. - Paths like
/queueare for private, point-to-point messages.
Simple Broker Example
Here's how to set up the basic in-memory message broker with /topic and /queue destinations. This will allow clients to subscribe to public topics and send private messages.
package com.coddykit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
@Configuration
@EnableWebSocketMessageBroker
class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic", "/queue");
}
// Endpoints will be added later
}Client-to-Server Paths
When a client sends a message to the server, it usually targets a specific server-side handler. We define a prefix for these messages using setApplicationDestinationPrefixes().
- For example, if the prefix is
/app, clients send messages to paths like/app/chat.sendMessage. - These messages are then routed to methods annotated with
@MessageMappingon the server.
App Destination Prefix Example
Let's update our configuration to include an application destination prefix. This tells Spring which messages are intended for server-side methods.
package com.coddykit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
@Configuration
@EnableWebSocketMessageBroker
class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic", "/queue");
// Messages from clients for the server will start with /app
config.setApplicationDestinationPrefixes("/app");
}
// Endpoints will be added later
}Defining WebSocket Connection Point
Clients need a specific HTTP endpoint to initiate the WebSocket handshake. This is where they first connect before STOMP messaging begins.
You define this endpoint using registerStompEndpoints():
addEndpoint("/ws"): Makes the endpoint available athttp://localhost:8080/ws.withSockJS(): Enables SockJS fallback options for browsers that don't fully support WebSockets.
Complete STOMP Configuration
Here's the complete configuration class, combining the message broker setup, application destination prefix, and the STOMP endpoint registration. This is the foundation for your Spring STOMP application.
package com.coddykit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
@Configuration
@EnableWebSocketMessageBroker
class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
// Messages for client subscriptions (server to client)
config.enableSimpleBroker("/topic", "/queue");
// Messages from clients to server-side handlers
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
// The HTTP endpoint for WebSocket handshake
registry.addEndpoint("/ws").withSockJS();
}
}Configuration Check
You've learned about different prefixes in Spring STOMP configuration. It's crucial to understand their roles.
Summary of Configuration
You've successfully learned how to configure Spring for STOMP messaging! Here's a quick recap:
@EnableWebSocketMessageBroker: Activates WebSocket and STOMP support.WebSocketMessageBrokerConfigurer: Interface for customizing the setup.configureMessageBroker(): Sets up the message broker (e.g.,enableSimpleBroker("/topic", "/queue")) and application destination prefixes (e.g.,setApplicationDestinationPrefixes("/app")).registerStompEndpoints(): Defines the WebSocket handshake URL (e.g.,addEndpoint("/ws").withSockJS()).
These steps lay the foundation for building powerful real-time features with Spring and STOMP!
Sıkça Sorulan Sorular
“STOMP'u Spring ile Yapılandırma” dersi ücretsiz mi?
Evet — “STOMP'u Spring ile Yapılandırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve WebSockets & Real-Time Systems with Spring kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. WebSockets & Real-Time Systems with Spring kursu toplamda 4 dersten oluşur.
“STOMP'u Spring ile Yapılandırma” dersinde ne öğreneceğim?
Verimli iletişim için Spring'in STOMP aracısını ve mesaj işleme mekanizmalarını kurun. WebSockets & Real-Time Systems with Spring ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
WebSockets & Real-Time Systems with Spring öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te WebSockets & Real-Time Systems with Spring, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“STOMP'u Spring ile Yapılandırma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu WebSockets & Real-Time Systems with Spring dersinde kod yazıp çalıştırabilir miyim?
Evet. Her WebSockets & Real-Time Systems with Spring dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- STOMP Protokolüne Giriş
- STOMP'u Spring ile Yapılandırma
- STOMP Mesajlarını Gönderme ve Alma
- Spring Security ile STOMP Uç Noktalarını Güvenceye Alma