@RequestParam, URL'nin sorgu dizesindeki anahtar/değer çiftlerine (? İşaretinden sonraki kısmı) erişmek için kullanılır. Örneğin, hasscript.com/java?id=1 url'sinde, id değerini almak için @RequestParam("id") kullanabilirsiniz.
@PathParam, URL'nin bir bölümünü parametre olarak eşleştirmek için kullanılır.Örneğin, hasscript.com/java/{birinci_deger} biçimindeki bir url'de, birinci_deger adlı parametrenin değerini almak için @PathParam ("birinci_deger") kullanabilirsiniz.
Farkları
1) @RequestParam parametrelerini çıkarmak için kullanılırken @PathParam verileri doğrudan URI'den ayıklamak için kullanılır.
2) @RequestParam, verilerin çoğunlukla sorgunun azaltmalarına(the query abatements) aktarıldığı geleneksel bir web uygulamasında daha yararlı olurken @PathParam, URL'nin değerler içerdiği RESTful web hizmetleri için daha uygundur.
3) Spring MVC, aynı yöntemde birden fazla @PathParam kullanmanıza izin verir, ancak birden fazla argümanın aynı kalıbı yoktur. Örnek olarak renk=mavi&renk=kırmızı böyle bir kullanıma izin verilmez Bunun yerine renk=mavi-kırmızı tarzında bir sorgu kullanıp buna göre programınızı şekillendirebilirsiniz.
Kaynak = https://javarevisited.blogspot.com/2017/10/differences-between-requestparam-and-pathvariable-annotations-spring-mvc.html