ํน์ง ?
- Spring Web MVC Framework๋ JAVA1.5๋ถํฐ Annotation์ ์ง์ํฉ๋๋ค.
- xml์ค์ ์ด ๋๋ฌด ๊ธธ์ด์ง์ ๋ฐ๋ผ ๊ทธ ๋์์ผ๋ก ๋ํ๋ฌ๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก๋ ํ์ฑํ๋์ง ์๊ธฐ ๋๋ฌธ์ xml์์ ํ์ฑํ ์์ ์ด ํ์ํ๋ค.
์ฅ์ ?
- ์ค์ ์ด ๊ฐํธํด ์ง, view ํ์ด์ง์ ๊ฐ์ฒด ๋๋ ๋ฉ์๋์ ๋งตํ์ด ๋ช ํํด ์ง.
Annotation์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ค์ ์ด ํ์ํฉ๋๋ค.
3๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
1) CommonAnnotationBeanPostProcessor์ ํด๋์ค ์ค์ ํ์ผ์ ๋น๊ฐ์ฒด๋ก ๋ฑ๋กํ์ฌ ์ด๋ ธํ ์ด์ ์ผ๋ก ์ฌ์ฉ
2) <context:annotation-config/> ํ๊ทธ ์ฌ์ฉ : ์ด๋ฏธ ๋ฑ๋ก๋ ๋น๋ค์ ์ด๋ ธํ ์ด์ ์ ํ์ฑํ
3) <context:component-scan package="***"/> :
ํน์ ํจํค์ง ์์ ํด๋์ค๋ค์ ์ค์บํ๊ณ , Annotation์ ํ์ธ ํ bean ์ธ์คํด์ค๋ฅผ ์์ฑ
- ์คํ ๋ ์คํ์ ์ ์ด๋ ธํ ์ด์ ์ ์๋์ผ๋ก ๋ฑ๋ก ํ๋ค ( Spring Framework๊ฐ ๊ด๋ฆฌํด ์ค๋ค.)
๊ธฐ๋ณธ Annotation์ ์ข ๋ฅ
- org.springframework.stereotype
@Compoenet : @Controller,@Service,@Repository ์ ์ต์์ annotation์ด๋ค.
@Controller : Spring MVC์์ Controller๋ฅผ ์ธ์ ์์ผ์ค๋ค.
@Service : Business ํด๋์ค์์ ์ฌ์ฉ, ๋ก์ง์ ์ฌ์ฉํ๋ค.
@Repository : ์ผ๋ฐ์ Data Access Object์์ ์ฌ์ฉ, DB Exception์ DataAccessExceiption
1. @Component
ํจํค์ง : org.springframework.stereotype
๋ฒ ์ : spring 2.5
์ง์ ์์ฑํ Class๋ฅผ Bean์ผ๋ก ๋ฑ๋กํ๊ธฐ ์ํ ์ด๋ ธํ ์ด์ .
2. @Autowired
ํจํค์ง : org.springframework.beans.factory.annotation
๋ฒ ์ : spring2.5
Spring์ "์์กด๊ด๊ณ"๋ฅผ ์๋์ผ๋ก ์ค์ ํ ๋ ์ฌ์ฉํ๋ค.
- ํด๋น ํ์ ์ bena์ด ์กด์ฌ ํ์ง ์๊ฑฐ๋, 2๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ์์ธ ๋ฐ์ ( ํด๊ฒฐ๋ฐฉ๋ฒ : @Qualifer์ฌ์ฉ )
DI ์ฃผ์ ํํ 3๊ฐ์ง
1. Construcotr : ํ์ํ ์์กด์ฑ์ ๋ชจ๋ ํฌํจํ๋ ํด๋์ค์ ์์ฑ์๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ฑ์๋ฅผ ํตํด ์์กด์ฑ์ ์ฃผ์
(์คํ๋ง 4.3๋ฒ์ ์ดํ ๊ถ์ฅ)
2. Field :Bean์ผ๋ก ๋ฑ๋ก๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ ํด๋์ค์ Field๋ก ์ ์ธํ ๋ค @Autowiredํค์๋๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ์๋์ผ๋ก ์ฃผ์ ๋๋ค.
3. Setter : ์์กด์ฑ์ ์ ๋ ซ๋ฐ๋ setter ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ ํตํด ์์กด์ฑ์ ์ฃผ์ ํ๋ค.
3. @Qualifer("name1")
@Autowired ํ์ ๋ ๋์ผ ํ์ ์ ๊ฐ์ง bean๊ฐ์ฒด๊ฐ ๋๊ฐ ์์ ๋ ์ฌ์ฉํฉ๋๋ค.
์)
private A obj
<bean id="obj1" class="a.b.c.A"><qualifier value="name1"></bean>
<bean id="obj2" class="a.b.c.A"></bean>
4. @Required
ํจํค์ง : org.springframework.beans.factory.annotation
๋ฒ ์ : spring 2.5
ํ์๊ฐ์ ์ ๋ ฅํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
bean์ ๋ง๋ค์ด ๋ผ๋ ํ์๋ก ์ ๋ ฅํด์ผ ๋๋ ๋ฉ์๋ ์์์ @Required๋ผ๊ณ ์ ์ธํ๊ฒ ๋๋ฉด
bean์ ์ฌ์ฉํ ๋ ๋ฐ๋์ ์ ๋ ฅํด์ผ ํ๋ค.
5. @Repository
ํจํค์ง : org.springframework.stereotype
๋ฒ ์ : spring2.5
DAO์ ์ฌ์ฉ๋๊ณ , DB Exception์ DataAccessException์ฒ๋ฆฌํ๋ค.
6. @Service
Businessํด๋์ค์์(๋ก์ง) ์ฌ์ฉํ๋ค
Controller -> Service -> Repository -> DataBase
๋ถ๊ธฐ DAO์กฐํฉ ๊ธฐ๋ฅ DataBase
7. @Resource
JAVA1.6 / JEE5 ๋ฒ์ ์ ์ถ๊ฐ ๋์๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์์ ํ์๋ก ํ๋ ์์์ ์๋์ผ๋ก ์ฐ๊ฒฐ ํ ๋ ์ฌ์ฉ,
name์์ฑ ์ฌ์ฉํด์ bean ๊ฐ์ฒด ์ด๋ฆ์ ์ฐ๊ฒฐํ๋ค.
@Resource(name="TestDtoDao")
'๐ WEB > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring boot์์ JSP ์ฌ์ฉํ๊ธฐ (0) | 2021.01.25 |
---|---|
Mapper Interface? (0) | 2020.07.23 |
Spring ์ด์ ๋ฆฌ 2.Spring 3๋ ์๋์๋ฆฌ (0) | 2020.06.06 |
Spring ์ด์ ๋ฆฌ 1.Spring์ ๊ธฐ๋ฐ์ด ๋๋ Servlet (0) | 2020.06.06 |
์ด๋ฏธ์ง ์ ๋ก๋ (Spring+Ajax) (1) | 2020.05.16 |