用java实现一个简单的接口封装,并支持前端调用
时间: 2024-06-12 10:08:15 浏览: 13
以下是一个简单的接口封装的示例代码:
```java
public interface Calculator {
int add(int a, int b);
int subtract(int a, int b);
int multiply(int a, int b);
int divide(int a, int b);
}
```
可以看到,这个接口定义了四个基本的数学运算方法:加、减、乘、除。
为了支持前端调用,我们需要使用一个框架来将这些接口暴露给前端。在Java中,常用的框架有Spring、Jersey、Restlet等。这里以Spring为例,我们可以使用Spring的@RestController注解来将接口暴露给前端。
```java
@RestController
@RequestMapping("/calculator")
public class CalculatorController {
@GetMapping("/add")
public int add(@RequestParam("a") int a, @RequestParam("b") int b) {
Calculator calculator = new CalculatorImpl();
return calculator.add(a, b);
}
@GetMapping("/subtract")
public int subtract(@RequestParam("a") int a, @RequestParam("b") int b) {
Calculator calculator = new CalculatorImpl();
return calculator.subtract(a, b);
}
@GetMapping("/multiply")
public int multiply(@RequestParam("a") int a, @RequestParam("b") int b) {
Calculator calculator = new CalculatorImpl();
return calculator.multiply(a, b);
}
@GetMapping("/divide")
public int divide(@RequestParam("a") int a, @RequestParam("b") int b) {
Calculator calculator = new CalculatorImpl();
return calculator.divide(a, b);
}
}
```
这里使用了Spring的@GetMapping和@RequestParam注解,分别表示通过GET请求获取数据和获取请求参数。我们将这个Controller类映射到/calculator的路径上,因此前端可以通过/calculator/add等路径来调用这些接口。
最后,我们需要实现Calculator接口的具体实现类CalculatorImpl,来完成数学运算的逻辑。
```java
public class CalculatorImpl implements Calculator {
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public int subtract(int a, int b) {
return a - b;
}
@Override
public int multiply(int a, int b) {
return a * b;
}
@Override
public int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("除数不能为0");
}
return a / b;
}
}
```
这个实现类中,我们完成了四个数学运算的具体逻辑,并在除法运算中添加了一个判断,避免了除以0的情况。
通过这样的方式,我们就可以将Java中的接口封装成为一个RESTful API,并通过Spring框架将其暴露给前端进行调用。