- rabbitmq springboot 有哪些配置参数
CATTLECODE
rabbitmq
在SpringBoot中集成RabbitMQ时,可以通过配置文件(如application.properties或application.yml)设置多种参数,以满足不同的业务需求。以下是常见的配置参数及其说明:1.基础连接配置spring.rabbitmq.hostRabbitMQ服务器的地址(默认:localhost)。spring.rabbitmq.portRabbitMQ服务器
- python序列化工具_python_restframework(序列化)
weixin_39623271
python序列化工具
django自带的序列化工具serializers三步骤导入fromdjango.coreimportserializers生成对象并传参response=serializers.serialize('json',book_list)第一个json是解析器,说明要解析成json格式的字符串,第二个是queryset对象,最后返回结果returnJsonResponse(response,safe=
- Python从0到100完整学习指南(必看导航)
是Dream呀
Pythonpython人工智能爬虫web神经网络算法深度学习
前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学业升学和工作就业的先行者!【优惠信息】•新专栏订阅前1000名享9.9元优惠•订阅量破10
- 【Actix Web】Rust Web开发实战:Actix Web框架全面指南(2025企业级应用版)
知识产权13937636601
计算机前端rust开发语言
在2025年高并发、低延迟成为Web服务核心指标的背景下,ActixWeb凭借异步Actor模型与零成本抽象,成为Rust生态中生产环境部署率最高的Web框架。本指南深入解析ActixWeb4.0核心技术,覆盖百万级并发架构设计、内存安全防线构建、云原生集成方案三大实战维度,通过电商秒杀系统、物联网数据平台两大案例,详解如何实现50万QPS下毫秒级响应。提供全链路性能调优清单(包括PGO编译优化+
- Django REST framework - 渲染器
djangopython
渲染器的确定方式视图的有效渲染器集合始终被定义为一个类列表。当进入视图时,RESTframework会在传入请求上执行内容协商,确定最合适的渲染器以满足请求。内容协商的基本过程涉及检查请求的Accept头,以确定其期望在响应中接收的媒体类型。另外,也可以使用URL上的格式后缀来显式请求特定的表示形式,例如,URLhttp://example.com/api/users_count.json可能是一
- Django REST framework - 格式后缀
djangopython
URLconf中的格式后缀模式为WebAPI使用URL文件扩展名以提供特定媒体类型端点是一种常见模式。例如,使用'http://example.com/api/users.json'提供JSON格式的表示。若在API的URLconf每个条目中添加格式后缀模式,容易出错且违背DRY原则,因此RESTframework提供了一个快捷方式,用于将这些模式添加到URLConf中。format_suffix
- 关于MANIFEST.MF的理解
weixin_34242658
开发工具java操作系统
打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录,这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息.在Java平台中,Manifest资源配置文件是JAR档案文件中包含的特殊文件。Manifest文件被用来定义扩展或档案打包相关数据。Manifest文件是一个元数据文件,它包含了不同部分中的名/值对数据。如果一个JAR文件
- JSON + 存储过程:SaaS 架构下的统一接口与租户定制之道
nbsaas-boot
java数据库网络
在多租户SaaS系统中,不同客户往往有差异化的业务逻辑、字段要求与流程规则。传统“统一模型+配置参数”的开发模式,虽然具有可控性,但在高度动态、合作多样化的场景下,逐渐暴露出扩展困难、上线周期长、定制成本高等问题。随着数据库对JSON的原生支持日益成熟,以JSON作为统一数据协议+存储过程作为租户可编程执行单元的模式,成为SaaS架构的新选择。该模式不仅保留了统一接口的规范性,还为租户、合作伙伴甚
- 初识 Flask 框架
2301_80329775
pyton编程基础flaskpython后端
前言Flask是一个轻量级的Web框架,基于Python语言开发,设计理念注重简洁、灵活和易用。作为一个"微框架",它本身非常简洁,提供了构建web应用所需的核心工具,但并不强制开发者遵循复杂的项目结构,因此被广泛应用于web开发领域。Flask非常适合初学者学习Web开发,因为它让开发者能够专注于应用逻辑,而无需过多担心框架本身的复杂性。无论是快速原型开发,还是较小规模的Web应用,Flask都
- 【冷知识】Spring Boot 配置文件外置
梦想blog
SpringBoot运维干货springboot配置yml
方案一:在jar目录放置一个config文件夹,优先级比jar内部的要高方案二:自定义配置路径java-jar--spring.config.location=file:/conf/
- 小程序学习笔记:优化商铺列表页面的下拉刷新功能
you4580
学习笔记小程序
在前端开发中,下拉刷新功能能显著提升用户体验,让用户方便地获取最新数据。今天就来和大家分享在开发商铺列表页面时,如何实现并优化下拉刷新功能,同时美化相关窗口样式。本文以微信小程序开发为例进行讲解。开启下拉刷新功能在微信小程序里,开启下拉刷新很简单。找到商铺列表页面的.json配置文件,添加enablePullDownRefresh配置节点,把它的值从默认的false改成true,就能开启下拉刷新效
- Linux配置日志级别,linux之日志篇
啦啦啦wr
Linux配置日志级别
rsysloglinux系统中用来实现日志功能的服务称为rsyslog,是早期syslog服务的增强版本,默认情况下是自动安装,并启动的。1、启动服务[root@37-testlog]#servicersyslogstart2、配置文件[root@37-testlog]#more/etc/rsyslog.conf基本格式:facility.prioritylog_location[root@37-
- 【Actix Web】构建高性能 Rust API:Actix Web 最佳实践与进阶指南
LCG元
前端前端rust开发语言
目录一、高性能API架构设计1.1系统架构图1.2核心组件二、项目初始化与配置2.1创建项目2.2添加依赖(Cargo.toml)2.3配置文件(config/default.toml)三、核心模块实现3.1应用状态管理(src/state.rs)3.2数据模型定义(src/models.rs)四、认证与授权系统4.1JWT认证流程4.2JWT工具函数(src/utils/jwt.rs)4.3认证
- JavaScript异步编程:理解和使用Promise、Async/Await
小码快撩
javascript开发语言ecmascript
JavaScript是一种单线程语言,这意味着它一次只能执行一个任务。然而,在Web开发中,我们经常需要处理异步操作,例如网络请求、定时器、事件监听等。JavaScript提供了多种方式来处理异步编程,包括回调函数、Promise、Async/Await等。回调函数回调函数是最基本的异步编程方式。当一个异步任务完成时,它会调用一个回调函数。这种方式的问题是回调地狱,即回调函数嵌套过多,难以理解和维
- srs+ffmpeg+flv.js查看实时监控
nov4th
rtmpffmpeghttp-flvsrs
一、Linux中搭建srs服务器1、在Linux中下载srsgitclonehttps://github.com/ossrs/srs#下载很慢可以使用下面的地址gitclonehttps://gitee.com/winlinvip/srs.oschina2、编译srs#进入trunk目录cdsrs/trunk#编译./configure&&make3、创建自己的flv配置文件,可以从官方给的去复制
- spark数据处理练习题番外篇【上】
一.单选题(共23题,100分)1.(单选题)maven依赖应该加在哪个文件中?A.pom.xmlB.log4j.propertiesC.src/main/scala.resourceD.src/test/scala.resource正确答案:A:pom.xml;Maven依赖应该添加在pom.xml文件中,这是Maven项目的核心配置文件。解释:pom.xml(ProjectObjectMode
- springmvc
WyuanY.
springspring
SpringMVC一、SpringMVC概述1.1SpringMVC是什么?SpringMVC是基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把Model、View、Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分。简化开发,减少出错,方便组内开发人员之间的配合。1.2SpringMVC原理解析SpringMVC执行过程:浏览器发送
- 深度解析】使用Go语言实现JWT:从原理到实践
IsPrisoner
golang学习
JWT(JSONWebToken)已成为现代Web应用中身份验证的基石。本文深入剖析如何用Go语言实现JWT,从基础概念、底层机制到完整代码实践,助你全面掌握。一、JWT概述JWT是一种开放标准(RFC7519),用于在网络应用间安全地传输信息。其典型结构包含三部分:Header(头部)、Payload(载荷)和Signature(签名),以点分隔形成`xxxxx.yyyyy.zzzzz`格式。(
- unix:///var/run/supervisor/supervisor.sock no such file
在Linux系统中,如果你遇到/var/run/supervisor/supervisor.sock文件不存在的问题,这通常意味着Supervisor服务没有正确运行或者其配置文件没有正确设置来创建这个socket文件。下面是一些解决这个问题的步骤:检查Supervisor是否正在运行首先,你需要确认Supervisor服务是否已经启动。你可以使用以下命令来检查Supervisor的状态:sudo
- 如何规范式编写yaml文件
小小小糖果人
K8Skubernetes云原生容器
1、Yaml语法1.1使用空白与缩进表示层次(有点类似Python),可以不使用花括号和方括号。1.2可以使用#书写注释,比起JSON是很大的改进。1.3对象(字典)的格式与JSON基本相同,但Key不需要使用双引号,使用{a,b,c}。1.4数组(列表)是使用-开头的清单形式,使用[a,b,c]。1.5表示对象的:和表示数组的-后面都必须要有空格。可以使用---在一个文件里分隔多个YAML对象。
- 微信小程序实现下拉刷新首页数据、上拉加载下一页数据
花铛
微信小程序微信小程序
下拉刷新首页数据:使用页面的下拉,刷新首页数据:首先需要在页面对应的JSON文件中配置"enablePullDownRefresh":true。然后在页面对应的JS文件中使用微信小程序提供的onPullDownRefresh(){}监听用户下拉动作。//本质是获取首页的数据onPullDownRefresh(){this.setData({pageNum:1},this.getList)},get
- 解决Xcode16.0编译报错 Showing Recent Messages Command SwiftCompile failed with a nonzero exit code
程序员大龙虾
移动端iosxcode
修改下HandyJSON库的编译模式即可。详情请看图CompilationMode接着在Xcode顶部菜单栏中,选择Product>CleanBuildFolder(可以使用快捷键Shift+Command+K)清理项目的编译文件
- Python Requests 与 RESTful API 的交互实践
AI天才研究院
AI人工智能与大数据pythonrestful交互ai
PythonRequests与RESTfulAPI的交互实践关键词:PythonRequests、RESTfulAPI、HTTP请求、API交互、JSON数据处理摘要:本文将带你从“零基础”到“实战高手”,用通俗易懂的语言和生活案例,拆解PythonRequests库与RESTfulAPI交互的核心逻辑。我们将学习如何用Requests发送GET/POST/PUT/DELETE等常见HTTP请求,
- uniapp发布安卓app流程
panda4919
uni-app
1.登录hbuilder2.打开项目根目录中的manifest.json配置文件,在基础配置面板中,获取uni-app应用标识,并填写应用名称:3.切换到App图标配置面板,点击浏览按钮,选择合适的图片之后,再点击自动生成所有图标并替换即可4.点击菜单栏上的发行->原生App-云打包:5.勾选打包配置6.在控制台中查看打包的进度信息:7.点击链接下载apk的安装包,并安装到Android手机中查看
- WebView 嵌套页面调试指南:解决上下文丢失与状态失效问题
2501_91600889
httpudphttpswebsocket网络安全网络协议tcp/ip
在移动Web开发中,嵌套iframe、多Tab页、多页面状态共享已是常见模式。尤其是在App中用WebView加载这些页面时,调试常常遇到一个隐形难题:状态丢失、数据不一致或逻辑错乱。比如点击跳转后上一页状态失效,iframe内页面切换时context混乱,或者多页签之间数据传递失败。此类问题在浏览器中难以复现,在WebView环境下尤为常见。这篇文章记录一次我们团队在调试“多页面嵌套+用户状态同
- 对比2个数据库:google Cloud Firestore 和 supabase
waterHBO
数据库云端数据库
帮我对比一下:CloudFirestore和supabase尤其是,是否免费,注册难度,是否需要银行卡注册,我没有国外的银行卡(我在中国大陆)。以及免费额度是多少,上手难度,即,学习曲线因为我平时一般是写小项目,我的数据库一般使用json或是sqlite3第1个回答好问题!下面是CloudFirestore(Firebase)和Supabase的全面对比,特别关注了中国大陆用户关心的注册、费用、学
- WEB攻防-Java安全&JNDI&RMI&LDAP&五大不安全组件&RCE执行&不出网
教IT的小强
前端java安全
#知识点:1、Java安全-RCE执行-5大类函数调用2、Java安全-JNDI注入-RMI&LDAP&高版本3、Java安全-不安全组件(框架)-Shiro&FastJson&Jackson&XStream&Log4j一、演示案例-Java安全-RCE执行-5大类函数调用1、GroovyExec均通过配置文件来加载。而登录Shell(LoginShell)与非登录Shell(Non-LoginShell)加载的配置文件不同,具体如下:一、登录Shell(LoginShell)加载的文件触发场景:用户通过SSH登录、终端登录(如tty1~tty6)、su-username或bash-l。加载顺序:先加载系统级配置文件、再加载用户
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多