-
Notifications
You must be signed in to change notification settings - Fork 1
[Fix] : @Max 사용 시 validator 의존관계 설정 #83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughAdded Spring Boot validation dependency to build.gradle to enable validation annotations. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Assessment against linked issues
Assessment against linked issues: Out-of-scope changes(No out-of-scope changes identified.) Poem
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
build.gradle(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: deploy
🔇 Additional comments (1)
build.gradle (1)
33-33: Correct dependency added to enable Bean Validation in Spring Boot 3.xAdding spring-boot-starter-validation is the right fix for “No target Validator set”. This pulls in Hibernate Validator and auto-configures a Validator, enabling annotations like @max to work.
| implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' | ||
| implementation 'org.springframework.boot:spring-boot-starter-webflux' | ||
| implementation 'com.fasterxml.jackson.core:jackson-databind' | ||
| implementation 'org.springframework.boot:spring-boot-starter-validation' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Validate controller setup for @max on @RequestParam/@PathVariable
Starter alone wires the Validator, but simple type constraints require @validated on the controller (or method) for MVC/WebFlux binding. Also, if you rely on method-level validation for services, add @EnableMethodValidation on a configuration class.
Run the following to locate usages and verify annotations:
If any controllers using @RequestParam/@PathVariable constraints lack @validated, I can propose a small patch.
🏁 Script executed:
#!/bin/bash
# Show all @Max usages with context
rg -n -A 5 -B 5 '@Max\s*\('
echo
echo "Controllers annotated with @Validated:"
rg -n '@(org\.springframework\.validation\.annotation\.)?Validated'
echo
echo "Presence of @EnableMethodValidation (optional, for method-level validation):"
rg -n '@(org\.springframework\.validation\.annotation\.)?EnableMethodValidation'Length of output: 1862
Annotate controllers with @validated to enforce @max constraints
The PostController#getPostList method applies @Max(30) to a @RequestParam but the controller isn’t annotated with Spring’s method‐validation support, so that constraint won’t be enforced at runtime. Add @Validated on the class (or method) level. If you also rely on service‐layer method validation, enable it via @EnableMethodValidation in a configuration class.
• File: src/main/java/naughty/tuzamate/domain/post/controller/PostController.java
– Add @Validated to the controller class.
• (Optional) File: any @Configuration class
– Add @EnableMethodValidation to activate service‐layer method validation.
Suggested diff:
--- a/src/main/java/naughty/tuzamate/domain/post/controller/PostController.java
+++ b/src/main/java/naughty/tuzamate/domain/post/controller/PostController.java
@@
- @RestController
+ @RestController
+ @Validated
@RequestMapping("/boards/{boardType}/posts")
public class PostController {
…📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| implementation 'org.springframework.boot:spring-boot-starter-validation' | |
| --- a/src/main/java/naughty/tuzamate/domain/post/controller/PostController.java | |
| +++ b/src/main/java/naughty/tuzamate/domain/post/controller/PostController.java | |
| @@ | |
| - @RestController | |
| + @RestController | |
| + @Validated | |
| @RequestMapping("/boards/{boardType}/posts") | |
| public class PostController { | |
| … |
🤖 Prompt for AI Agents
In src/main/java/naughty/tuzamate/domain/post/controller/PostController.java
around the class declaration, the controller is missing Spring’s @Validated so
method-level javax validation (e.g. @Max on @RequestParam in getPostList) won’t
be enforced; add the @Validated annotation to the controller class and import
org.springframework.validation.annotation.Validated; additionally, if you want
service-layer method validation enabled, add @EnableMethodValidation to a
@Configuration class (and import
org.springframework.validation.annotation.EnableMethodValidation) to activate
method validation across beans.
📍 PR 타입 (하나 이상 선택)
🏷️ 관련 이슈
Close #82
📌 개요
🔁 변경 사항
📸 스크린샷
✅ 체크리스트
💡 추가 사항 (리뷰어가 참고해야 할 것)
Summary by CodeRabbit