diff --git a/src/main/java/de/thm/arsnova/controller/ConfigurationController.java b/src/main/java/de/thm/arsnova/controller/ConfigurationController.java
index a3bbe2dfb6a0206a58c6fee46047521ac4b5e6ad..5b956ef0bec1b9312a8c5f6afa60a7eab8420e3e 100644
--- a/src/main/java/de/thm/arsnova/controller/ConfigurationController.java
+++ b/src/main/java/de/thm/arsnova/controller/ConfigurationController.java
@@ -25,6 +25,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -164,7 +165,7 @@ public class ConfigurationController extends AbstractController {
 		socketioPath = systemProperties.getSocketio().getProxyPath();
 	}
 
-	@RequestMapping(method = RequestMethod.GET)
+	@GetMapping
 	@ResponseBody
 	public Map<String, Object> getConfiguration(final HttpServletRequest request) {
 		final Map<String, Object> config = new HashMap<>();
diff --git a/src/main/java/de/thm/arsnova/controller/UserController.java b/src/main/java/de/thm/arsnova/controller/UserController.java
index fb8880f249752cbc05a0b385ba0b81dfce4cd01c..abc74d0ce2ad0b03cdd998fb87d241559b1c79d6 100644
--- a/src/main/java/de/thm/arsnova/controller/UserController.java
+++ b/src/main/java/de/thm/arsnova/controller/UserController.java
@@ -101,7 +101,7 @@ public class UserController extends AbstractEntityController<UserProfile> {
 		}
 	}
 
-	@RequestMapping(value = ACTIVATE_MAPPING, method = RequestMethod.POST)
+	@PostMapping(ACTIVATE_MAPPING)
 	public void activate(
 			@PathVariable final String id,
 			@RequestParam final String key) {
@@ -113,7 +113,7 @@ public class UserController extends AbstractEntityController<UserProfile> {
 		userService.update(userProfile);
 	}
 
-	@RequestMapping(value = RESET_PASSWORD_MAPPING, method = RequestMethod.POST)
+	@PostMapping(RESET_PASSWORD_MAPPING)
 	public void resetPassword(
 			@PathVariable final String id,
 			@RequestBody final PasswordReset passwordReset) {
diff --git a/src/main/java/de/thm/arsnova/controller/WelcomeController.java b/src/main/java/de/thm/arsnova/controller/WelcomeController.java
index 59c32288119caecd187a47e055c4675149899207..0db5fd395157e8d025b789094920254b606efaa1 100644
--- a/src/main/java/de/thm/arsnova/controller/WelcomeController.java
+++ b/src/main/java/de/thm/arsnova/controller/WelcomeController.java
@@ -30,8 +30,8 @@ import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.client.SimpleClientHttpRequestFactory;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseStatus;
@@ -56,18 +56,18 @@ public class WelcomeController extends AbstractController {
 	@Autowired
 	private VersionInfoContributor versionInfoContributor;
 
-	@RequestMapping(value = "/", method = RequestMethod.GET)
+	@GetMapping("/")
 	public View home() {
 		return new RedirectView(mobileContextPath + "/", false);
 	}
 
-	@RequestMapping(value = "/", method = RequestMethod.GET, produces = "application/json")
+	@GetMapping(value = "/", produces = "application/json")
 	@ResponseBody
 	public Map<String, Object> jsonHome() {
 		return versionInfoContributor.getInfoDetails();
 	}
 
-	@RequestMapping(value = "/checkframeoptionsheader", method = RequestMethod.POST)
+	@PostMapping("/checkframeoptionsheader")
 	@ResponseStatus(HttpStatus.OK)
 	public void checkFrameOptionsHeader(
 			@RequestParam final String url,
diff --git a/src/main/java/de/thm/arsnova/controller/v2/AuthenticationController.java b/src/main/java/de/thm/arsnova/controller/v2/AuthenticationController.java
index 5644dfee48ab545c65f1fc036b15d855a988073d..5dff6b13a764afc96cde84ac19f51e84646229a0 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/AuthenticationController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/AuthenticationController.java
@@ -50,8 +50,9 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.web.util.UrlUtils;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.View;
@@ -124,7 +125,7 @@ public class AuthenticationController extends AbstractController {
 		oauthProperties = authenticationProviderProperties.getOauth();
 	}
 
-	@RequestMapping(value = { "/login", "/doLogin" }, method = { RequestMethod.POST, RequestMethod.GET })
+	@PostMapping({ "/login", "/doLogin" })
 	public void doLogin(
 			@RequestParam("type") final String type,
 			@RequestParam(value = "user", required = false) final String username,
@@ -170,7 +171,7 @@ public class AuthenticationController extends AbstractController {
 		}
 	}
 
-	@RequestMapping(value = { "/dialog" }, method = RequestMethod.GET)
+	@GetMapping("/dialog")
 	@ResponseBody
 	public View dialog(
 			@RequestParam("type") final String type,
@@ -231,7 +232,7 @@ public class AuthenticationController extends AbstractController {
 		return result;
 	}
 
-	@RequestMapping(value = { "/", "/whoami" }, method = RequestMethod.GET)
+	@GetMapping({ "/", "/whoami" })
 	@ResponseBody
 	public ClientAuthentication whoami(@AuthenticationPrincipal final User user) {
 		if (user == null) {
@@ -240,7 +241,7 @@ public class AuthenticationController extends AbstractController {
 		return new ClientAuthentication(user);
 	}
 
-	@RequestMapping(value = { "/logout" }, method = { RequestMethod.POST, RequestMethod.GET })
+	@PostMapping("/logout")
 	public String doLogout(final HttpServletRequest request) {
 		final Authentication auth = SecurityContextHolder.getContext().getAuthentication();
 		userService.removeUserIdFromMaps(userService.getCurrentUser().getId());
@@ -252,7 +253,7 @@ public class AuthenticationController extends AbstractController {
 		return "redirect:" + request.getHeader("referer") != null ? request.getHeader("referer") : "/";
 	}
 
-	@RequestMapping(value = { "/services" }, method = RequestMethod.GET)
+	@GetMapping("/services")
 	@ResponseBody
 	public List<ServiceDescription> getServices(final HttpServletRequest request) {
 		final List<ServiceDescription> services = new ArrayList<>();
diff --git a/src/main/java/de/thm/arsnova/controller/v2/CommentController.java b/src/main/java/de/thm/arsnova/controller/v2/CommentController.java
index 9ee584c8e160268eba13ad15d4de94d1de73fa5d..088f70362982c799d307a52716135e0238cecef9 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/CommentController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/CommentController.java
@@ -29,7 +29,10 @@ import java.util.stream.Collectors;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -74,7 +77,7 @@ public class CommentController extends PaginationController {
 
 	@ApiOperation(value = "Count all the comments in current room",
 			nickname = "getCommentCount")
-	@RequestMapping(value = "/count", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/count", produces = MediaType.TEXT_PLAIN_VALUE)
 	@DeprecatedApi
 	@Deprecated
 	public String getCommentCount(
@@ -86,7 +89,7 @@ public class CommentController extends PaginationController {
 
 	@ApiOperation(value = "count all unread comments",
 			nickname = "getUnreadCommentCount")
-	@RequestMapping(value = "/readcount", method = RequestMethod.GET)
+	@GetMapping("/readcount")
 	@DeprecatedApi
 	@Deprecated
 	public CommentReadingCount getUnreadCommentCount(
@@ -97,7 +100,7 @@ public class CommentController extends PaginationController {
 
 	@ApiOperation(value = "Retrieves all Comments for a Room",
 			nickname = "getComments")
-	@RequestMapping(value = "/", method = RequestMethod.GET)
+	@GetMapping("/")
 	@Pagination
 	public List<Comment> getComments(
 			@ApiParam(value = "Room-Key from current room", required = true)
@@ -109,7 +112,7 @@ public class CommentController extends PaginationController {
 
 	@ApiOperation(value = "Retrieves an Comment",
 			nickname = "getComment")
-	@RequestMapping(value = "/{commentId}", method = RequestMethod.GET)
+	@GetMapping("/{commentId}")
 	public Comment getComment(
 			@ApiParam(value = "ID of the Comment that needs to be deleted", required = true)
 			@PathVariable
@@ -123,7 +126,7 @@ public class CommentController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 400, message = HTML_STATUS_400)
 	})
-	@RequestMapping(value = "/", method = RequestMethod.POST)
+	@PostMapping("/")
 	@ResponseStatus(HttpStatus.CREATED)
 	public void postComment(
 			@ApiParam(value = "Room-Key from current room", required = true)
@@ -140,7 +143,7 @@ public class CommentController extends PaginationController {
 
 	@ApiOperation(value = "Deletes a Comment",
 			nickname = "deleteComment")
-	@RequestMapping(value = "/{commentId}", method = RequestMethod.DELETE)
+	@DeleteMapping("/{commentId}")
 	public void deleteComment(
 			@ApiParam(value = "ID of the comment that needs to be deleted", required = true)
 			@PathVariable
diff --git a/src/main/java/de/thm/arsnova/controller/v2/ContentController.java b/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
index 8035955028a205d562bcb704bd1c0829af8d4ced..f788bcdec499cb6c0b37a10032c7820c882ee4d3 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/ContentController.java
@@ -34,10 +34,13 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestController;
@@ -93,7 +96,7 @@ public class ContentController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 404, message = HTML_STATUS_404)
 	})
-	@RequestMapping(value = "/{contentId}", method = RequestMethod.GET)
+	@GetMapping("/{contentId}")
 	public Content getContent(@PathVariable final String contentId) {
 		final de.thm.arsnova.model.Content content = contentService.get(contentId);
 		if (content != null) {
@@ -108,7 +111,7 @@ public class ContentController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 400, message = HTML_STATUS_400)
 	})
-	@RequestMapping(value = "/", method = RequestMethod.POST)
+	@PostMapping("/")
 	@ResponseStatus(HttpStatus.CREATED)
 	public Content postContent(@RequestBody final Content content) {
 		final de.thm.arsnova.model.Content contentV3 = fromV2Migrator.migrate(content);
@@ -123,7 +126,7 @@ public class ContentController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 400, message = HTML_STATUS_400)
 	})
-	@RequestMapping(value = "/bulk", method = RequestMethod.POST)
+	@PostMapping("/bulk")
 	@ResponseStatus(HttpStatus.CREATED)
 	public List<Content> bulkPostContents(@RequestBody final List<Content> contents) {
 		final List<de.thm.arsnova.model.Content> contentsV3 =
@@ -136,7 +139,7 @@ public class ContentController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 400, message = HTML_STATUS_400)
 	})
-	@RequestMapping(value = "/{contentId}", method = RequestMethod.PUT)
+	@PutMapping("/{contentId}")
 	public Content updateContent(
 			@PathVariable final String contentId,
 			@RequestBody final Content content) {
@@ -145,7 +148,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Start new Pi Round on content, identified by provided id, with an optional time",
 			nickname = "startPiRound")
-	@RequestMapping(value = "/{contentId}/questionimage", method = RequestMethod.GET)
+	@GetMapping("/{contentId}/questionimage")
 	public String getContentImage(
 			@PathVariable final String contentId,
 			@RequestParam(value = "fcImage", defaultValue = "false", required = false) final boolean fcImage) {
@@ -153,7 +156,7 @@ public class ContentController extends PaginationController {
 		throw new NotImplementedException();
 	}
 
-	@RequestMapping(value = "/{contentId}/startnewpiround", method = RequestMethod.POST)
+	@PostMapping("/{contentId}/startnewpiround")
 	public void startPiRound(
 			@PathVariable final String contentId,
 			@RequestParam(value = "time", defaultValue = "0", required = false) final int time) {
@@ -165,7 +168,7 @@ public class ContentController extends PaginationController {
 		}
 	}
 
-	@RequestMapping(value = "/{contentId}/canceldelayedpiround", method = RequestMethod.POST)
+	@PostMapping("/{contentId}/canceldelayedpiround")
 	@ApiOperation(value = "Cancel Pi Round on content, identified by provided id",
 			nickname = "cancelPiRound")
 	public void cancelPiRound(
@@ -173,7 +176,7 @@ public class ContentController extends PaginationController {
 		timerService.cancelRoundChange(contentId);
 	}
 
-	@RequestMapping(value = "/{contentId}/resetpiroundstate", method = RequestMethod.POST)
+	@PostMapping("/{contentId}/resetpiroundstate")
 	@ApiOperation(value = "Reset Pi Round on content, identified by provided id",
 			nickname = "resetPiContent")
 	public void resetPiContent(
@@ -183,7 +186,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Set voting admission on content, identified by provided id",
 			nickname = "setVotingAdmission")
-	@RequestMapping(value = "/{contentId}/disablevote", method = RequestMethod.POST)
+	@PostMapping("/{contentId}/disablevote")
 	public void setVotingAdmission(
 			@PathVariable final String contentId,
 			@RequestParam(value = "disable", defaultValue = "false", required = false) final Boolean disableVote) {
@@ -198,7 +201,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Set voting admission for all contents",
 			nickname = "setVotingAdmissionForAllContents")
-	@RequestMapping(value = "/disablevote", method = RequestMethod.POST)
+	@PostMapping("/disablevote")
 	public void setVotingAdmissionForAllContents(
 			@RequestParam(value = "sessionkey")
 			final String roomShortId,
@@ -230,7 +233,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Publish a content, identified by provided id and content in Request Body.",
 			nickname = "publishContent")
-	@RequestMapping(value = "/{contentId}/publish", method = RequestMethod.POST)
+	@PostMapping("/{contentId}/publish")
 	public void publishContent(
 			@PathVariable final String contentId,
 			@RequestParam(defaultValue = "true", required = false) final boolean publish,
@@ -246,7 +249,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Publish all contents",
 			nickname = "publishAllContents")
-	@RequestMapping(value = "/publish", method = RequestMethod.POST)
+	@PostMapping("/publish")
 	public void publishAllContents(
 			@RequestParam(value = "sessionkey")
 			final String roomShortId,
@@ -274,7 +277,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Publish statistics from content with provided id",
 			nickname = "publishStatistics")
-	@RequestMapping(value = "/{contentId}/publishstatistics", method = RequestMethod.POST)
+	@PostMapping("/{contentId}/publishstatistics")
 	public void publishStatistics(
 			@PathVariable final String contentId,
 			@RequestParam(defaultValue = "true", required = false) final Boolean showStatistics,
@@ -291,7 +294,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Publish correct answer from content with provided id",
 			nickname = "publishCorrectAnswer")
-	@RequestMapping(value = "/{contentId}/publishcorrectanswer", method = RequestMethod.POST)
+	@PostMapping("/{contentId}/publishcorrectanswer")
 	public void publishCorrectAnswer(
 			@PathVariable final String contentId,
 			@RequestParam(defaultValue = "true", required = false) final boolean showCorrectAnswer,
@@ -308,7 +311,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Get contents",
 			nickname = "getContents")
-	@RequestMapping(value = "/", method = RequestMethod.GET)
+	@GetMapping("/")
 	@Pagination
 	public List<Content> getContents(
 			@RequestParam(value = "sessionkey") final String roomShortId,
@@ -339,7 +342,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Delete contents",
 			nickname = "deleteContents")
-	@RequestMapping(value = { "/" }, method = RequestMethod.DELETE)
+	@DeleteMapping("/")
 	public void deleteContents(
 			@RequestParam(value = "sessionkey") final String roomShortId,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
@@ -364,7 +367,7 @@ public class ContentController extends PaginationController {
 			nickname = "getContentCount")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/count", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/count", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getContentCount(
 			@RequestParam(value = "sessionkey") final String roomShortId,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") final boolean lectureContentsOnly,
@@ -387,7 +390,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Delete answers and content",
 			nickname = "deleteAnswersAndContent")
-	@RequestMapping(value = "/{contentId}", method = RequestMethod.DELETE)
+	@DeleteMapping("/{contentId}")
 	public void deleteAnswersAndContent(
 			@PathVariable final String contentId) {
 		contentService.delete(contentId);
@@ -397,7 +400,7 @@ public class ContentController extends PaginationController {
 			nickname = "getUnAnsweredContentIds")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/unanswered", method = RequestMethod.GET)
+	@GetMapping("/unanswered")
 	public List<String> getUnAnsweredContentIds(
 			@RequestParam(value = "sessionkey") final String roomShortId,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
@@ -437,7 +440,7 @@ public class ContentController extends PaginationController {
 			nickname = "getMyAnswer")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/{contentId}/myanswer", method = RequestMethod.GET)
+	@GetMapping("/{contentId}/myanswer")
 	public Answer getMyAnswer(
 			@PathVariable final String contentId,
 			final HttpServletResponse response) {
@@ -471,7 +474,7 @@ public class ContentController extends PaginationController {
 	 */
 	@ApiOperation(value = "Get answers for a content, identified by provided content ID",
 			nickname = "getAnswers")
-	@RequestMapping(value = "/{contentId}/answer/", method = RequestMethod.GET)
+	@GetMapping("/{contentId}/answer/")
 	public List<Answer> getAnswers(
 			@PathVariable final String contentId,
 			@RequestParam(value = "piround", required = false) final Integer piRound,
@@ -504,7 +507,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Save answer, provided in the Request Body, for a content, identified by provided content ID",
 			nickname = "saveAnswer")
-	@RequestMapping(value = "/{contentId}/answer/", method = RequestMethod.POST)
+	@PostMapping("/{contentId}/answer/")
 	public Answer saveAnswer(
 			@PathVariable final String contentId,
 			@RequestBody final Answer answer,
@@ -524,7 +527,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Update answer, provided in Request Body, identified by content ID and answer ID",
 			nickname = "updateAnswer")
-	@RequestMapping(value = "/{contentId}/answer/{answerId}", method = RequestMethod.PUT)
+	@PutMapping("/{contentId}/answer/{answerId}")
 	public Answer updateAnswer(
 			@PathVariable final String contentId,
 			@PathVariable final String answerId,
@@ -542,7 +545,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Get Image, identified by content ID and answer ID",
 			nickname = "getImage")
-	@RequestMapping(value = "/{contentId}/answer/{answerId}/image", method = RequestMethod.GET)
+	@GetMapping("/{contentId}/answer/{answerId}/image")
 	public String getImage(
 			@PathVariable final String contentId,
 			@PathVariable final String answerId,
@@ -553,7 +556,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Delete answer, identified by content ID and answer ID",
 			nickname = "deleteAnswer")
-	@RequestMapping(value = "/{contentId}/answer/{answerId}", method = RequestMethod.DELETE)
+	@DeleteMapping("/{contentId}/answer/{answerId}")
 	public void deleteAnswer(
 			@PathVariable final String contentId,
 			@PathVariable final String answerId,
@@ -563,7 +566,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Delete answers from a content, identified by content ID",
 			nickname = "deleteAnswers")
-	@RequestMapping(value = "/{contentId}/answer/", method = RequestMethod.DELETE)
+	@DeleteMapping("/{contentId}/answer/")
 	public void deleteAnswers(
 			@PathVariable final String contentId,
 			final HttpServletResponse response) {
@@ -572,7 +575,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Delete all answers and contents from a room, identified by room short ID",
 			nickname = "deleteAllContentsAnswers")
-	@RequestMapping(value = "/answers", method = RequestMethod.DELETE)
+	@DeleteMapping("/answers")
 	public void deleteAllContentsAnswers(
 			@RequestParam(value = "sessionkey") final String roomShortId,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
@@ -605,14 +608,14 @@ public class ContentController extends PaginationController {
 			nickname = "getAnswerCount")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/{contentId}/answercount", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/{contentId}/answercount", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getAnswerCount(@PathVariable final String contentId) {
 		return String.valueOf(answerService.countAnswersByContentIdAndRound(contentId));
 	}
 
 	@ApiOperation(value = "Get the amount of answers for a content, identified by the content ID",
 			nickname = "getAllAnswerCount")
-	@RequestMapping(value = "/{contentId}/allroundanswercount", method = RequestMethod.GET)
+	@GetMapping("/{contentId}/allroundanswercount")
 	public List<Integer> getAllAnswerCount(@PathVariable final String contentId) {
 		return Arrays.asList(
 				answerService.countAnswersByContentIdAndRound(contentId, 1),
@@ -622,15 +625,14 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Get the total amount of answers by a content, identified by the content ID",
 			nickname = "getTotalAnswerCountByContent")
-	@RequestMapping(value = "/{contentId}/totalanswercount", method = RequestMethod.GET,
-			produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/{contentId}/totalanswercount", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getTotalAnswerCountByContent(@PathVariable final String contentId) {
 		return String.valueOf(answerService.countTotalAnswersByContentId(contentId));
 	}
 
 	@ApiOperation(value = "Get the amount of answers and abstention answers by a content, identified by the content ID",
 			nickname = "getAnswerAndAbstentionCount")
-	@RequestMapping(value = "/{contentId}/answerandabstentioncount", method = RequestMethod.GET)
+	@GetMapping("/{contentId}/answerandabstentioncount")
 	public List<Integer> getAnswerAndAbstentionCount(@PathVariable final String contentId) {
 		return Arrays.asList(
 				answerService.countAnswersByContentIdAndRound(contentId),
@@ -640,7 +642,7 @@ public class ContentController extends PaginationController {
 
 	@ApiOperation(value = "Get all Freetext answers by a content, identified by the content ID",
 			nickname = "getFreetextAnswers")
-	@RequestMapping(value = "/{contentId}/freetextanswer/", method = RequestMethod.GET)
+	@GetMapping("/{contentId}/freetextanswer/")
 	@Pagination
 	public List<Answer> getFreetextAnswers(@PathVariable final String contentId) {
 		return answerService.getTextAnswersByContentId(contentId, offset, limit).stream()
@@ -651,7 +653,7 @@ public class ContentController extends PaginationController {
 			nickname = "getMyAnswers")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/myanswers", method = RequestMethod.GET)
+	@GetMapping("/myanswers")
 	public List<Answer> getMyAnswers(@RequestParam(value = "sessionkey") final String roomShortId)
 			throws OperationNotSupportedException {
 		return answerService.getMyAnswersByRoomId(roomService.getIdByShortId(roomShortId)).stream()
@@ -669,7 +671,7 @@ public class ContentController extends PaginationController {
 			nickname = "getTotalAnswerCount")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/answercount", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/answercount", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getTotalAnswerCount(
 			@RequestParam(value = "sessionkey") final String roomShortId,
 			@RequestParam(value = "lecturequestionsonly", defaultValue = "false") boolean lectureContentsOnly,
diff --git a/src/main/java/de/thm/arsnova/controller/v2/CourseController.java b/src/main/java/de/thm/arsnova/controller/v2/CourseController.java
index 1e6f4bd732a0ce8585bfd8fe2484807b21757106..c1ce1b748a9892bc70f0c9036ea204bfd9f0bff6 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/CourseController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/CourseController.java
@@ -25,8 +25,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -50,7 +49,7 @@ public class CourseController extends AbstractController {
 	@Autowired
 	private UserService userService;
 
-	@RequestMapping(value = "/v2/mycourses", method = RequestMethod.GET)
+	@GetMapping("/v2/mycourses")
 	public List<Course> myCourses(
 			@ApiParam(value = "sort my courses by name", required = true)
 			@RequestParam(value = "sortby", defaultValue = "name") final String sortby) {
diff --git a/src/main/java/de/thm/arsnova/controller/v2/FeedbackController.java b/src/main/java/de/thm/arsnova/controller/v2/FeedbackController.java
index 982ceae9020803af8c9b5fae81237fbe238c6793..679355fded78a119961637209fdcdf1dfaafb254 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/FeedbackController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/FeedbackController.java
@@ -21,7 +21,9 @@ package de.thm.arsnova.controller.v2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -58,14 +60,14 @@ public class FeedbackController extends AbstractController {
 
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/feedback", method = RequestMethod.GET)
+	@GetMapping("/feedback")
 	public Feedback getFeedback(@PathVariable final String shortId) {
 		return feedbackService.getByRoomId(roomService.getIdByShortId(shortId));
 	}
 
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/myfeedback", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/myfeedback", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getMyFeedback(@PathVariable final String shortId) {
 		final String roomId = roomService.getIdByShortId(shortId);
 		final Integer value = feedbackService.getByRoomIdAndUserId(roomId, userService.getCurrentUser().getId());
@@ -77,28 +79,28 @@ public class FeedbackController extends AbstractController {
 
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/feedbackcount", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/feedbackcount", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getFeedbackCount(@PathVariable final String shortId) {
 		return String.valueOf(feedbackService.countFeedbackByRoomId(roomService.getIdByShortId(shortId)));
 	}
 
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/roundedaveragefeedback", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/roundedaveragefeedback", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getAverageFeedbackRounded(@PathVariable final String shortId) {
 		return String.valueOf(feedbackService.calculateRoundedAverageFeedback(roomService.getIdByShortId(shortId)));
 	}
 
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/averagefeedback", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/averagefeedback", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getAverageFeedback(@PathVariable final String shortId) {
 		return String.valueOf(feedbackService.calculateAverageFeedback(roomService.getIdByShortId(shortId)));
 	}
 
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/feedback", method = RequestMethod.POST)
+	@PostMapping("/feedback")
 	@ResponseStatus(HttpStatus.CREATED)
 	public Feedback postFeedback(
 			@PathVariable final String shortId,
diff --git a/src/main/java/de/thm/arsnova/controller/v2/LegacyController.java b/src/main/java/de/thm/arsnova/controller/v2/LegacyController.java
index c4da4c80c117e654a172d9cc173bf64516eb0afe..8e10a70723b87ceef9f27bae8e637a76d637f4ef 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/LegacyController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/LegacyController.java
@@ -20,7 +20,10 @@ package de.thm.arsnova.controller.v2;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -46,13 +49,13 @@ public class LegacyController extends AbstractController {
 	/* specific routes */
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/mysessions", method = RequestMethod.GET)
+	@GetMapping("/session/mysessions")
 	public String redirectSessionMy() {
 		return "forward:/v2/session/?ownedonly=true";
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/visitedsessions", method = RequestMethod.GET)
+	@GetMapping("/session/visitedsessions")
 	public String redirectSessionVisited() {
 		return "forward:/v2/session/?visitedonly=true";
 	}
@@ -64,31 +67,31 @@ public class LegacyController extends AbstractController {
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/{shortId}/skillquestions", method = RequestMethod.GET)
+	@GetMapping("/session/{shortId}/skillquestions")
 	public String redirectQuestionByLecturerList(@PathVariable final String shortId) {
 		return String.format("forward:/v2/lecturerquestion/?sessionkey=%s", shortId);
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/{shortId}/skillquestioncount", method = RequestMethod.GET)
+	@GetMapping("/session/{shortId}/skillquestioncount")
 	public String redirectQuestionByLecturerCount(@PathVariable final String shortId) {
 		return String.format("forward:/v2/lecturerquestion/count?sessionkey=%s", shortId);
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/{shortId}/answercount", method = RequestMethod.GET)
+	@GetMapping("/session/{shortId}/answercount")
 	public String redirectQuestionByLecturerAnswerCount(@PathVariable final String shortId) {
 		return String.format("forward:/v2/lecturerquestion/answercount?sessionkey=%s", shortId);
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/{shortId}/unanswered", method = RequestMethod.GET)
+	@GetMapping("/session/{shortId}/unanswered")
 	public String redirectQuestionByLecturerUnnsweredCount(@PathVariable final String shortId) {
 		return String.format("forward:/v2/lecturerquestion/answercount?sessionkey=%s", shortId);
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/{shortId}/myanswers", method = RequestMethod.GET)
+	@GetMapping("/session/{shortId}/myanswers")
 	public String redirectQuestionByLecturerMyAnswers(@PathVariable final String shortId) {
 		return String.format("forward:/v2/lecturerquestion/myanswers?sessionkey=%s", shortId);
 	}
@@ -100,24 +103,36 @@ public class LegacyController extends AbstractController {
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/{shortId}/interposed", method = RequestMethod.DELETE)
+	@DeleteMapping("/session/{shortId}/interposed")
 	@ResponseBody
 	public void deleteAllInterposedQuestions(@PathVariable final String shortId) {
 		commentService.deleteByRoomId(shortId);
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/{shortId}/interposedcount", method = RequestMethod.GET)
+	@GetMapping("/session/{shortId}/interposedcount")
 	public String redirectQuestionByAudienceCount(@PathVariable final String shortId) {
 		return String.format("forward:/v2/audiencequestion/count?sessionkey=%s", shortId);
 	}
 
 	@DeprecatedApi
-	@RequestMapping(value = "/session/{shortId}/interposedreadingcount", method = RequestMethod.GET)
+	@GetMapping("/session/{shortId}/interposedreadingcount")
 	public String redirectQuestionByAudienceReadCount(@PathVariable final String shortId) {
 		return String.format("forward:/v2/audiencequestion/readcount?sessionkey=%s", shortId);
 	}
 
+	@DeprecatedApi
+	@GetMapping(value = { "/whoami", "/whoami.json" })
+	public String redirectWhoami() {
+		return "forward:/v2/auth/whoami";
+	}
+
+	@DeprecatedApi
+	@PostMapping(value = "/doLogin")
+	public String redirectLogin() {
+		return "forward:/v2/auth/login";
+	}
+
 	/* generalized routes */
 
 	@DeprecatedApi
@@ -155,16 +170,4 @@ public class LegacyController extends AbstractController {
 			@PathVariable final String arg2) {
 		return String.format("forward:/v2/audiencequestion/%s/%s/?sessionkey=%s", arg1, arg2, shortId);
 	}
-
-	@DeprecatedApi
-	@RequestMapping(value = { "/whoami", "/whoami.json" })
-	public String redirectWhoami() {
-		return "forward:/v2/auth/whoami";
-	}
-
-	@DeprecatedApi
-	@RequestMapping(value = "/doLogin")
-	public String redirectLogin() {
-		return "forward:/v2/auth/login";
-	}
 }
diff --git a/src/main/java/de/thm/arsnova/controller/v2/MotdController.java b/src/main/java/de/thm/arsnova/controller/v2/MotdController.java
index 8ccdcb554e21604df37c8f1642b6b7eb2170dfb4..6d752d72132e6f48a4596121f4f2d3db03d35cb7 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/MotdController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/MotdController.java
@@ -30,7 +30,11 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -71,7 +75,7 @@ public class MotdController extends AbstractController {
 
 	@ApiOperation(value = "get messages. if adminview=false,"
 			+ " only messages with startdate<clientdate<enddate are returned")
-	@RequestMapping(value = "/", method = RequestMethod.GET)
+	@GetMapping("/")
 	@ApiResponses(value = {
 			@ApiResponse(code = 204, message = HTML_STATUS_204),
 			@ApiResponse(code = 501, message = HTML_STATUS_501)
@@ -116,7 +120,7 @@ public class MotdController extends AbstractController {
 			@ApiResponse(code = 201, message = HTML_STATUS_201),
 			@ApiResponse(code = 503, message = HTML_STATUS_503)
 	})
-	@RequestMapping(value = "/", method = RequestMethod.POST)
+	@PostMapping("/")
 	@ResponseStatus(HttpStatus.CREATED)
 	public Motd postNewMotd(
 			@ApiParam(value = "current motd", required = true) @RequestBody final Motd motd,
@@ -133,7 +137,7 @@ public class MotdController extends AbstractController {
 	}
 
 	@ApiOperation(value = "update a message of the day", nickname = "updateMotd")
-	@RequestMapping(value = "/{motdId}", method = RequestMethod.PUT)
+	@PutMapping("/{motdId}")
 	public Motd updateMotd(
 				@ApiParam(value = "motdkey from current motd", required = true) @PathVariable final String motdId,
 				@ApiParam(value = "current motd", required = true) @RequestBody final Motd motd) {
@@ -149,7 +153,7 @@ public class MotdController extends AbstractController {
 	}
 
 	@ApiOperation(value = "deletes a message of the day", nickname = "deleteMotd")
-	@RequestMapping(value = "/{motdId}", method = RequestMethod.DELETE)
+	@DeleteMapping("/{motdId}")
 	public void deleteMotd(
 			@ApiParam(value = "Motd-key from the message that shall be deleted", required = true)
 			@PathVariable
@@ -158,7 +162,7 @@ public class MotdController extends AbstractController {
 		motdService.delete(motd);
 	}
 
-	@RequestMapping(value = "/userlist", method =  RequestMethod.GET)
+	@GetMapping("/userlist")
 	public MotdList getAcknowledgedIds(@AuthenticationPrincipal final User user, @RequestParam final String username) {
 		if (user == null || !user.getUsername().equals(username)) {
 			throw new ForbiddenException();
@@ -168,7 +172,7 @@ public class MotdController extends AbstractController {
 		return toV2Migrator.migrateMotdList(profile);
 	}
 
-	@RequestMapping(value = "/userlist", method =  RequestMethod.PUT)
+	@PutMapping("/userlist")
 	public void putAcknowledgedIds(@AuthenticationPrincipal final User user, @RequestBody final MotdList motdList) {
 		if (user == null || !user.getUsername().equals(motdList.getUsername())) {
 			throw new ForbiddenException();
diff --git a/src/main/java/de/thm/arsnova/controller/v2/RoomController.java b/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
index aa674f9df311796ed6272845476533d25c0181ec..2a61cfcb81738a2fec9808c6c0f98b119d50a5c2 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/RoomController.java
@@ -33,7 +33,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.security.access.AccessDeniedException;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -82,7 +86,7 @@ public class RoomController extends PaginationController {
 			nickname = "joinRoom")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/{shortId}", method = RequestMethod.GET)
+	@GetMapping("/{shortId}")
 	public Room joinRoom(
 				@ApiParam(value = "Room-Key from current Room", required = true)
 				@PathVariable final String shortId,
@@ -98,7 +102,7 @@ public class RoomController extends PaginationController {
 
 	@ApiOperation(value = "deletes a Room",
 			nickname = "deleteRoom")
-	@RequestMapping(value = "/{shortId}", method = RequestMethod.DELETE)
+	@DeleteMapping("/{shortId}")
 	public void deleteRoom(
 			@ApiParam(value = "Room-Key from current Room", required = true)
 			@PathVariable
@@ -111,8 +115,7 @@ public class RoomController extends PaginationController {
 			nickname = "countActiveUsers")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(value = "/{shortId}/activeusercount", method = RequestMethod.GET,
-			produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/{shortId}/activeusercount", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String countActiveUsers(
 			@ApiParam(value = "Room-Key from current Room", required = true) @PathVariable final String shortId) {
 		return String.valueOf(roomService.activeUsers(roomService.getIdByShortId(shortId)));
@@ -124,7 +127,7 @@ public class RoomController extends PaginationController {
 			@ApiResponse(code = 201, message = HTML_STATUS_201),
 			@ApiResponse(code = 503, message = HTML_STATUS_503)
 	})
-	@RequestMapping(value = "/", method = RequestMethod.POST)
+	@PostMapping("/")
 	@ResponseStatus(HttpStatus.CREATED)
 	public Room postNewRoom(
 			@ApiParam(value = "current Room", required = true)
@@ -151,7 +154,7 @@ public class RoomController extends PaginationController {
 
 	@ApiOperation(value = "updates a Room",
 			nickname = "postNewRoom")
-	@RequestMapping(value = "/{shortId}", method = RequestMethod.PUT)
+	@PutMapping("/{shortId}")
 	public Room updateRoom(
 			@ApiParam(value = "Room-Key from current Room", required = true) @PathVariable final String shortId,
 			@ApiParam(value = "current room", required = true) @RequestBody final Room room) {
@@ -172,7 +175,7 @@ public class RoomController extends PaginationController {
 			@ApiResponse(code = 204, message = HTML_STATUS_204),
 			@ApiResponse(code = 501, message = HTML_STATUS_501)
 	})
-	@RequestMapping(value = "/", method = RequestMethod.GET)
+	@GetMapping("/")
 	@Pagination
 	public List<Room> getRooms(
 			@ApiParam(value = "ownedOnly", required = true)
@@ -242,7 +245,7 @@ public class RoomController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 204, message = HTML_STATUS_204)
 	})
-	@RequestMapping(value = "/", method = RequestMethod.GET, params = "statusonly=true")
+	@GetMapping(value = "/", params = "statusonly=true")
 	@Pagination
 	public List<RoomInfo> getMyRooms(
 			@ApiParam(value = "visitedOnly", required = true)
@@ -278,7 +281,7 @@ public class RoomController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 204, message = HTML_STATUS_204)
 	})
-	@RequestMapping(value = "/publicpool", method = RequestMethod.GET, params = "statusonly=true")
+	@GetMapping(value = "/publicpool", params = "statusonly=true")
 	public List<RoomInfo> getMyPublicPoolRooms(
 			final HttpServletResponse response) {
 		final List<de.thm.arsnova.model.Room> rooms = roomService.getMyPublicPoolRoomsInfo();
@@ -296,7 +299,7 @@ public class RoomController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 204, message = HTML_STATUS_204)
 	})
-	@RequestMapping(value = "/publicpool", method = RequestMethod.GET)
+	@GetMapping("/publicpool")
 	public List<Room> getPublicPoolRooms(
 			final HttpServletResponse response) {
 		final List<de.thm.arsnova.model.Room> rooms = roomService.getPublicPoolRoomsInfo();
@@ -311,7 +314,7 @@ public class RoomController extends PaginationController {
 
 	@ApiOperation(value = "imports a Room",
 			nickname = "importRoom")
-	@RequestMapping(value = "/import", method = RequestMethod.POST)
+	@PostMapping("/import")
 	public Room importRoom(
 			@ApiParam(value = "current Room", required = true) @RequestBody final ImportExportContainer room,
 			final HttpServletResponse response) {
@@ -319,7 +322,7 @@ public class RoomController extends PaginationController {
 	}
 
 	@ApiOperation(value = "export Rooms", nickname = "exportRoom")
-	@RequestMapping(value = "/export", method = RequestMethod.GET)
+	@GetMapping("/export")
 	public List<ImportExportContainer> getExport(
 			@ApiParam(value = "Room-Key", required = true)
 			@RequestParam(value = "sessionkey", defaultValue = "")
@@ -346,7 +349,7 @@ public class RoomController extends PaginationController {
 	}
 
 	@ApiOperation(value = "copy a Rooms to the public pool if enabled")
-	@RequestMapping(value = "/{shortId}/copytopublicpool", method = RequestMethod.POST)
+	@PostMapping("/{shortId}/copytopublicpool")
 	public Room copyToPublicPool(
 			@ApiParam(value = "Room-Key from current Room", required = true)
 			@PathVariable
@@ -364,7 +367,7 @@ public class RoomController extends PaginationController {
 	}
 
 	@ApiOperation(value = "copy a Room from the public pool if enabled")
-	@RequestMapping(value = "/{shortId}/copyfrompublicpool", method = RequestMethod.POST)
+	@PostMapping("/{shortId}/copyfrompublicpool")
 	public Room copyFromPublicPool(
 			@ApiParam(value = "Short ID of the Room", required = true) @PathVariable final String shortId,
 			@ApiParam(value = "custom attributes for Room", required = true) @RequestBody final Room sessionAttributes) {
@@ -376,7 +379,7 @@ public class RoomController extends PaginationController {
 	@ApiResponses(value = {
 			@ApiResponse(code = 404, message = HTML_STATUS_404)
 	})
-	@RequestMapping(value = "/{shortId}/lock", method = RequestMethod.POST)
+	@PostMapping("/{shortId}/lock")
 	public Room lockRoom(
 			@ApiParam(value = "Room-Key from current Room", required = true) @PathVariable final String shortId,
 			@ApiParam(value = "lock", required = true) @RequestParam(required = false) final Boolean lock,
@@ -390,7 +393,7 @@ public class RoomController extends PaginationController {
 
 	@ApiOperation(value = "retrieves a value for the score",
 			nickname = "getLearningProgress")
-	@RequestMapping(value = "/{shortId}/learningprogress", method = RequestMethod.GET)
+	@GetMapping("/{shortId}/learningprogress")
 	public ScoreStatistics getLearningProgress(
 			@ApiParam(value = "Room-Key from current Room", required = true)
 			@PathVariable
@@ -407,7 +410,7 @@ public class RoomController extends PaginationController {
 
 	@ApiOperation(value = "retrieves a value for the learning progress for the current user",
 			nickname = "getMyLearningProgress")
-	@RequestMapping(value = "/{shortId}/mylearningprogress", method = RequestMethod.GET)
+	@GetMapping("/{shortId}/mylearningprogress")
 	public ScoreStatistics getMyLearningProgress(
 			@ApiParam(value = "Room-Key from current Room", required = true) @PathVariable final String shortId,
 			@RequestParam(value = "type", defaultValue = "questions") final String type,
@@ -418,7 +421,7 @@ public class RoomController extends PaginationController {
 
 	@ApiOperation(value = "retrieves all Room features",
 			nickname = "getRoomFeatures")
-	@RequestMapping(value = "/{shortId}/features", method = RequestMethod.GET)
+	@GetMapping("/{shortId}/features")
 	public RoomFeature getRoomFeatures(
 			@ApiParam(value = "Room-Key from current Room", required = true) @PathVariable final String shortId,
 			final HttpServletResponse response) {
@@ -426,7 +429,7 @@ public class RoomController extends PaginationController {
 		return toV2Migrator.migrate(room.getSettings());
 	}
 
-	@RequestMapping(value = "/{shortId}/features", method = RequestMethod.PUT)
+	@PutMapping("/{shortId}/features")
 	@ApiOperation(value = "change all Room features",
 			nickname = "changeRoomFeatures")
 	public RoomFeature changeRoomFeatures(
@@ -440,8 +443,7 @@ public class RoomController extends PaginationController {
 		return toV2Migrator.migrate(room.getSettings());
 	}
 
-	@RequestMapping(value = "/{shortId}/lockfeedbackinput", method = RequestMethod.POST,
-			produces = MediaType.TEXT_PLAIN_VALUE)
+	@PostMapping(value = "/{shortId}/lockfeedbackinput", produces = MediaType.TEXT_PLAIN_VALUE)
 	@ApiOperation(value = "locks input of user live feedback",
 			nickname = "lockFeedbackInput")
 	public String lockFeedbackInput(
@@ -451,8 +453,7 @@ public class RoomController extends PaginationController {
 		return String.valueOf(roomService.lockFeedbackInput(roomService.getIdByShortId(shortId), lock));
 	}
 
-	@RequestMapping(value = "/{shortId}/flipflashcards", method = RequestMethod.POST,
-			produces = MediaType.TEXT_PLAIN_VALUE)
+	@PostMapping(value = "/{shortId}/flipflashcards", produces = MediaType.TEXT_PLAIN_VALUE)
 	@ApiOperation(value = "flip all flashcards in Room",
 			nickname = "lockFeedbackInput")
 	public String flipFlashcards(
@@ -524,27 +525,4 @@ public class RoomController extends PaginationController {
 
 		return String.format("forward:/audiencequestion/%s/?sessionkey=%s", arg1, shortId);
 	}
-
-	@RequestMapping(value = "/{shortId}/audiencequestion/{arg1}/{arg2}")
-	public String redirectAudienceQuestionWithTwoArguments(
-			@PathVariable final String shortId,
-			@PathVariable final String arg1,
-			@PathVariable final String arg2,
-			final HttpServletResponse response) {
-		response.addHeader(X_FORWARDED, "1");
-
-		return String.format("forward:/audiencequestion/%s/%s/?sessionkey=%s", arg1, arg2, shortId);
-	}
-
-	@RequestMapping(value = "/{shortId}/audiencequestion/{arg1}/{arg2}/{arg3}")
-	public String redirectAudienceQuestionWithThreeArguments(
-			@PathVariable final String shortId,
-			@PathVariable final String arg1,
-			@PathVariable final String arg2,
-			@PathVariable final String arg3,
-			final HttpServletResponse response) {
-		response.addHeader(X_FORWARDED, "1");
-
-		return String.format("forward:/audiencequestion/%s/%s/%s/?sessionkey=%s", arg1, arg2, arg3, shortId);
-	}
 }
diff --git a/src/main/java/de/thm/arsnova/controller/v2/SocketController.java b/src/main/java/de/thm/arsnova/controller/v2/SocketController.java
index d3ed9a73702899b77586a0f7f7aa1277ead2e95c..7ea9f917f065c5f429f487d3f680f2b2fbe428ca 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/SocketController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/SocketController.java
@@ -32,6 +32,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -65,7 +67,7 @@ public class SocketController extends AbstractController {
 			@ApiResponse(code = 400, message = HTML_STATUS_400),
 			@ApiResponse(code = 403, message = HTML_STATUS_403)
 	})
-	@RequestMapping(method = RequestMethod.POST, value = "/assign")
+	@PostMapping("/assign")
 	public void authorize(
 			@ApiParam(value = "sessionMap", required = true) @RequestBody final Map<String, String> sessionMap,
 			@ApiParam(value = "response", required = true) final HttpServletResponse response) {
@@ -87,7 +89,7 @@ public class SocketController extends AbstractController {
 
 	@ApiOperation(value = "retrieves a socket url",
 			nickname = "getSocketUrl")
-	@RequestMapping(value = "/url", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/url", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String getSocketUrl(final HttpServletRequest request) {
 		return (server.isUseSsl() ? "https://" : "http://") + request.getServerName() + ":" + server.getPortNumber();
 	}
diff --git a/src/main/java/de/thm/arsnova/controller/v2/StatisticsController.java b/src/main/java/de/thm/arsnova/controller/v2/StatisticsController.java
index 8fea0e16a855b62a284323b33de3fe127159fcca..8f26c7e7bcf8cdda61378c483b42aaa5badddcd0 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/StatisticsController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/StatisticsController.java
@@ -22,6 +22,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
@@ -45,7 +46,7 @@ public class StatisticsController extends AbstractController {
 
 	@ApiOperation(value = "Retrieves global statistics",
 			nickname = "getStatistics")
-	@RequestMapping(method = RequestMethod.GET, value = "/")
+	@GetMapping("/")
 	@CacheControl(maxAge = 60, policy = CacheControl.Policy.PUBLIC)
 	public Statistics getStatistics() {
 		return statisticsService.getStatistics();
@@ -55,7 +56,7 @@ public class StatisticsController extends AbstractController {
 			nickname = "countActiveUsers")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(method = RequestMethod.GET, value = "/activeusercount", produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/activeusercount", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String countActiveUsers() {
 		return String.valueOf(statisticsService.getStatistics().getActiveUsers());
 	}
@@ -64,7 +65,7 @@ public class StatisticsController extends AbstractController {
 			nickname = "countLoggedInUsers")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(method = RequestMethod.GET, value = "/loggedinusercount", produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/loggedinusercount", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String countLoggedInUsers() {
 		return String.valueOf(statisticsService.getStatistics().getLoggedinUsers());
 	}
@@ -73,7 +74,7 @@ public class StatisticsController extends AbstractController {
 			nickname = "countSessions")
 	@DeprecatedApi
 	@Deprecated
-	@RequestMapping(method = RequestMethod.GET, value = "/sessioncount", produces = MediaType.TEXT_PLAIN_VALUE)
+	@GetMapping(value = "/sessioncount", produces = MediaType.TEXT_PLAIN_VALUE)
 	public String countSessions() {
 		return String.valueOf(statisticsService.getStatistics().getOpenSessions()
 				+ statisticsService.getStatistics().getClosedSessions());
diff --git a/src/main/java/de/thm/arsnova/controller/v2/UserController.java b/src/main/java/de/thm/arsnova/controller/v2/UserController.java
index 0604ea5a98d47a8c07d7e9edc5377bc86fc7aa28..aec8a783b77155788c050abaf18b72c4194ba75a 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/UserController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/UserController.java
@@ -23,7 +23,9 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -44,7 +46,7 @@ public class UserController extends AbstractController {
 	@Autowired
 	private UserService userService;
 
-	@RequestMapping(value = "/register", method = RequestMethod.POST)
+	@PostMapping(value = "/register")
 	public void register(@RequestParam final String username,
 			@RequestParam final String password,
 			final HttpServletRequest request, final HttpServletResponse response) {
@@ -56,8 +58,7 @@ public class UserController extends AbstractController {
 		response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
 	}
 
-	@RequestMapping(value = "/{username}/activate", method = { RequestMethod.POST,
-			RequestMethod.GET })
+	@PostMapping(value = "/{username}/activate")
 	public void activate(
 			@PathVariable final String username,
 			@RequestParam final String key, final HttpServletRequest request,
@@ -73,7 +74,7 @@ public class UserController extends AbstractController {
 		response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
 	}
 
-	@RequestMapping(value = "/{username}/", method = RequestMethod.DELETE)
+	@DeleteMapping(value = "/{username}/")
 	public void activate(
 			@PathVariable final String username,
 			final HttpServletRequest request,
@@ -83,7 +84,7 @@ public class UserController extends AbstractController {
 		}
 	}
 
-	@RequestMapping(value = "/{username}/resetpassword", method = RequestMethod.POST)
+	@PostMapping(value = "/{username}/resetpassword")
 	public void resetPassword(
 			@PathVariable final String username,
 			@RequestParam(required = false) final String key,
diff --git a/src/main/java/de/thm/arsnova/controller/v2/WelcomeController.java b/src/main/java/de/thm/arsnova/controller/v2/WelcomeController.java
index ca93646db03b9811c48bee1c8deb2a502ed47fb5..04f0aac36398df436779ddf7c1a966a254ad227b 100644
--- a/src/main/java/de/thm/arsnova/controller/v2/WelcomeController.java
+++ b/src/main/java/de/thm/arsnova/controller/v2/WelcomeController.java
@@ -1,12 +1,13 @@
 package de.thm.arsnova.controller.v2;
 
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 @Controller("v2WelcomeController")
 @RequestMapping("/v2")
 public class WelcomeController {
-	@RequestMapping(value = "/")
+	@GetMapping(value = "/")
 	public String forwardHome() {
 		return "forward:/";
 	}