簡體   English   中英

如何在 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);
    }

...
}

I haven't touched Java in a while, but if I recall correctly, every object extend Object , so why is it that I can't use Object to have the service accept all the entities I might have?

此致

您可以使用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());

    }
}

這只是一個示例,您可以根據您的用例對其進行擴展。 這里工作

您的界面聲明可以保存Object ,即任何 object。 但是您的實現聲明它 cat get only Sample ,這就是您收到編譯錯誤的原因。 您應該使用遺傳 go 並讓每個實現聲明它可以處理哪種 object。 我強烈建議看看 spring 數據項目。 如果時間會節省很多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM