- Django-Vue3-Admin 项目教程
缪阔孝Ruler
Django-Vue3-Admin项目教程django-vue3-adminDjango-Vue3-AdminisacomprehensivebasicdevelopmentplatformbasedontheRBAC(Role-BasedAccessControl)modelforpermissioncontrol,withcolumn-levelgranularity.Itfollowsafr
- Python爬虫教程003:请求对象的定制、get请求的quote和urlencode方法
叁拾舞
Python爬虫教程python爬虫开发语言
2.4请求对象的定制在Python爬虫中,User-Agent(UA)反爬是指网站通过检测请求头中的User-Agent来识别并屏蔽爬虫。许多网站会检查UA是否是常见的爬虫(如Python-urllib或Scrapy),并拒绝非浏览器的访问。因此,我们需要使用伪装UA、随机UA甚至UA池来绕过这种反爬机制。#-*-coding:utf-8-*-#@Time:2022/9/25002511:32#@
- 快速排序复杂度分析
想做后端的小C
数据结构算法
时间复杂度快速排序涉及到递归调用,所以该算法的时间复杂度还需要从递归算法的复杂度开始说起;递归算法的时间复杂度公式:T[n]=aT[n/b]+f(n);对于递归算法的时间复杂度这里就不展开来说了;最优情况下时间复杂度快速排序最优的情况就是每一次取到的元素都刚好平分整个数组(很显然我上面的不是);此时的时间复杂度公式则为:T[n]=2T[n/2]+f(n);T[n/2]为平分后的子数组的时间复杂度,
- opencv简单图形数组识别
tundra38
opencv人工智能计算机视觉
使用opencv的数组排列做一些简单图形得判断(不使用轮廓命令),比如矩形,圆形,三角形,横线,竖线;首先我们考虑从图像生成的数组进行判断,将图片转化成灰度,然后从图像不等于255的点是否连续出现入手,创建一个图片75x50(横75高50,小一点图片方便看数据),选择1px的画笔,否则容易出现误差image2=cv2.imread("yuan.jpg",0)print("image2",image
- 如何快速集成OpenAI的sdk
西门吹雪1998
计算机基础知识服务器linux运维
要调用OpenAI的SDK,首先需要安装OpenAI的Python包,然后使用API密钥进行身份验证。以下是具体步骤:1.安装OpenAIPython包使用pip安装OpenAI的Python包:pipinstallopenai2.获取API密钥在OpenAI官网注册并获取API密钥。登录后,可以在API密钥页面找到或创建新的API密钥。3.设置API密钥将API密钥设置为环境变量或在代码中直接使
- Lambda 表达式调试实践指南
茶本无香
javalambda调试peek
Lambda表达式因其简洁性和函数式风格广受欢迎,但在调试时却常令人头疼——匿名类的命名混乱、堆栈信息不明确、断点难以命中等问题屡见不鲜。本文将分享调试Lambda表达式的实用技巧,助你快速定位问题,提升开发效率。1.Lambda调试的痛点与本质原因Lambda表达式在编译时会被转换为匿名内部类,导致调试时出现以下问题:类名混乱:如MyClass$$Lambda$1/0x0000000800b8d
- uniapp中的post请求
Vae_Mars
uniappuni-appjavascript前端
1.解释说明-post请求是一种常用的通讯方式,这里展示uniapp中如何给后端服务器请求-uniapp内置的request可以实现这个方法-content-type有'application/json'和'application/x-www-form-urlencoded'。2.程序示例exportdefault{data(){return{//定义一些数据postData:{username:
- Proxychains 手册
Gnou
tcp防火墙服务器网络
名称:Proxychains–通过代理服务器进行连接语法:proxychains描述:这个程序会强制所有使用特定tcp连接的客户端所引起的TCP连接走代理通道。它是一种跳板程序。这个软件和sockscap、premo、eborder异曲同工。2.0版支持SOCKS4、SOCKS5、HTTP类的代理。认证方法:socks-“user/pass”,http-“basic”。什么情况下使用它?1)你所在
- JSP 指令
wangjinjin180
java开发语言
1.JSP指令概述JSP指令是用来控制JSP页面行为的特殊标签,通常出现在JSP页面的开头。与脚本元素和动作标签不同,JSP指令在编译时执行,并且影响整个JSP页面或Servlet类。它们不像脚本代码那样直接生成HTML输出,而是用来设置页面的属性或行为。常见的JSP指令类型页面指令(PageDirective)包含指令(IncludeDirective)标签库指令(TaglibDirective
- 前缀和(C++)
L-M-Y
简单算法算法
算法的种类很多,虽然我目前掌握的不多,但是在我浅薄的认知里,我把算法分为两类。一类是小算法,比如前缀和与快速幂这种,为什么说它们是小算法呢,因为,它们的用法比较单一,不算是一种庞大的思想,一般不能决定整个算法的走向,而是为降低程序时间复杂度的一个小操作,一种锦上添花的小装饰。另一类是大算法,比如贪心和动态规划这种,这种算法直接关系到解决某个问题的全局思想,出现的形式多样,运用起来也比较灵活。哈哈,
- HarmonyOS应用开发者高级试题006
code36
harmonyos
一、判断题1、用户首选项是关系型数据库。F2、使用http模块发起网络请求时,必须要使用on"headersReceive")订阅请求头,请求才会成功。F3、一个应用是由一个或多个HAP组成。T4、开发者将应用上架应用市场后,终端设备用户可以在终端设备上使用应用市场进行应用的安装和卸载。T5、预览器支持对页面的预览,如果代码中涉及到一些网络、数据库、传感器等功能的开发,则可以使用模拟器或者真机进行
- 前缀和 ( C++ )
卷纸要用清风的
C++
#include#includeusingnamespacestd;voidupData(inta[],intprefix[],intnum,intindex,intn){intold=a[index];a[index]=num;for(inti=index;i
- 蓝桥杯第十四届-电子类单片机国赛
Marx.luyi
蓝桥杯单片机51单片机
第十四届国赛的参数调节部分与以往不同,出现了负参数。由于平时这类参数都使用的是unsignedint和unsignedchar类型,因此突然遇到负数会让人感到有些困惑。下面提供一个实例以供参考。代码中的“voltage”是需要使用按键调节的电压参数,其阈值为-5V至5V。通过以下程序,可以实现按下按键一次,电压参数自增0.5V,超过5V时切换至-5V。为了方便数码管显示,abs((int)(vol
- Ubuntu 忘记密码、重置密码的方法
语短情深
Linux学习笔记UbuntuLinuxUbuntu重置密码忘记密码
Ubuntu忘记密码、重置密码的方法环境:Windows版本Ubuntu步骤:1.重启后,长按Shift键;2.直到出现下图所示界面
- C++操作符重载易错点
偶尔贪玩的骑士
c++算法开发语言
++和--重载以++为例,分为前置++,和后置++++的特性前++(如++x)是左值,后++(如x++)是右值。内存中会保存左值,而不会保存右值。前++,先加后用;后++,先用后加。intx=1;++(++x);(++x)++;++(x++);(x++)++;//error前++classCounter{intvalue;public:Counter(intx=0):value(x){}Count
- HTTP500代码怎么解决?常见的5xx网页错误及其原因
http网页速度运维
要修复5xxx错误,您需要解决服务器上导致该错误的问题,这可能需要代码调试、配置更新或安装新的系统组件,接下来为大家带来HTTP500错误的解决方法,和常见的5xx网页错误及其原因。错误500是什么?HTTP500响应代码并不表示实际问题,它只是通知您服务器出现了问题。内部服务器错误或500服务器错误意味着服务器无法处理请求。500的缺点之一是它会影响网站在搜索引擎结果中的位置。蜘蛛多次遇到500
- JavaScript、CSS像素动画特效代码
我将从专业角度解析这个像素动画特效的实现原理,并提供优化方案。以下是详细的技术分解:一、核心实现原理graphTDA[HTML结构]-->B[容器定位]B-->C[CSS动画驱动]C-->D[JS动态生成]D-->E[粒子生命周期管理]二、代码优化建议内存优化方案://修改后的JS代码(增加粒子回收机制)constMAX_PARTICLES=100;//最大粒子数functioncreatePix
- 人工智能与机器学习入门:决策树应用
决策树机器学习入门
在人工智能与机器学习入门:使用Kaggle完成Titanic推断学习一文中,给出了使用Kaggle进行机器学习入门的方法,本文基于上文的需求。尝试使用决策树模型来训练数据,并进行test数据集的测试。什么是决策树决策树,简单来讲可以认为是一个大的ifelse判断树,有了决策树后,测试集中的数据便可以使用该决策树进行判断了。比如根据Titanic的训练数据构造了上次决策树后,便可以根据测试数据的性别
- CAPL函数-07文件操作函数
正当少年
CAPLCAPL
在CAPL(CommunicationAccessProgrammingLanguage)中,文件操作函数用于读写文件、管理文件路径等。以下是常用的文件操作函数及其用法:1.打开文件openFile:打开文件并返回文件句柄。dwordfileHandle;fileHandle=openFile("C:\\data\\example.txt",0);//0表示只读,1表示写入2.关闭文件closeF
- 5.3 MVVM模型
qq_34047402
C#开发语言C#MVVM
一、MVVM的基本概念MVVM的基本概念:Model、View、ViewModel组件职责示例内容Model封装业务数据User类,包含姓名、年龄属性View负责UI呈现XAML界面,包含数据绑定ViewModel连接View和Model,处理视图逻辑MainViewModel包含命令和绑定属性二、例子:2.1.Model//Models/User.cspublicclassUser:INotif
- 跨线程操作无效:从创建该线程的线程以外的线程访问控件
p15097962069
c#multithreadingwinformsinvoke
我有一个场景。(Windows窗体,C#、.NET)有一个主窗体可以承载一些用户控件。用户控件执行一些繁重的数据操作,因此,如果我直接调用UserControl_Load方法,则UI在加载方法执行期间将无响应。为了克服这个问题,我将数据加载到不同的线程上(尝试尽我所能更改现有代码)我使用了一个后台工作线程来加载数据,完成后将通知应用程序它已经完成了工作。现在出现了一个真正的问题。所有UI(主窗体及
- 关于i2c_register_board_info()函数
mcgrady_tracy
linux_drivers
i2c_register_board_info()函数用于往__i2c_board_list这条链表添加一条i2c设备信息,在i2cadapter注册的时候,会扫描__i2c_board_list链表,然后调用i2c_new_device()函数来注册i2c设备,注意,要先于i2cadapter注册之前就添加好i2c设备信息,否则会出现调用了i2c_register_board_info()函数,
- C# 反射和特性练习代码
躺下睡觉~
c#学习c#开发语言
反射usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Diagnostics;usingSystem.Linq;usingSystem.Reflection;usingSystem.Reflection.Metadata.Ecma335;usingSystem
- React.js 中不当使用生命周期方法的问题及解决方案
JJCTO袁龙
reactreact.js前端前端框架
React.js中不当使用生命周期方法的问题及解决方案在React.js开发中,生命周期方法是组件从创建到销毁过程中各个阶段的钩子函数。正确使用这些方法对于优化性能、避免内存泄漏和确保组件行为正确至关重要。然而,开发者在使用生命周期方法时可能会遇到一些问题,导致应用出现异常或性能问题。本文将探讨这些问题的常见原因,并提供相应的解决方案。一、React.js生命周期方法的常见问题(一)使用废弃的生命
- 未来AI视觉艺术,会替代人类设计师吗?
非知名人士
AI随想人工智能深度学习计算机视觉
废话不说,我们先通过代码示例,了解AI生成图像的基本过程以及如何控制图像的风格和质量。1.安装和设置环境首先,我们需要安装必要的库。确保你已经安装了torch、diffusers和transformers等库。pipinstalltorchtorchvisiondiffuserstransformers2.加载预训练模型在这个例子中,我们继续使用StableDiffusion模型,加载该模型并将其
- Python 调用百度api接口实现语音识别的方法
qq_40550296
语音识别百度apipython
安装pycharmsetting中projectinterpreter的库管理器安装下面给出需要用到的库:pipinstallbaidu-aippipinstallwavepipinstallpyaudiopipinstallnumpypipinstallos申请百度api接口http://ai.baidu.com/让后把你申请的APPID扔到下面APP_ID='APP_ID'API_KEY='A
- spring MVC拦截器
爱码僧
Springbootspringmvcjava
核心接口HandlerInteceptorHandlerInteceptor主要方法1、booleanpreHandle():Controller方法执行前进行预处理,返回true,则继续执行方法处理,否则终止方法的继续处理;不进入postHandle、afterCompletion。2、voidpostHandle():所有拦截器的preHandle调用结束后且返回true,并且controll
- 【Django】前端模板中常用模板标签和过滤器
狐狸踏飞燕
django前端python
Django提供了一系列内置的模板标签和过滤器,这些标签跟过滤器在模板中处理数据。下面是经常用到的标签跟过滤器模板标签{%if%}:条件判断{%ifuser.is_authenticated%}Welcome,{{user.username}}!{%else%}Youarenotloggedin.{%endif%}{%for%}:循环{%foriteminitems%}{{item}}{%endf
- Python接口自动化之断言封装!
小码哥说测试
自动化测试技术分享软件测试python测试工具postmanselenium功能测试pytest自动化测试
该框架支持两种断言方式,相等和包含。先看一下断言的yaml文件编写规范:validate:-equals:{status_code:200}-contains:$ddt{assert_str}其中assert_str和之前用例一样,作为变量,放在对应的datayaml文件中#DDT数据驱动yaml文件,对应的yaml测试用例文件为:user.yaml-['name','userName','pas
- unity3D C#脚本实现鼠标拖动物体
huang9012
Unity3D
usingSystem.Collections;publicclassclickmove:MonoBehaviour{//UsethisforinitializationvoidStart(){}//UpdateiscalledonceperframevoidUpdate(){}//下面的函数是当鼠标触碰到碰撞体或者刚体时调用,我的碰撞体设置是meshcollider,然后别忘了,给这个colli
- mondb入手
木zi_鸣
mongodb
windows 启动mongodb 编写bat文件,
mongod --dbpath D:\software\MongoDBDATA
mongod --help 查询各种配置
配置在mongob
打开批处理,即可启动,27017原生端口,shell操作监控端口 扩展28017,web端操作端口
启动配置文件配置,
数据更灵活
- 大型高并发高负载网站的系统架构
bijian1013
高并发负载均衡
扩展Web应用程序
一.概念
简单的来说,如果一个系统可扩展,那么你可以通过扩展来提供系统的性能。这代表着系统能够容纳更高的负载、更大的数据集,并且系统是可维护的。扩展和语言、某项具体的技术都是无关的。扩展可以分为两种:
1.
- DISPLAY变量和xhost(原创)
czmmiao
display
DISPLAY
在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:DISPLAY=:0.0
- 获取B/S客户端IP
周凡杨
java编程jspWeb浏览器
最近想写个B/S架构的聊天系统,因为以前做过C/S架构的QQ聊天系统,所以对于Socket通信编程只是一个巩固。对于C/S架构的聊天系统,由于存在客户端Java应用,所以直接在代码中获取客户端的IP,应用的方法为:
String ip = InetAddress.getLocalHost().getHostAddress();
然而对于WEB
- 浅谈类和对象
朱辉辉33
编程
类是对一类事物的总称,对象是描述一个物体的特征,类是对象的抽象。简单来说,类是抽象的,不占用内存,对象是具体的,
占用存储空间。
类是由属性和方法构成的,基本格式是public class 类名{
//定义属性
private/public 数据类型 属性名;
//定义方法
publ
- android activity与viewpager+fragment的生命周期问题
肆无忌惮_
viewpager
有一个Activity里面是ViewPager,ViewPager里面放了两个Fragment。
第一次进入这个Activity。开启了服务,并在onResume方法中绑定服务后,对Service进行了一定的初始化,其中调用了Fragment中的一个属性。
super.onResume();
bindService(intent, conn, BIND_AUTO_CREATE);
- base64Encode对图片进行编码
843977358
base64图片encoder
/**
* 对图片进行base64encoder编码
*
* @author mrZhang
* @param path
* @return
*/
public static String encodeImage(String path) {
BASE64Encoder encoder = null;
byte[] b = null;
I
- Request Header简介
aigo
servlet
当一个客户端(通常是浏览器)向Web服务器发送一个请求是,它要发送一个请求的命令行,一般是GET或POST命令,当发送POST命令时,它还必须向服务器发送一个叫“Content-Length”的请求头(Request Header) 用以指明请求数据的长度,除了Content-Length之外,它还可以向服务器发送其它一些Headers,如:
- HttpClient4.3 创建SSL协议的HttpClient对象
alleni123
httpclient爬虫ssl
public class HttpClientUtils
{
public static CloseableHttpClient createSSLClientDefault(CookieStore cookies){
SSLContext sslContext=null;
try
{
sslContext=new SSLContextBuilder().l
- java取反 -右移-左移-无符号右移的探讨
百合不是茶
位运算符 位移
取反:
在二进制中第一位,1表示符数,0表示正数
byte a = -1;
原码:10000001
反码:11111110
补码:11111111
//异或: 00000000
byte b = -2;
原码:10000010
反码:11111101
补码:11111110
//异或: 00000001
- java多线程join的作用与用法
bijian1013
java多线程
对于JAVA的join,JDK 是这样说的:join public final void join (long millis )throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means t
- Java发送http请求(get 与post方法请求)
bijian1013
javaspring
PostRequest.java
package com.bijian.study;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURL
- 【Struts2二】struts.xml中package下的action配置项默认值
bit1129
struts.xml
在第一部份,定义了struts.xml文件,如下所示:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts
- 【Kafka十三】Kafka Simple Consumer
bit1129
simple
代码中关于Host和Port是割裂开的,这会导致单机环境下的伪分布式Kafka集群环境下,这个例子没法运行。
实际情况是需要将host和port绑定到一起,
package kafka.examples.lowlevel;
import kafka.api.FetchRequest;
import kafka.api.FetchRequestBuilder;
impo
- nodejs学习api
ronin47
nodejs api
NodeJS基础 什么是NodeJS
JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。
每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了docum
- java-64.寻找第N个丑数
bylijinnan
java
public class UglyNumber {
/**
* 64.查找第N个丑数
具体思路可参考 [url] http://zhedahht.blog.163.com/blog/static/2541117420094245366965/[/url]
*
题目:我们把只包含因子
2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14
- 二维数组(矩阵)对角线输出
bylijinnan
二维数组
/**
二维数组 对角线输出 两个方向
例如对于数组:
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 },
slash方向输出:
1
5 2
9 6 3
13 10 7 4
14 11 8
15 12
16
backslash输出:
4
3
- [JWFD开源工作流设计]工作流跳跃模式开发关键点(今日更新)
comsci
工作流
既然是做开源软件的,我们的宗旨就是给大家分享设计和代码,那么现在我就用很简单扼要的语言来透露这个跳跃模式的设计原理
大家如果用过JWFD的ARC-自动运行控制器,或者看过代码,应该知道在ARC算法模块中有一个函数叫做SAN(),这个函数就是ARC的核心控制器,要实现跳跃模式,在SAN函数中一定要对LN链表数据结构进行操作,首先写一段代码,把
- redis常见使用
cuityang
redis常见使用
redis 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets
引入jar包 jedis-2.1.0.jar (本文下方提供下载)
package redistest;
import redis.clients.jedis.Jedis;
public class Listtest
- 配置多个redis
dalan_123
redis
配置多个redis客户端
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=&quo
- attrib命令
dcj3sjt126com
attr
attrib指令用于修改文件的属性.文件的常见属性有:只读.存档.隐藏和系统.
只读属性是指文件只可以做读的操作.不能对文件进行写的操作.就是文件的写保护.
存档属性是用来标记文件改动的.即在上一次备份后文件有所改动.一些备份软件在备份的时候会只去备份带有存档属性的文件.
- Yii使用公共函数
dcj3sjt126com
yii
在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便。 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其引用,成为公用的函数集合。 function.php如下:
<?php /** * This is the shortcut to D
- linux 系统资源的查看(free、uname、uptime、netstat)
eksliang
netstatlinux unamelinux uptimelinux free
linux 系统资源的查看
转载请出自出处:http://eksliang.iteye.com/blog/2167081
http://eksliang.iteye.com 一、free查看内存的使用情况
语法如下:
free [-b][-k][-m][-g] [-t]
参数含义
-b:直接输入free时,显示的单位是kb我们可以使用b(bytes),m
- JAVA的位操作符
greemranqq
位运算JAVA位移<<>>>
最近几种进制,加上各种位操作符,发现都比较模糊,不能完全掌握,这里就再熟悉熟悉。
1.按位操作符 :
按位操作符是用来操作基本数据类型中的单个bit,即二进制位,会对两个参数执行布尔代数运算,获得结果。
与(&)运算:
1&1 = 1, 1&0 = 0, 0&0 &
- Web前段学习网站
ihuning
Web
Web前段学习网站
菜鸟学习:http://www.w3cschool.cc/
JQuery中文网:http://www.jquerycn.cn/
内存溢出:http://outofmemory.cn/#csdn.blog
http://www.icoolxue.com/
http://www.jikexue
- 强强联合:FluxBB 作者加盟 Flarum
justjavac
r
原文:FluxBB Joins Forces With Flarum作者:Toby Zerner译文:强强联合:FluxBB 作者加盟 Flarum译者:justjavac
FluxBB 是一个快速、轻量级论坛软件,它的开发者是一名德国的 PHP 天才 Franz Liedke。FluxBB 的下一个版本(2.0)将被完全重写,并已经开发了一段时间。FluxBB 看起来非常有前途的,
- java统计在线人数(session存储信息的)
macroli
javaWeb
这篇日志是我写的第三次了 前两次都发布失败!郁闷极了!
由于在web开发中常常用到这一部分所以在此记录一下,呵呵,就到备忘录了!
我对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的。
1、实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作。
public class Ses
- bootstrp carousel初体验 快速构建图片播放
qiaolevip
每天进步一点点学习永无止境bootstrap纵观千象
img{
border: 1px solid white;
box-shadow: 2px 2px 12px #333;
_width: expression(this.width > 600 ? "600px" : this.width + "px");
_height: expression(this.width &
- SparkSQL读取HBase数据,通过自定义外部数据源
superlxw1234
sparksparksqlsparksql读取hbasesparksql外部数据源
关键字:SparkSQL读取HBase、SparkSQL自定义外部数据源
前面文章介绍了SparSQL通过Hive操作HBase表。
SparkSQL从1.2开始支持自定义外部数据源(External DataSource),这样就可以通过API接口来实现自己的外部数据源。这里基于Spark1.4.0,简单介绍SparkSQL自定义外部数据源,访
- Spring Boot 1.3.0.M1发布
wiselyman
spring boot
Spring Boot 1.3.0.M1于6.12日发布,现在可以从Spring milestone repository下载。这个版本是基于Spring Framework 4.2.0.RC1,并在Spring Boot 1.2之上提供了大量的新特性improvements and new features。主要包含以下:
1.提供一个新的sprin