Springboot 四则运算API
介绍
1.针对四则运算
- 加法 localhost:8080/add?a=#&b=#
- 减法 localhost:8080/subtract?a=#&b=#
- 乘法 localhost:8080/mulitiply?a=#&b=#
-
除法 localhost:8080/divide?a=#&b=#
2.处理除数为0时,输出0
3.使用BigDecimal处理数据溢出。问题
1.未处理数据类型错误
2.网页中divide异常学习历程
1.@RestController为控制器,会将函数的返回值直接填入HTTP中
2.@GetMapping属GET请求,从服务器获取数据;@PostMapping属post请求,
获取数据
3.@RequestParam用于获取查询参数
4.@Data读取类的属性
5.@AllArgsConstuctor提供全参构造器
6.@NoArgsConstructor提供空参构造器代码
Controller
package com.example.demo.Controller; import com.example.demo.Service.MainService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; @RestController public class MainController { @Autowired MainService mainService; @GetMapping("/hello") public String hello() { return "Hello,world!"; } @GetMapping("/add") public BigDecimal add(@RequestParam BigDecimal a, @RequestParam BigDecimal b) {//加法,BigDecimal处理数据溢出 return mainService.add(a, b); } @GetMapping("/substract") public BigDecimal subtract(@RequestParam BigDecimal a, @RequestParam BigDecimal b) {//减法 return mainService.substract(a, b); } @GetMapping("/multiply") public BigDecimal multiply(@RequestParam BigDecimal a, @RequestParam BigDecimal b) {//乘法 return mainService.multiply(a, b); } @GetMapping("/divide") public BigDecimal divide(@RequestParam BigDecimal a, @RequestParam BigDecimal b){//除法 if (b.equals(BigDecimal.ZERO)) { return BigDecimal.ZERO; } else { return mainService.divide(a, b); } } }
Service
package com.example.demo.Service; import org.springframework.stereotype.Service; import java.math.BigDecimal; @Service public class MainService { public BigDecimal add(BigDecimal a, BigDecimal b){ BigDecimal add = a.add(b); return add; } public BigDecimal subtract(BigDecimal a, BigDecimal b) { BigDecimal subtract = a.subtract(b); return subtract; } public BigDecimal multiply(BigDecimal a, BigDecimal b) { BigDecimal multiply =a.multiply(b); return multiply; } public BigDecimal divide(BigDecimal a, BigDecimal b) { BigDecimal divide = a.divide(b); return divide; } }
### HTML
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>四则运算</title>
</head>
<body>
<h2>hello</h2>
<form action="http://localhost:8080/hello" method="get">
<input type="submit" value="hello"></form>
<h2>加法</h2>
<form action="http://localhost:8080/add" method="get">
第一个数字: <input type="BigDecimal" name="a"><br> 第二个数字: <input type="BigDecimal" name="b"><br>
<input type="submit" value="提交">
</form>
<h2>减法</h2>
<form action="http://localhost:8080/subtract" method="get">
被减数: <input type="BigDecimal" name="a"><br> 减数: <input type="BigDecimal" name="b"><br>
<input type="submit" value="提交">
</form>
<h2>乘法</h2>
<form action="http://localhost:8080/multiply" method="get">
第一个数字: <input type="BigDecimal" name="a"><br> 第二个数字: <input type="BigDecimal" name="b"><br>
<input type="submit" value="提交">
</form>
<h2>除法</h2>
<form action="http://localhost:8080/divide" method="get">
被除数: <input type="BigDecimal" name="a"><br> 除数: <input type="BigDecimal" name="b"><br>当除数为0时,输出值为0<br>
<input type="submit" value="提交">
</form>
</body>
</html>