์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์ธ๋ฑ์คํ์ค์บ
- hikari cp ์ค์
- ์๋ฐ์ฐ๋ ๋
- ์๋ฐ๋ผ์ด๋ธ์คํฐ๋
- Item6
- ์์ดํ 15
- ์ํฐ๋ ๋ณ์ข ๊ฐ๋ฐ์
- InnoDB์ํคํ ์ฒ
- ๋ฐ์ฉ๋ ์ค๊ตญ์ด
- ์ํฐ๋ ๊ฐ๋ฐ์ํ์ฌ
- mysql์ํคํ ์ฒ
- ์๋ผ์คํฑ์์น๋ฉ์ธ์ง์ฉ๋
- index full scan
- ์๋ฐ
- index skip scan
- builder null
- ์๋ฐ์์
- mysql
- ๋น์ผ๊ฐ์ฒด์์ฑ
- assert.notnull
- ์๋ฐ์์์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ์ดํํฐ๋ธ์๋ฐ
- ์ธ๋ฑ์ค์คํต์ค์บ
- effectiveJava
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฒฉ๋ฆฌ์์ค
- item15
- Hikari Connection Pool
- ์์
- SVN
- enum ์์ฑ์ ์ ๊ทผ ์ ํ์
- Today
- Total
โ๐ป๊ธฐ๋กํ๋ ๋ธ๋ก๊ทธ
@Builder๋ฅผ ํตํด ์์ ํ๊ฒ ๊ฐ์ฒด ์์ฑํ๊ธฐ ๋ณธ๋ฌธ
@Builder๋ฅผ ํตํด ์์ ํ๊ฒ ๊ฐ์ฒด ์์ฑํ๊ธฐ
์ฉ์ํด 2023. 7. 21. 15:37๋ฌธ์ ์ํฉ
member ๊ฐ์ฒด ์์ฑ ์ ํธํ ๋ฐฉ์์ผ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด lombok์ @Builder์ ์ฌ์ฉํ์๋ค.
member ํด๋์ค์ ํ์ํ ํ๋๋ฅผ ๋์์ผ๋ก ์์ฑ์ ์์ฑ ํ @Builder์ ๋ถ์ฌ builder ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฒ ํ์๋ค.
@Builder
public Member(String id, String password, String userName, String email) {
this.id = id;
this.password = password;
this.userName = userName;
this.email = email;
}
ํ์ง๋ง ํ๋์ null์ด ๋ค์ด์์ ๊ฒฝ์ฐ๊ฐ ๊ณ ๋ ค๋์ง ์์๋ค.
@Builder์ ์ํด ์ปดํ์ผ ์ ์์ฑ๋ ์ด๋ ธํ ์ด์ ํ๋ก์ธ์ฑ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด ๋ณด์
public static class MemberBuilder {
private String id;
private String password;
private String userName;
private String email;
MemberBuilder() {
}
public MemberBuilder id(final String id) {
this.id = id;
return this;
}
public MemberBuilder password(final String password) {
this.password = password;
return this;
}
public MemberBuilder userName(final String userName) {
this.userName = userName;
return this;
}
public MemberBuilder email(final String email) {
this.email = email;
return this;
}
public Member build() {
return new Member(this.id, this.password, this.userName, this.email);
}
public String toString() {
return "Member.MemberBuilder(id=" + this.id + ", password=" + this.password + ", userName=" + this.userName + ", email=" + this.email + ")";
}
}
@Builder์ผ๋ก๋ ์์ฑ์ ๋งค๊ฐ๋ณ์์ ๋ํด final๋ก ์ ์ธ๋์ด ์ฌํ ๋น์๋ ์์ ํ์ง๋ง, null์ ๋ํ ์ฒดํฌ๋ ์๊ธฐ์ ๊ฐ๋ฐ์๊ฐ ์ถ๊ฐ์ ์ธ null ์ฒดํฌ ๋ก์ง์ ์ถ๊ฐํด์ผ ํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํ์๋ก ๊ฐ์ด ์ธํ ๋์ด์ผ ํ๋ ํ๋๋ builder ์์ฑ์ ๋งค๊ฐ๋ณ์ ์์ @NotNull์ ๋ถ์ธ๋ค.
@Builder
public Member(@NotNull String id, @NotNull String password, String userName, String email) {
this.id = id;
this.password = password;
this.userName = userName;
this.email = email;
}
2. Assert ๊ตฌ๋ฌธ์ผ๋ก null์ ๋ํ ๊ฒ์ฌ๋ฅผ ํ๋ค.
@Builder
public Member(String id, String password, String userName, String email) {
Assert.notNull(password,"id๋ ํ์๊ฐ ์
๋๋ค.");
Assert.notNull(password,"password๋ ํ์๊ฐ ์
๋๋ค.");
this.id = id;
this.password = password;
this.userName = userName;
this.email = email;
}
Assert
Spring์์ ์ ๊ณตํ๋ ๋งค๊ฐ๋ณ์ ์ ํจ์ฑ ๊ฒ์ฌ ์ ํธ ํด๋์ค๋ก, runtime์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋ฌ๋ฅผ ์ผ์ฐ ์ธ์ํ ์ ์๊ฒ ๋์์ค๋ค. Assert ๊ตฌ๋ฌธ์ ๋ง์ง ์์ ๊ฒฝ์ฐ exception์ ๋ฐ์์ํจ๋ค.
notNull(object)๋ ์คํ๋ง 6.1 ๋ฒ์ ์์ ์ ๊ฑฐ ์์ ์ด๋ฏ๋ก notNull(object, message) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํ๋ค.
์ฝ๋์ ๊ธธ์ด๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ํด ์ฃผ๊ณ ํ๋๊ฐ ๋ง์๋ ์์ ํ๊ฒ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ @Builder ์ง๋ง ํธํ๊ฒ ์ฐ๋ ๋งํผ ์์ ์ฑ์๋ ์ ์ํ๋ฉฐ ์ฌ์ฉํด์ผ๊ฒ ๋ค.
[์ฐธ๊ณ ]
https://projectlombok.org/features/Builder
'ํ๋ก์ ํธ > Heeverse' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Hikari ์ต์ ์ Connection Pool Size๋ฅผ ์ฐพ์์! (0) | 2023.11.13 |
---|---|
[์ฑ๋ฅํ๋] ๋ฐ๋ณต์ ์ธ vault ์๋ฒ ํธ์ถ ์ ๊ฑฐํ๊ธฐ (0) | 2023.10.26 |
Heeverse ์ฑ๋ฅํ ์คํธ ์ค๋นํ๊ธฐ (0) | 2023.10.20 |