Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,45 @@ repositories {
mavenCentral()
}

ext {
// https://spring.io/projects/spring-cloud
springCloudVersion = 'Finchley.RELEASE'

}

//dependencyManagement {
// imports {
// mavenBom "org.springframework.cloud"
// }
//}

dependencies {
// Spring Batch
implementation 'org.springframework.boot:spring-boot-starter-batch'
// Spring Data JPA
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// validation
implementation 'org.springframework.boot:spring-boot-starter-validation'
// h2 DB
implementation 'com.h2database:h2'
// 스프링 웹
// web
implementation 'org.springframework.boot:spring-boot-starter-web'

// 롬복
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'

// mariadb
implementation 'org.mariadb.jdbc:mariadb-java-client:2.7.4'

// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign
// implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:4.1.2'


// swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.4'

testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Expand Down
12 changes: 12 additions & 0 deletions src/main/java/com/example/play_ground/spring/validation/Bar.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.example.play_ground.spring.validation;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;

public record Bar(
@NotNull
String bar,
@Valid
FooBar fooBar
) {
}
15 changes: 15 additions & 0 deletions src/main/java/com/example/play_ground/spring/validation/Foo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.play_ground.spring.validation;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import org.springframework.validation.annotation.Validated;

@Validated
public record Foo(
@NotNull
String foo,
@NotNull
@Valid
Bar bar
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.example.play_ground.spring.validation;

import jakarta.validation.constraints.NotNull;

public record FooBar(
@NotNull
String fooBar
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.example.play_ground.spring.validation;

import jakarta.validation.Valid;
import lombok.extern.log4j.Log4j2;
import org.springframework.validation.annotation.Validated;

@Log4j2
@Validated
public class FooBarClient {
void foo(@Valid Foo foo){
log.info(foo);
}
}
33 changes: 3 additions & 30 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
spring:
profiles:
active: mariadb

---

spring:
profiles:
active: local
Expand All @@ -16,27 +10,6 @@ spring:
batch:
job:
enabled: true

---

spring:
profiles:
active: mariadb
datasource:
hikari:
jdbc-url: jdbc:mariadb://localhost:3306/commerce
username: root
password: 221031
driver-class-name: org.mariadb.jdbc.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
show_sql: true
format_sql: true
batch:
job:
enabled: true
jdbc:
initialize-schema: always
h2:
console :
enabled: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.example.play_ground.spring.validation;

import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.util.Set;

import static org.assertj.core.api.Assertions.assertThat;
class FooBarClientTest {
Validator validator;
@BeforeEach
void setUp() {
validator = Validation.buildDefaultValidatorFactory().getValidator();
}

@Test
void validated() {
Bar bar = new Bar("bar", new FooBar(null));
Foo foo = new Foo("foo", bar);

Set<ConstraintViolation<Foo>> validate = validator.validate(foo);
assertThat(validate).isNotEmpty();
}
}