2016-09-21 34 views
0

如何忽略類級別@RequestMapping("/home")並直接調用Spring中的方法級別@RequestMapping("/users")如何忽略級別@RequestMapping()和直接調用方法級別@RequestMapping()?

@Controller 
@RequestMapping("/home") 

@RequestMapping("/method1") 
public void method1(){ 
... 
} 

@RequestMapping("/users") 
public void listUsers(){ 
... 
} 

我想打電話給http://localhost:8080/users調用listUsers()方法。

+0

請問'../ users'工作?我只是在考慮,但值得一試 – Ivaro18

+0

這是行不通的。 – user2340345

回答

1

您不能繞過在類級別定義的請求映射。對於如果是這樣,爲什麼你想有一個一流水平的映射,然後...你可以代替做這樣的事情在方法層面的請求映射

@Controller 
@RequestMapping("/home/method1") 
public void method1(){ 
... 
} 

@RequestMapping("/users") 
public void listUsers(){ 
... 
} 

在你可以試試這個的話......

@Controller 
@RequestMapping({ "/home", "/users" }) 


    @RequestMapping("/method1") 
    public void method1(){ 
    ... 
    } 

    @RequestMapping(method="RequestMethod.GET") 
    public void listUsers(){ 
    ... 
    } 
+0

我在這個Controller類中有很多其他的方法,它們是遺留代碼的一部分,我不能觸及它,而在編寫我的新端點時,我不想爲我的方法調用類級別的@RequestMapping。 – user2340345

+0

在我的答案中嘗試更新的方法,並讓我知道它是否工作..因爲我已經在類級別映射了多個請求映射,因此從方法中刪除了一個,因爲它不需要 – mhasan

+0

它如何知道它應該是哪一個映射到?像method1()的/ home/method1和listUsers()的/ users一樣。假設我有/ users /(id),那麼如何進行精確映射? – user2340345

0

更改爲@RequestMapping("/users")@RequestMapping(method=RequestMethod.GET)

0

從我的理解,你還指望什麼是類級別 RequestMapping。 方法級別 RequestMapping應該在級別的路徑下。

我給你一些例子:

@RestController 
@RequestMapping("/home") 
public class HomeController { 
    // Full path of following endpoint: /home/parents. 
    @RequestMapping(value = "/parents", method = RequestMethod.GET) 
    public ResponseEntity<List<People>> getParents() { 
     return ResponseEntity.ok(methodToGetParents()); 
} 

對於 「用戶」 的路徑,你應該做它在另一個類(控制器):

@RestController 
@RequestMapping("/users") 
public class UsersController { 
    // Full path of following endpoint: /users. 
    @RequestMapping(method = RequestMethod.GET) 
    public ResponseEntity<List<People>> getUsers() { 
     return ResponseEntity.ok(methodToGetUsers()); 
} 
+0

我有這個控制器類中的各種其他方法是遺留代碼的一部分,我無法觸及,而編寫我的新端點,我不想調用我的方法的類級別的@RequestMapping。 – user2340345

+0

@ user2340345如果您嘗試在「/ users」端點中使用某些HomeController的方法,我認爲這些方法寫在錯誤的地方。因爲從我的理解來看,控制器類不應該包含太多的邏輯代碼。這些方法應該移到服務類中。 –

相關問題