如何在 Spring Boot 中为任何服务创建接口

How to create an interface for any service in Spring Boot

我希望后端中的所有 Service 类 都有 CRUD 方法。

为此,我想到了创建一个界面:

public interface ServiceCRUD {

    public Object save(Object object);
...
}

然后在我的服务上实现它:

@Service
public class SampleService implements ServiceCRUD {
    @Autowired
    private SampleRepository repository;

    @Override
    public Sample save(Sample sample) {
        return repository.save(sample);
    }

...
}

好久没碰Java了,如果我没记错的话,每个对象都扩展了Object,那为什么我不能用对象让服务接受我可能拥有的所有实体?

此致

您可以使用 Generics

实现这样的场景
interface ServiceCRUD {

    public < E > void save(E object);
}


class Sample {
    private String name = "Joe";

   
   @Override
    public String toString() {
        return "hello"+name;
    }
}

class SampleService implements ServiceCRUD {


    @Override
    public < Sample > void save(Sample sample) {
        System.out.print(sample.toString());
    }


}



public class Main {
    public static void main(String[] args) {
        new SampleService().save(new Sample());

    }
}

这只是一个示例,您可以根据您的用例对其进行扩展。 查看工作 here

您的界面声明可以保存 Object,即。 e.任何对象。但是你的实现声明它只获取 Sample,这就是你得到编译错误的原因。 您应该使用遗传并让每个实现声明它可以处理哪种对象。我强烈建议查看 spring 数据项目。如果时间

,它会为你节省很多