Bird
Raised Fist0
Spring Bootframework~5 mins

@Size for length constraints in Spring Boot - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of the @Size annotation in Spring Boot?
The @Size annotation is used to set minimum and maximum length constraints on a string, collection, map, or array to ensure the data meets length requirements before processing.
Click to reveal answer
beginner
How do you specify the minimum and maximum length using @Size?
You use the attributes min and max inside @Size, for example: @Size(min = 3, max = 10) means the value must be at least 3 and at most 10 characters long.
Click to reveal answer
intermediate
Can @Size be used on collections like List or arrays?
Yes, @Size works on collections, arrays, and maps to restrict the number of elements they contain, not just strings.
Click to reveal answer
intermediate
What happens if a value violates the @Size constraints in Spring Boot?
Spring Boot's validation framework will detect the violation and typically return an error response indicating the size constraint was not met, preventing further processing.
Click to reveal answer
beginner
Write a simple example of @Size used on a username field in a Spring Boot model.
Example:
@Size(min = 5, max = 15, message = "Username must be between 5 and 15 characters")
private String username;
Click to reveal answer
What does @Size(min = 2, max = 8) enforce on a string?
AThe string length must be between 2 and 8 characters inclusive
BThe string length must be exactly 2 or 8 characters
CThe string length must be less than 2 or greater than 8
DThe string length must be at least 8 characters
Can @Size be applied to a List in Spring Boot?
AYes, it limits the number of elements in the List
BNo, it only works on strings
CYes, but only for arrays, not Lists
DNo, it only works on numeric values
What attribute of @Size sets the maximum allowed length?
Alimit
Bmaximum
Cmax
Dlength
If a field annotated with @Size(min=3) has a value of length 2, what happens?
AThe value is automatically padded to length 3
BValidation fails and an error is returned
CValidation passes silently
DThe application crashes
Which package provides the @Size annotation in Spring Boot?
Aorg.springframework.validation
Bjava.util.validation
Corg.springframework.boot.validation
Djavax.validation.constraints
Explain how @Size helps in validating user input in Spring Boot applications.
Think about how length limits protect data quality.
You got /4 concepts.
    Describe a scenario where using @Size on a List would be useful.
    Consider forms where users select multiple options.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the @Size annotation do in Spring Boot validation?
      easy
      A. It ensures a field is not null.
      B. It validates if a number is within a range.
      C. It checks if a string or collection length is within specified min and max limits.
      D. It checks if a string matches a regular expression.

      Solution

      1. Step 1: Understand the purpose of @Size

        @Size is used to validate the length of strings or collections, not numeric ranges or null checks.
      2. Step 2: Identify what @Size checks

        It uses min and max to set length limits on text or collections.
      3. Final Answer:

        It checks if a string or collection length is within specified min and max limits. -> Option C
      4. Quick Check:

        @Size validates length = C [OK]
      Hint: Remember @Size controls length, not value or null checks [OK]
      Common Mistakes:
      • Confusing @Size with @Min/@Max for numbers
      • Thinking @Size checks null values
      • Assuming @Size validates patterns
      2. Which of the following is the correct way to use @Size to require a string between 5 and 10 characters?
      easy
      A. @Size(min=5, max=10)
      B. @Size(length=5-10)
      C. @Size(minLength=5, maxLength=10)
      D. @Size(range={5,10})

      Solution

      1. Step 1: Recall correct @Size syntax

        The correct attributes are min and max for length limits.
      2. Step 2: Check each option

        Only @Size(min=5, max=10) uses valid attribute names and syntax.
      3. Final Answer:

        @Size(min=5, max=10) -> Option A
      4. Quick Check:

        Use min and max attributes = A [OK]
      Hint: Use min and max, not length or range attributes [OK]
      Common Mistakes:
      • Using invalid attribute names like length or range
      • Trying to pass a range as a string
      • Confusing @Size with other annotations
      3. Given this code snippet:
      @Size(min=3, max=6)
      private String code;

      Which input value will pass validation?
      medium
      A. "ab"
      B. "abcde"
      C. "abcdefg"
      D. ""

      Solution

      1. Step 1: Understand the length limits

        The string must have length between 3 and 6 characters inclusive.
      2. Step 2: Check each input length

        "ab" length is 2 (too short), "abcdefg" length is 7 (too long), "abcde" length is 5 (valid), "" length is 0 (too short).
      3. Final Answer:

        "abcde" -> Option B
      4. Quick Check:

        Length between 3 and 6 = "abcde" [OK]
      Hint: Count characters; must be between min and max [OK]
      Common Mistakes:
      • Ignoring inclusive limits
      • Counting characters incorrectly
      • Assuming empty string passes
      4. Identify the error in this code snippet:
      @Size(min=2, max=5)
      private int number;
      medium
      A. @Size cannot be applied to primitive types like int.
      B. min and max values are reversed.
      C. Missing @NotNull annotation.
      D. max value should be greater than 10.

      Solution

      1. Step 1: Check @Size target types

        @Size works on strings, collections, arrays, but not on primitive types like int.
      2. Step 2: Analyze the code

        The field is an int, so @Size is invalid here and will cause an error.
      3. Final Answer:

        @Size cannot be applied to primitive types like int. -> Option A
      4. Quick Check:

        @Size only for strings/collections = D [OK]
      Hint: Use @Size only on strings or collections, not primitives [OK]
      Common Mistakes:
      • Applying @Size to numbers
      • Confusing @Size with @Min/@Max for numbers
      • Ignoring type compatibility
      5. You want to validate a list of usernames where each username must be between 4 and 12 characters. Which is the correct way to apply @Size in your Spring Boot model?
      hard
      A. @Size(min=4, max=12) private List<@Size(min=4, max=12)> usernames;
      B. @Size(min=4, max=12) private String[] usernames;
      C. @Size(min=4, max=12) private List<String> usernames;
      D. private List<@Size(min=4, max=12) String> usernames;

      Solution

      1. Step 1: Understand @Size on collections vs elements

        @Size on a collection checks the collection size, not each element's length.
      2. Step 2: Apply @Size to elements inside the collection

        To validate each username's length, use @Size on the generic type parameter or element level.
      3. Step 3: Analyze options

        private List<@Size(min=4, max=12) String> usernames; correctly applies @Size to each String element in the List.
      4. Final Answer:

        private List<@Size(min=4, max=12) String> usernames; -> Option D
      5. Quick Check:

        Use @Size on elements for per-item length = D [OK]
      Hint: Put @Size on list elements, not just the list itself [OK]
      Common Mistakes:
      • Applying @Size only on the list, not elements
      • Using invalid syntax for generic annotations
      • Confusing collection size with element length