Я заметил в своем приложении Spring Boot WebFlux, что отображение отличается от MVC.
В MVC я мог бы добавить RestController("/prefix")
, чтобы все мои методы имели префикс /prefix
,Но в WebFlux это не работает.
Это сделано специально?
Примечание. Я поменял тип возвращаемого значения Mono<>
, чтобы увидеть, имеет ли это значение, на случай, если здесь будет проведен какой-то другой самоанализ.
Например, это контроллер -
@RestController("/api/user")
public class UserController {
private UserService service;
public UserController(UserService service) {
this.service = service;
}
@GetMapping("/me")
public Map<String, Object> whoami(@AuthenticationPrincipal OAuth2User oauth2User) {
HashMap<String, Object> response = new HashMap<>();
if (null != oauth2User) {
response.put("userName", oauth2User.getName());
response.put("userAttributes", oauth2User.getAttributes());
return response;
} else {
response.put("userName", "anonymous");
return response;
}
}
...
И отображение не найдено там, где я ожидал.
Хотя, он найден здесь -
Я думаю, что комментарий о зависимостях правильный - Один из них тянетконфликт.
dependencies {
implementation project(":shared:domain")
implementation 'org.springframework.cloud:spring-cloud-starter-gateway',
'org.springframework.cloud:spring-cloud-starter-security',
'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client',
'org.springframework.boot:spring-boot-starter-webflux',
'org.springframework.boot:spring-boot-starter-oauth2-client',
'org.zalando:problem-spring-webflux:0.25.0',
"com.okta.sdk:okta-sdk-api:${oktaVersion}"
runtime "com.okta.sdk:okta-sdk-impl:${oktaVersion}",
"com.okta.sdk:okta-sdk-httpclient:${oktaVersion}"
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
}