Springboot的pom.xml需要用到的依赖总结:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <!-- springboot 启动时依赖的父工程,所有自己开发的 SpringBoot 都必须的继承 -->
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.7.5</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>

      <!--当前项目版本定位-->
      <groupId>com.demo.springboot</groupId>
      <artifactId>demo</artifactId>
      <version>0.0.1-SNAPSHOT</version>

      <name>002-springboot</name>
      <description>Demo project for Spring Boot</description>

   <!--编码格式和jdk版本号-->
   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>

      <!--导入thymeleaf模板引擎-->
      <dependency>
         <groupId>org.thymeleaf</groupId>
         <artifactId>thymeleaf-spring5</artifactId>
      </dependency>
      <dependency>
         <groupId>org.thymeleaf.extras</groupId>
         <artifactId>thymeleaf-extras-java8time</artifactId>
      </dependency>

        <!--mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.0.8</version>
        </dependency>
        <!--Oracle依赖-->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.4</version>
        </dependency>
<!-- spring-boot mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        
        <!-- 阿里json -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.46</version>
        </dependency>
<!--common-lang3----各种工具类(StringUtils…)-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.2</version>
        </dependency>
<!-- dom4j解析xml -->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
        </dependency>
        <!-- 操作office -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>
        <!-- 文件下载 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.1.0</version>
        </dependency>
        <!-- shiro 权限 -->
        <dependency>
           <groupId>org.apache.shiro</groupId>
           <artifactId>shiro-spring</artifactId>
           <version>1.4.0</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-ehcache</artifactId>
            <version>1.2.4</version>
        </dependency>
        
        <dependency>
            <groupId>com.github.theborakompanioni</groupId>
            <artifactId>thymeleaf-extras-shiro</artifactId>
            <version>1.2.1</version>
        </dependency>

        <!-- activemq -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>
        
        <!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        
        <!-- mongodb -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        
        <!-- 发送邮件 -->
        <dependency> 
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        
        <!-- cxf -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
            <version>3.2.4</version>
        </dependency>
        
        <!-- solr搜索 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-solr</artifactId>
        </dependency>
    </dependencies>



      <!-- web支持: 1、web mvc; 2、restful; 3、tomcat支持;
        -SpringBoot 框架 web 项目起步依赖,通过该依赖自动关联其它依赖,不需要我们一个一个去添加
        -->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <!-- 单元测试 -->
      <!--SpringBoot 框架的测试起步依赖,例如:junit 测试,如果不需要的话可以删除-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
         <exclusions>
            <exclusion>
               <groupId>org.junit.vintage</groupId>
               <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      <!-- 热启动配置 -->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-devtools</artifactId>
         <optional>true</optional>
      </dependency>

      <!--lombok插件-->
      <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
      </dependency>

   </dependencies>

   <!--springboot打包编译插件-->
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

</project>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于Spring Boot框架的示例demo,实现了内网穿透和Socket连接: 1. 首先,在你的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 2. 在Spring Boot应用程序中,首先需要创建WebSocket配置类,用于配置WebSocket的相关信息。在这个配置类中,我们需要指定WebSocket的端点和处理器。 ```java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { // 定义WebSocket端点,客户端会使用它连接到WebSocket服务器 registry.addHandler(myHandler(), "/myHandler") .setAllowedOrigins("*") // 允许跨域访问 .withSockJS(); // 开启SockJS支持 } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } } ``` 3. 接下来,我们需要定义WebSocket处理器,它用于处理客户端发来的消息并返回响应。 ```java public class MyHandler implements WebSocketHandler { private static final Logger logger = LoggerFactory.getLogger(MyHandler.class); @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { logger.info("连接成功,sessionId={}", session.getId()); // 将新连接的session添加到管理列表中 WebSocketSessionManager.addSession(session); } @Override public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { logger.info("收到消息,sessionId={}, message={}", session.getId(), message.getPayload()); // 处理客户端发来的消息 String response = "收到消息:" + message.getPayload(); session.sendMessage(new TextMessage(response)); } @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { logger.error("连接出现错误,sessionId={}", session.getId(), exception); } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception { logger.info("连接关闭,sessionId={}", session.getId()); // 将关闭的session从管理列表中移除 WebSocketSessionManager.removeSession(session); } @Override public boolean supportsPartialMessages() { return false; } } ``` 4. 接下来,我们需要定义一个WebSocketSession管理器,用于管理所有连接的WebSocketSession。 ```java @Component public class WebSocketSessionManager { private static final Logger logger = LoggerFactory.getLogger(WebSocketSessionManager.class); private static final List<WebSocketSession> sessions = new CopyOnWriteArrayList<>(); public static void addSession(WebSocketSession session) { sessions.add(session); logger.info("添加新的WebSocketSession,sessionId={}", session.getId()); } public static void removeSession(WebSocketSession session) { sessions.remove(session); logger.info("移除WebSocketSession,sessionId={}", session.getId()); } public static List<WebSocketSession> getSessions() { return sessions; } public static void sendMessageToAllSessions(WebSocketMessage<?> message) { for (WebSocketSession session : sessions) { try { session.sendMessage(message); } catch (IOException e) { logger.error("发送消息失败,sessionId={}", session.getId(), e); } } } } ``` 5. 最后,我们需要在Controller中处理客户端发来的请求,并将请求转发给WebSocket处理器。 ```java @RestController public class MyController { @Autowired private SimpMessagingTemplate messagingTemplate; @GetMapping("/api") public String api(HttpServletRequest request) { // 处理API请求 String response = "处理API请求"; return response; } @MessageMapping("/sendMessage") public void sendMessage(String message) { // 将客户端发来的消息转发给WebSocket处理器 WebSocketSessionManager.sendMessageToAllSessions(new TextMessage(message)); } } ``` 6. 至此,我们已经完成了Spring Boot项目的配置。接下来,我们需要使用内网穿透工具,将我们的服务端暴露在公网上,以便客户端可以连接它。 7. 在客户端中,我们需要创建一个WebSocket连接,并通过它发送和接收消息。 ```javascript var socket = new SockJS('http://yp43942467.zicp.vip:39156/myHandler'); // 连接成功时触发 socket.onopen = function () { console.log('WebSocket连接已打开'); }; // 接收到消息时触发 socket.onmessage = function (event) { console.log('收到消息:' + event.data); }; // 连接关闭时触发 socket.onclose = function () { console.log('WebSocket连接已关闭'); }; // 发送消息 socket.send('Hello, WebSocket!'); ``` 这样,我们就完成了内网穿透和Socket连接的示例demo。希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值