EJB(Enterprise JavaBeans) ๋ฑ์์ ์ฌ์ฉ๋๋ Java Bean์ด ์๋ ์๋์๊ฐ์ด
Getter
,Setter
๋ก ๊ตฌ์ฑ๋๊ฐ์ฅ ์์ํ ํํ์ ๊ธฐ๋ณธ ํด๋์ค
์ด๋ค.
์๋ฐ๋ฅผ ์ด์ฉํด ๋น์ฆ๋์ค ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋ ๋น์ฆ๋์ค ๋ก์ง ๋ฟ๋ง ์๋๋ผ ํธ๋์ญ์ , ๋ณด์ ๋ฑ ๋ก์ฐ๋ ๋ฒจ(Transaction, Multi Thread)์ ๋ก์ง๊น์ง ์์ฑํด์ผํ๋ ๋ถ๋ด๊ฐ์ ์์ ๊ณ ์EJB(Enterprise Java Beans)
๋ฅผ ๋ง๋ค๊ฒ ๋์๋ค.
EJB๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ก์ฐ๋ ๋ฒจ์ ๋ก์ง ๊ฐ๋ฐ์ ๋ํ ์๊ณ ๋ฅผ ๋ ์ ์์์ง๋ง, ํ ๋๊ฐ์ง ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฑฐ๋ํ EJB๋ฅผ ์์(Extends)๋ฐ๊ฑฐ๋ ํ์ฅ(Implements)ํ์์ ๊ฐ๋ฒผ์ด ์๋น์ค์กฐ์ฐจ๋ ๋ฌด๊ฒ๊ฒ ๋ง๋ค๊ฑฐ๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก ๋์ฒดํ๊ธฐ ์ํด์ ์ ์ฒด ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋ ๋ฌธ์ ์ ์ด ๋ฐ์ํ์๋ค.
์ด์ JAVA์ ๊ธฐ๋ณธ ๊ฐ๋ ์ธ ๊ฐ์ฒด์งํฅ์ ์ง์คํ๊ณ , ํน์ ํด๋์ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ข ์๋์ง ์์ POJO ๊ตฌ์ฑ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ฉด ์ด๋ฐ ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.๋ฐ๋ผ์ Spring์ POJO ๋ฐฉ์์ ๊ธฐ๋ฐ์ผ๋ก ํ ์น ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๊ณ , IoC์ DI, AOP ๋ฑ Spring์ ์ฃผ์ ๊ธฐ์ ์ ํ์ฉํด POJO ๊ธฐ๋ฐ์ ๊ตฌ์ฑ์ ์ด๋ฃจ๊ฒ ๋์๋ค.
๐ POJO ์ฝ๋ ์์
public class User {
private int id;
private String name;
private String email;
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setEmail(String email) {
this.email = email;
}
}
๊ฒฐ๊ตญ, POJO๋ ์๋ ์กฐ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด ์งํฅ์ ์ธ ์๋ฆฌ์ ์ถฉ์คํ๋ฉด์, ํน์ ํ๊ฒฝ๊ณผ ๊ท์ฝ์ ์ข ์๋์ง ์์ ํ์์ ๋ฐ๋ผ
์ฌ์ฌ์ฉ
๋ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ค๊ณ๋ ์ค๋ธ์ ํธ์ด๋ค.
๐ ํน์ ๊ท์ฝ์ ์ข
์๋์ง ์์์ผ ํ๋ค.
ํน์ ๊ท์ฝ์ ์ข ์๋์ด ์์ผ๋ฉด ๋จ์ผ ์์ ์ ํ ๋๋ฌธ์ ๊ฐ์ฒด ์งํฅ์ ์ธ ์ค๊ณ ๊ธฐ๋ฒ์ ์ ์ฉํ๊ธฐ ์ด๋ ต๊ณ , ๋ค๋ฅธ ํ๊ฒฝ์ผ๋ก์ ์ด์ ์ด ์ด๋ ค์์ง๋ค.
๐ ํน์ ํ๊ฒฝ์ ์ข
์๋์ง ์์์ผ ํ๋ค.
ํน์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ ์ธ๋ถ ์ข ์์ ์ธ http request, session ๋ฑ์ด ์์ ๊ฒฝ์ฐ POJO๋ฅผ ์๋ฐฐํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด, ๋ค๋ฅธ ํ๊ฒฝ์์ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์์ง๊ณ , ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๊ธฐ์ ์ ์ธ ๋ด์ฉ์ ๋ด์ ์น ์ ๋ณด ์ฝ๋๊ฐ ์์ฌ ์ดํดํ๊ธฐ ์ด๋ ค์์ง๋ค.
๋ํ์ ์ผ๋ก ์๋ 3๊ฐ์ง๋ POJO๊ฐ ์๋ ๊ฒฝ์ฐ์ด๋ค.
๐ ๋จ์ผ ์ฑ
์ ์์น์ ์งํค๋ ํด๋์ค์ฌ์ผ ํ๋ค.
์ฑ
์๊ณผ ์ญํ ์ด ๊ฐ๊ธฐ ๋ค๋ฅธ ์ฝ๋๋ ์๋ก ๋ค๋ฅธ ํด๋์ค๋ก ๋๋ ์ผ ํ๋ค.
๐ ํน์ ๊ท์ฝ์ ์ข
์๋์ง ์์ ๊ฐ์ฒด์งํฅ ์ค๊ณ๋ฅผ ํ ์ ์๋ค.
๐ ํน์ ํ๊ฒฝ์ ์ข
์๋์ง ์์ ํ
์คํธํ๊ธฐ ์ข๋ค.
๐ ํน์ ๊ท์ฝ์ ์ข
์๋์ง ์์ ๋ก์ฐ๋ ๋ฒจ ์ฝ๋์ ๋น์ฆ๋์ค ์ฝ๋๊ฐ ๋ถ๋ฆฌ๋์ด ๊น๋ํ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
xml์ ๋ช
์
ํ๋ ๋ฐฉ๋ฒ๊ณผ @Component
๋ก ๋ฑ๋ก์ํค๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. @Component ์ธ @Controller , @Service , @Repository , @Aspect , @Configuration ์ด๋
ธํ
์ด์
๋ ์ปดํฌ๋ํธ ์ค์บ ๋์์ด ๋๋ค.