- SpringBoot整合Swagger2快速指南
Cyanto
SpringBootspringboot后端java
Swagger简介Swagger是一款强大的API文档生成工具,它能够自动为RESTfulAPI生成可视化文档,支持在线测试接口,极大提高了前后端协作效率。本文将详细介绍如何在SpringBoot项目中整合Swagger2。环境准备版本要求重要提示:SpringBoot版本不能过高,推荐使用2.5.6版本:org.springframework.bootspring-boot-starter-pa
- springboot+swagger2文档从swagger-bootstrap-ui更换为knife4j及文档接口参数不显示问题
DN金猿
springboot组件专题springbootbootstrapuiswagger
背景已有springboot项目,且使用的是swagger2+swagger-bootstrap-ui的版本1.pom依赖如下io.springfoxspringfox-swagger22.9.2io.swaggerswagger-modelsio.swaggerswagger-annotationsio.springfo
- SpringCloudAlibaba网关聚合微服务swagger
微服务swagger配置引入依赖io.springfoxspringfox-swagger22.9.2io.springfoxspringfox-swagger-ui2.9.2配置swaggerimportio.swagger.annotations.ApiOperation;importorg.springframework.context.annotation.Bean;importorg.s
- springboot项目引入swagger
飞鹰@四海
springbootjavaspring
1.引入依赖创建项目后,在pom.xml文件中引入Swagger3的相关依赖。回忆一下,我们集成Swagger2时,引入的依赖如下:io.springfoxspringfox-swagger22.9.2io.springfoxspringfox-swagger-ui2.9.2而在Swagger3中,我们不需要再引入两个不同的依赖了,我们只需要引入一个依赖就足够,具体引入的依赖如下:io.sprin
- idea整合swagger使用
一尤花岛树鸣
后端springboot
idea整合swagger使用1.配置引入依赖io.springfoxspringfox-swagger2providedio.springfoxspringfox-swagger-uiprovided配置类packagecom.zj.servicecommon;importcom.google.common.base.Predicates;importorg.springframework.co
- SpringBoot整合Swagger2:从入门到精通(亲测可用)
Clf丶忆笙
#核心功能javaspringbootswagger2
文章目录一、Swagger2概述与核心价值1.1什么是Swagger2?1.2核心组件架构图1.3与传统文档方式对比二、SpringBoot集成Swagger2实战2.1环境搭建完整步骤2.1.1创建SpringBoot项目2.1.2基础配置类详解2.2访问与界面解读三、Swagger2注解全解析3.1控制器层注解实战3.1.1完整控制器示例3.1.2控制器注解详解表3.2模型层注解深度应用3.2
- SpringBoot整合Swagger3:从入门到精通(亲测可用)
Clf丶忆笙
#核心功能springbootjavaswagger3
文章目录一、Swagger简介与核心概念1.1什么是Swagger?1.2Swagger核心组件1.3Swagger2vsSwagger3二、SpringBoot集成Swagger32.1基础环境搭建2.1.1添加Maven依赖2.1.2基础配置类2.2访问SwaggerUI三、Swagger3注解详解3.1常用注解概览3.2控制器层注解3.2.1@Tag-控制器分组3.2.2@Operation
- swagger2接口参数排序/position失效的问题
散着步的码农
javaswagger2
在使用springfox-swagger22.9.2时position排序没有生效,在网上找了相关资料,需要重写swagger的两个类,具体如下。packagetop.lidaoyuan.hamster.api.config.swagger;importjava.util.List;importjava.util.stream.Collectors;importorg.springframewor
- Swagger升级指南:从注解到实战
m0_72696598
javaswaggeropenapi
一、Swagger注解的变化:从@Api到@Operation1.旧版本(Swagger2.0+Springfox)核心注解:@Api:标记Controller类,定义接口分组。@ApiOperation:标记Controller方法,定义接口功能。@Api(tags="用户管理")@RestControllerpublicclassUserController{@ApiOperation("创建
- Swagger2与Springdoc集成与使用指南
codingPower
微服务Swagger2springbootjava开发语言
以下是将Swagger2迁移到Springdoc(支持OpenAPI3)的集成与使用指南,涵盖关键步骤、配置示例及注意事项:1.依赖配置Springdoc是支持OpenAPI3规范的现代工具,适用于SpringBoot项目。需替换或添加以下依赖:org.springdocspringdoc-openapi-starter-webmvc-ui2.2.0注意:若项目原使用springfox-swagg
- Spring Boot(十五):集成Knife4j
图南随笔
SpringBootJavaspringboot后端java
Knife4j的简介Knife4j是一个集Swagger2和OpenAPI3为一体的增强解决方案,它的前身是上一篇文章中介绍的swagger-bootstrap-ui。swagger-bootstrap-ui的所有特性都会集中在Knife4j中,并且Knife4j也提供了很多非常方便的增强功能。Knife4j的使用1.添加依赖包knife4j已经引入了springfox,所以在使用时不用再次引入了
- Swagger go中文版本手册
科技百宝箱
golang开发语言后端
Swaggo(github.com/swaggo/swag)的注解语法是基于OpenAPI2.0(以前称为Swagger2.0)规范的,并添加了一些自己的约定。主要官方文档:swaggo/swagGitHub仓库:这是最权威的来源。链接:https://github.com/swaggo/swag重点关注:README.md:包含了基本的安装、使用方法和一些简单的注解示例。README_zh-CN
- 12.SpringDoc OpenAPI 功能介绍(用于生成API接口文档)
Alsn86
JAVA学习笔记java
12.SpringDocOpenAPI功能介绍(用于生成API接口文档)SpringDocOpenAPI是一个基于OpenAPI3.0/3.1规范的工具,用于为SpringBoot应用生成API文档。它是springfox(Swagger2.x)的现代替代方案,完全支持SpringBoot3.x和JDK17+,具有更强的兼容性和功能。1.SpringDocOpenAPI核心概念(1)OpenAPI
- 【NestJS】swagger快速接入
程序员查理
NestJS#Javascript
1.安装swagger$npminstall--save@nestjs/swaggerswagger-ui-express//如果使用fastify,则必须安装fastify-swagger而不是swagger-ui-express:$npminstall--save@nestjs/swaggerfastify-swagger2.Bootstrap启动配置import{NestFactory}fr
- Spring Boot + MongoDB + QueryDSL 实战项目
我就是夏迎春
本文还有配套的精品资源,点击获取简介:本项目是一个综合性的学习平台,旨在通过构建一个SpringBoot+MongoDB项目,教授开发者如何使用SpringDataJPA持久化数据,利用QueryDSL进行复杂查询,并通过Swagger2组件调试RESTfulAPI。该项目详细展示了SpringBoot应用开发的核心技术集成和使用过程,帮助开发者提升技能和项目质量。1.SpringBoot快速构建
- Swagger2.0访问权限的配置
专注代码十年
java
Swagger2.0本身并不提供访问权限的配置,但可以通过在应用程序中配置访问权限来限制对Swagger页面的访问。1.在SpringSecurity中配置Swagger访问权限如果您正在使用SpringSecurity,则可以通过在Security配置中添加以下内容来限制对SwaggerUI的访问:@Configuration@EnableWebSecuritypublicclassSecuri
- Spring Boot集成Swagger:打造高效、规范的API文档管理方案
软件职业规划
springbootjava后端
1.添加依赖在SpringBoot项目中集成Swagger的第一步是引入相应的依赖。根据你的项目需求和技术栈,可以选择以下两种主流的Swagger集成方式之一。选择合适的依赖库是确保集成顺利进行的关键。使用springfox-boot-starterspringfox-boot-starter是Swagger与SpringBoot集成的传统方式,它基于Swagger2.x版本,适用于SpringB
- springboot 整合swagger2
兮川
SpringBoot后端springbootswagger2
相信很多人都用过postman,使用postman其实可以很简便的进行接口调试,但是呢,每次还要写url,以及要添加参数名字(很容易写错)。所以啊,swagger2优势就体现出来了,它只需要添加少量注解即可在项目下调试接口,并且可以根据项目是否是测试还是生产环境,可以显示或禁止页面接口调试,介绍就到这里,开始写整合部分。一.maven添加依赖此处使用的是2.7.0版本,下面的ui二选一即可,spr
- Springboot整合Swagger+mybatis-plus
cccy001
springbootmybatisjava
目录1.springboot整合swagger接口文档1.1什么是swagger21.2为什么需要使用swagger2的api文档1.3如何使用swagger22.springboot整合mybatis-plus2.1mp的简介2.2如何使用1.springboot整合swagger接口文档1.1什么是swagger2它就是可以api接口,它可以对你书写的接口进行说明。并以文档的形式存在。、1.2
- Spring boot快速接入Swagger
lucky_iboy
后端javaswagger2springboot后端gson
swagger可以帮助我们快速生成api文档。1.引入swagger依赖 io.springfox springfox-swagger2 2.6.0 io.springfox springfox-swagger-ui 2.6.02.配置项目2.1增加@EnableSwagger2到启动类2.2配置swaggerdocket@Configurationpublic class Swagg
- 一种基于swagger 2.0 yaml文件的接口异常用例生成算法,单因子变量法
xiyubaby.17
java测试用例
详细解决方案一、设计思路基于Swagger2.0的YAML定义,为每个参数生成两类测试用例:正常用例:所有参数均符合约束。异常用例:仅一个参数违反约束,其他参数正常,且每个参数需覆盖所有可能的异常场景。二、实现步骤解析Swagger文件使用SnakeYAML解析YAML,提取参数定义(类型、约束、是否必填等)。生成正常值根据参数类型和约束生成合法值。生成异常值针对每个参数的所有约束,生成违反每个约
- django自动添加接口文档
LCY133
#django项目实战2023djangosqlite数据库
以下是使用Django和django-rest-swagger(或替代方案drf-yasg)生成API接口文档的详细指南。由于django-rest-swagger已停止维护,推荐使用drf-yasg(支持Swagger2.0和OpenAPI3.0),但两种方法均会说明:一、方案选择与安装1.方案对比库名维护状态支持规范功能特点django-rest-swagger已弃用Swagger2.0旧项目
- Swagger2 多环境安全配置
L烧鱼
学习笔记javaswagger
一、生产环境关闭Swagger我们该怎么做?1、在配置文件新增开关#swagger开关swagger2.enable=true2、修改SwaggerConfifig动态设置开关@Configuration@EnableSwagger2publicclassSwaggerConfig{ @Value("${swagger2.enable}") privatebooleanenable; @Be
- Spring Boot 3 中集成 Swagger 问题:Type javax.servlet.http.HttpServletRequest not present
我命由我12345
后端-问题清单springbootservlet后端javahttpspringjava-ee
问题与处理策略问题描述io.springfoxspringfox-swagger23.0.0io.springfoxspringfox-swagger-ui3.0.0在SpringBoot3中集成Swagger时,报如下错误java.lang.TypeNotPresentException:Typejavax.servlet.http.HttpServletRequestnotpresent#翻译
- 已解决:配置了Swagger,但Swagger-ui.html网页打不开
PinkandWhite
遇到的问题&bugspringbootswagger2javahtml
解决方法:在pom中把swagger降级如果你是3.0.0,降到2.9.2即可,再进入Swagger-ui.html就可以了io.springfoxspringfox-swagger22.9.2io.springfoxspringfox-swagger-ui2.9.2
- JAVA开发 在 Spring Boot 中集成 Swagger
天之涯上上
javaspringboot开发语言
Swagger是一个广泛使用的API文档生成工具,可以帮助你自动生成和维护RESTfulAPI的文档。在不同的框架中集成Swagger通常需要添加相应的依赖项。以下是几种常见Java框架(如SpringBoot)中集成Swagger的依赖配置。在SpringBoot中集成SwaggerSpringBoot结合Swagger可以通过springfox-swagger2和springfox-swagg
- swagger访问路径
igotyback
swagger
Swagger2.x版本访问地址:http://{ip}:{port}/{context-path}/swagger-ui.html{ip}是你的服务器IP地址。{port}是你的应用服务端口,通常为8080。{context-path}是你的应用上下文路径,如果应用部署在根路径下,则为空。Swagger3.x版本对于Swagger3.x版本(也称为OpenAPI3)访问地址:http://{ip
- 涂司机在学习restful
Driver_tu
java学习笔记restful
最近在学习springboot,有看到swagger2暴露restful接口增加JWT来进行安全性验证的相关技术,restful听都听过很多次,但到底是什么呢?这个知识点不稍微深入了解下,心里就是不虚浮。RESTful是什么?首先找到百度百科上的解释是:一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。RESTful带来了什么好处?它主要用于客户端和服务器交互类的软件。基于
- SpringBoot——2.7.3版本整合Swagger3
阳光倾洒
SpringBootspringbootspringjava
前言Swagger2(基于openApi3)已经在17年停止维护了,取而代之的是sagger3(基于openApi3),而国内几乎没有sagger3使用的文档,百度搜出来的大部分都是swagger2的使用,这篇文章将介绍如何在java中使用openApi3(swagger3)。一、swagger3的使用OpenAPIOpenApi是业界真正的api文档标准,其是由Swagger来维护的,并被lin
- 项目前的demo(Security+RestTemplate+MyBatis+Swagger)
喜欢刷dp的菜菜
mybatisjavatomcat
把基础mapper映射包写好后,写个小demo,写一个访问接口,一个rest接口,mapper直接引包就行.swagger@Configuration@EnableSwagger2publicclassSwaggerConfigextendsBaseSwaggerConfig{@OverridepublicSwaggerPropertiesswaggerProperties(){returnSwa
- HQL之投影查询
归来朝歌
HQLHibernate查询语句投影查询
在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示?
针对上面的场景,如果需要将一个对象查出来:
HQL语句写“from 对象”即可
Session session = HibernateUtil.openSession();
- Spring整合redis
bylijinnan
redis
pom.xml
<dependencies>
<!-- Spring Data - Redis Library -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redi
- org.hibernate.NonUniqueResultException: query did not return a unique result: 2
0624chenhong
Hibernate
参考:http://blog.csdn.net/qingfeilee/article/details/7052736
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
在项目中出现了org.hiber
- android动画效果
不懂事的小屁孩
android动画
前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
- js delete 删除机理以及它的内存泄露问题的解决方案
换个号韩国红果果
JavaScript
delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露 (其实还未删除)
举例:
var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname -->'bob'
// 依然可以访问p.firstname,存在内存泄露
- Oracle将零干预分析加入网络即服务计划
蓝儿唯美
oracle
由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计
- spring学习——springmvc(二)
a-john
springMVC
Spring MVC提供了非常方便的文件上传功能。
1,配置Spring支持文件上传:
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul
- POJ-2828-Buy Tickets
aijuans
ACM_POJ
POJ-2828-Buy Tickets
http://poj.org/problem?id=2828
线段树,逆序插入
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struct
- Java Ant build.xml详解
asia007
build.xml
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有
- android按钮监听器的四种技术
百合不是茶
androidxml配置监听器实现接口
android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;
1,activity中使用内部类实现接口 ,创建内部类实例 使用add方法 与java类似
创建监听器的实例
myLis lis = new myLis();
使用add方法给按钮添加监听器
- 软件架构师不等同于资深程序员
bijian1013
程序员架构师架构设计
本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。
如今很多的公司
- TeamForge Wiki Syntax & CollabNet User Information Center
sunjing
TeamForgeHow doAttachementAnchorWiki Syntax
the CollabNet user information center http://help.collab.net/
How do I create a new Wiki page?
A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and
- 【Redis四】Redis数据类型
bit1129
redis
概述
Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。
Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string
- SSH2整合-附源码
白糖_
eclipsespringtomcatHibernateGoogle
今天用eclipse终于整合出了struts2+hibernate+spring框架。
我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。
补充1:项目中部分jar包不是最新版的,可能导
- [转]开源项目代码的学习方法
braveCS
学习方法
转自:
http://blog.sina.com.cn/s/blog_693458530100lk5m.html
http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html
1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d
- 编程之美-子数组的最大和(二维)
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
import java.util.Random;
public class MaxSubArraySum2 {
/**
* 编程之美 子数组之和的最大值(二维)
*/
private static final int ROW = 5;
private stat
- 读书笔记-3
chengxuyuancsdn
jquery笔记resultMap配置ibatis一对多配置
1、resultMap配置
2、ibatis一对多配置
3、jquery笔记
1、resultMap配置
当<select resultMap="topic_data">
<resultMap id="topic_data">必须一一对应。
(1)<resultMap class="tblTopic&q
- [物理与天文]物理学新进展
comsci
如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境
怎么办呢?
 
- Oracle 11g新特性:Automatic Diagnostic Repository
daizj
oracleADR
Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。
FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。
这两份log文
- 简单排序:选择排序
dieslrae
选择排序
public void selectSort(int[] array){
int select;
for(int i=0;i<array.length;i++){
select = i;
for(int k=i+1;k<array.leng
- C语言学习六指针的经典程序,互换两个数字
dcj3sjt126com
c
示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了
# include <stdio.h>
void swap_1(int, int);
void swap_2(int *, int *);
void swap_3(int *, int *);
int main(void)
{
int a = 3;
int b =
- php 5.4中php-fpm 的重启、终止操作命令
dcj3sjt126com
PHP
php 5.4中php-fpm 的重启、终止操作命令:
查看php运行目录命令:which php/usr/bin/php
查看php-fpm进程数:ps aux | grep -c php-fpm
查看运行内存/usr/bin/php -i|grep mem
重启php-fpm/etc/init.d/php-fpm restart
在phpinfo()输出内容可以看到php
- 线程同步工具类
shuizhaosi888
同步工具类
同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch)
闭锁(CountDownLatch)
public class RunMain {
public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
fin
- bleeding edge是什么意思
haojinghua
DI
不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。
我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。
In computer science, bleeding edge is a term that
- c中实现utf8和gbk的互转
jimmee
ciconvutf8&gbk编码
#include <iconv.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
int code_c
- 大型分布式网站架构设计与实践
lilin530
应用服务器搜索引擎
1.大型网站软件系统的特点?
a.高并发,大流量。
b.高可用。
c.海量数据。
d.用户分布广泛,网络情况复杂。
e.安全环境恶劣。
f.需求快速变更,发布频繁。
g.渐进式发展。
2.大型网站架构演化发展历程?
a.初始阶段的网站架构。
应用程序,数据库,文件等所有的资源都在一台服务器上。
b.应用服务器和数据服务器分离。
c.使用缓存改善网站性能。
d.使用应用
- 在代码中获取Android theme中的attr属性值
OliveExcel
androidtheme
Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.
在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则:
int defaultColor = 0xFF000000;
int[] attrsArray = { andorid.r.
- 基于Zookeeper的分布式共享锁
roadrunners
zookeeper分布式共享锁
首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。
共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。
官
- 两个容易被忽略的MySQL知识
tomcat_oracle
mysql
1、varchar(5)可以存储多少个汉字,多少个字母数字? 相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。 这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0
- zoj 3827 Information Entropy(水题)
阿尔萨斯
format
题目链接:zoj 3827 Information Entropy
题目大意:三种底,计算和。
解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。
#include <cstdio>
#include <cstring>
#include <cmath&