Pertanyaan semi mvc mendapatkan semua pemetaan permintaan


Kami memiliki aplikasi web mvc musim semi yang cukup besar di mana pengendali dianotasi dengan @Controller dan metode dengan @RequestMapping.

Saya ingin membuat tes sekarang yang memeriksa setiap kemungkinan url dan memeriksa apakah nilai kembalian adalah 200.

Apakah mungkin untuk mendapatkan semua pemetaan dari musim semi?


32
2018-06-18 12:25


asal


Jawaban:


Saya mereplikasi salah satu dari saya jawaban sebelumnya sini:

Jika Anda menggunakan Spring 3.1 komponen handlerMapping ini adalah instance dari RequestMappingHandlerMapping, yang dapat Anda kueri untuk menemukan handlerMappedMethods dan pengontrol terkait, di sepanjang baris ini (jika Anda menggunakan Spring versi lama, Anda seharusnya dapat menggunakan pendekatan):

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

@Controller
public class EndpointDocController {
 private final RequestMappingHandlerMapping handlerMapping;

 @Autowired
 public EndpointDocController(RequestMappingHandlerMapping handlerMapping) {
  this.handlerMapping = handlerMapping;
 }

 @RequestMapping(value="/endpointdoc", method=RequestMethod.GET)
 public void show(Model model) {
  model.addAttribute("handlerMethods", this.handlerMapping.getHandlerMethods());
 } 
}

Saya telah memberikan detail lebih lanjut tentang ini di url ini http://biju-allandsundry.blogspot.com/2012/03/endpoint-documentation-controller-for.html

Ini didasarkan pada presentasi pada Spring 3.1 oleh Rossen Stoyanchev dari Spring Source.


37
2018-06-18 13:02