当前位置: 首页> 房产> 家装 > 网站构建的工作_企业网站建设的层次_近期国内外重大新闻10条_qq引流推广软件哪个好

网站构建的工作_企业网站建设的层次_近期国内外重大新闻10条_qq引流推广软件哪个好

时间:2025/7/11 8:41:24来源:https://blog.csdn.net/ccmjga/article/details/144999403 浏览次数:0次
网站构建的工作_企业网站建设的层次_近期国内外重大新闻10条_qq引流推广软件哪个好

学会这款 🔥全新设计的 Java 脚手架 ,从此面试不再怕!

在这里插入图片描述
在这里插入图片描述

1. Spring Boot 3 升级指南

在升级 Spring Boot 3 之前,确保你的项目已经迁移到 Java 17,因为 Spring Boot 3 不再支持 Java 8 和 Java 11。接下来,我们需要更新项目的依赖配置。

1.1 更新 Maven 依赖

如果你使用的是 Maven,可以在 pom.xml 中更新 Spring Boot 的版本:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.0</version><relativePath/> <!-- lookup parent from repository -->
</parent>

1.2 更新 Gradle 依赖

如果你使用的是 Gradle,可以在 build.gradle 中更新 Spring Boot 的版本:

plugins {id 'org.springframework.boot' version '3.0.0'id 'io.spring.dependency-management' version '1.1.0'id 'java'
}

1.3 其他依赖的更新

Spring Boot 3 中一些依赖的 groupId 发生了变化,例如 javax.* 被替换为 jakarta.*。因此,你需要检查并更新相关的依赖。例如,如果你使用了 javax.servlet,则需要将其替换为 jakarta.servlet


2. 实现聊天对话功能

为了实现实时聊天功能,我们将使用 WebSocket 技术。WebSocket 是一种全双工通信协议,允许客户端和服务器之间进行实时数据传输。

2.1 添加 WebSocket 依赖

首先,在 pom.xml 中添加 Spring Boot 对 WebSocket 的支持:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

2.2 配置 WebSocket

接下来,我们需要配置 WebSocket。创建一个配置类 WebSocketConfig,启用 WebSocket 并注册一个消息代理:

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;@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {@Overridepublic void configureMessageBroker(MessageBrokerRegistry config) {// 启用一个简单的内存消息代理,前缀为 /topicconfig.enableSimpleBroker("/topic");// 设置应用程序目的地前缀为 /appconfig.setApplicationDestinationPrefixes("/app");}@Overridepublic void registerStompEndpoints(StompEndpointRegistry registry) {// 注册一个 STOMP 端点,客户端将使用它连接到 WebSocketregistry.addEndpoint("/chat").withSockJS();}
}

2.3 创建消息处理控制器

接下来,我们创建一个控制器来处理客户端发送的消息,并将消息广播给所有连接的客户端:

import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Controller;@Controller
public class ChatController {@MessageMapping("/sendMessage") // 处理客户端发送的消息@SendTo("/topic/messages") // 将消息广播到 /topic/messagespublic String sendMessage(String message) {return message;}
}

2.4 前端实现

在前端,我们可以使用 JavaScript 和 SockJS 来连接 WebSocket 并发送/接收消息。以下是一个简单的 HTML 页面示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Chat</title><script src="https://cdn.jsdelivr.net/npm/sockjs-client/dist/sockjs.min.js"></script><script src="https://cdn.jsdelivr.net/npm/stompjs/lib/stomp.min.js"></script>
</head>
<body><div id="chat"><ul id="messages"></ul><input type="text" id="messageInput" placeholder="Type a message..."><button onclick="sendMessage()">Send</button></div><script>const socket = new SockJS('/chat');const stompClient = Stomp.over(socket);stompClient.connect({}, function (frame) {console.log('Connected: ' + frame);stompClient.subscribe('/topic/messages', function (message) {const messages = document.getElementById('messages');const li = document.createElement('li');li.textContent = message.body;messages.appendChild(li);});});function sendMessage() {const messageInput = document.getElementById('messageInput');const message = messageInput.value;stompClient.send("/app/sendMessage", {}, message);messageInput.value = '';}</script>
</body>
</html>

2.5 运行项目

完成以上步骤后,启动 Spring Boot 项目并访问前端页面。你可以打开多个浏览器窗口,模拟多个用户进行实时聊天。


3. 功能扩展

3.1 用户身份验证

在实际应用中,通常需要为聊天功能添加用户身份验证。可以通过 Spring Security 来实现:

  1. 添加 Spring Security 依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 配置 Spring Security:
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;@EnableWebSecurity
public class SecurityConfig {@Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {http.authorizeHttpRequests(auth -> auth.requestMatchers("/chat").permitAll().anyRequest().authenticated()).formLogin();return http.build();}
}

3.2 消息持久化

如果需要保存聊天记录,可以将消息存储到数据库中。例如,使用 Spring Data JPA 将消息保存到 MySQL:

  1. 添加 Spring Data JPA 和 MySQL 依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>
  1. 创建消息实体和仓库:
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import java.time.LocalDateTime;@Entity
public class ChatMessage {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String content;private LocalDateTime timestamp;// Getters and Setters
}
import org.springframework.data.jpa.repository.JpaRepository;public interface ChatMessageRepository extends JpaRepository<ChatMessage, Long> {
}
  1. 在控制器中保存消息:
@Autowired
private ChatMessageRepository chatMessageRepository;@MessageMapping("/sendMessage")
@SendTo("/topic/messages")
public String sendMessage(String message) {ChatMessage chatMessage = new ChatMessage();chatMessage.setContent(message);chatMessage.setTimestamp(LocalDateTime.now());chatMessageRepository.save(chatMessage);return message;
}

4. 总结

通过升级到 Spring Boot 3,我们可以利用最新的技术和特性来增强项目的功能。本文详细介绍了如何升级 Spring Boot 3,并在此基础上实现了一个实时聊天对话功能。我们还探讨了如何扩展功能,例如用户身份验证和消息持久化。

希望这篇文章能够帮助你在 Spring Boot 3 中成功实现聊天功能。如果你有任何问题或建议,欢迎在评论区留言讨论!

关键字:网站构建的工作_企业网站建设的层次_近期国内外重大新闻10条_qq引流推广软件哪个好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: