2016-09-21 33 views
0

我已經用Spring Data Rest創建了簡單的Spring BOOT應用程序。它可以與存儲庫一起工作。然而,我需要添加一些額外的功能,併爲此目的想要使用@RepositoryRestController註解的控制器類。問題是當我使用@RestController批註GET方法可用於調用,但是當我將批註切換到@RepositoryRestController時,瀏覽器說該方法不可用。@RepositoryRestController使得REST API不可用

POM文件:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.0.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-rest</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-hateoas</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.restdocs</groupId> 
     <artifactId>spring-restdocs-mockmvc</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

控制器類:

@RepositoryRestController 
public class HelloContoller { 

    @RequestMapping("/test") 
    @ResponseBody 
    public String sayHello() { 
     return "Hi, there!"; 
    } 

    @RequestMapping(value = "test", method = RequestMethod.POST) 
    public String postHello() { 
     return "POST!"; 
    } 

    @RequestMapping(value = "/test", method = RequestMethod.PUT) 
    public String putHello() { 
     return "PUT!"; 
    } 

} 

配置類:

@SpringBootApplication 
public class DemoApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(DemoApplication.class, args); 
    } 

} 

我是新來春數據休息和希望得到任何幫助!

謝謝!

+0

[Spring Data Rest Custom Controller]可能的重複(http://stackoverflow.com/questions/37079916/spring-data-rest-custom-controller) –

回答

0

如果覆蓋spring-data-rest的RepositoryEntityController產生的一些方法,我也遇到了一些問題。

看來在這種情況下,您不能在RepositoryRestController上使用類級別@RequestMapping註釋。

因此,從類中刪除@RequestMapping("/test")並在每個方法上重複/ test路徑。

0

最後,我得到了弗拉基米爾Tsukur幫助找到答案。爲了正確使用@RepositoryRestController,您必須首先創建存儲庫接口,然後將其URL作爲控制器每種方法的@RequestMapping的基本路徑。 現在一切正常。只需要注意網址:)

+2

你可以發佈最終的/固定版本? – sofend