Spring DI
: ์คํ๋ง ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์กด์ฑ ์ฃผ์
์ ํ๋ ๋ฐฉ๋ฒ
๋น ๋ฑ๋ก ๋ฐฉ๋ฒ
1.
XML ์ค์
a.
root-context.xml
b.
<bean id=โโ class=โโ /> ๋น ํ๊ทธ๋ก ๋ฑ๋ก
2.
์ด๋
ธํ
์ด์
์ผ๋ก ๋ฑ๋ก
a.
@Component, @Service, @Repository, @Controller
3.
์๋ฐ ๋น ์ค์ ํ์ผ๋ก ๋ฑ๋ก
a.
@Configuration ์ค์ ํด๋์ค ์ ์
b.
@Bean
๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์ ์
๋น ๋ฑ๋ก - XML ์ค์
โข
root-context.xml
<!-- BoardDAO ๋น์ ์ ์ -->
<bean id="boardDAO" class="com.aloha.spring.dao.BoardDAO">
</bean>
XML
๋ณต์ฌ
๋น ๋ฑ๋ก - @์ด๋ ธํ ์ด์
์ด๋
ธํ
์ด์
| ์ญํ |
@Component | ์ผ๋ฐ์ ์ธ ์คํ๋ง ๋น์ผ๋ก ์ฌ์ฉ๋จ. |
@Controller | Spring MVC ์ปจํธ๋กค๋ฌ๋ก ์ฌ์ฉ๋๋ ํด๋์ค๋ฅผ ๋ํ๋. |
@Service | ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ์๋น์ค ํด๋์ค๋ฅผ ๋ํ๋. |
@Repository | ๋ฐ์ดํฐ ์ก์ธ์ค ๊ฐ์ฒด (DAO)๋ฅผ ๋ํ๋. |
โข
servlet-context.xml
<context:component-scan base-package="com.aloha.spring" />
Java
๋ณต์ฌ
์ด๋
ธํ
์ด์
์ผ๋ก ๋น์ ๋ฑ๋กํ๋ ค๋ฉด, servlet-context.xml ์ ์ปดํฌ๋ํธ ์ค์บ ํ๊ทธ๋ฅผ ๋ฑ๋กํด์ผํ๋ค.
์คํ๋ง ๋น์ ๊ฒ์ํ base-package ์์ฑ์ ์ง์ ํ๋ ํจํค์ง ํ์์ ๊ฒฝ๋ก์ ์๋ ์คํ๋ง ๋น ํด๋์ค๋ฅผ ์๋์ผ๋ก ๊ฒ์ํ๊ณ ๋น์ผ๋ก ๋ฑ๋กํ๋ค.
โข
ํด๋์ค
@Component
public class MyComponent {
}
Java
๋ณต์ฌ
์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ ํด๋์ค๋ `@Component` ์ด๋
ธํ
์ด์
์ ๋ถ์ฌ์ฃผ๋ฉด ์ปดํฌ๋ํธ ์ค์บ ์, ์ธ์๋์ด Ioc ์ปจํ
์ด๋์ ๋ฑ๋ก๋๋ค.
โข
BoardService.java
@Service
public class BoardService {
}
Java
๋ณต์ฌ
`@Service` ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ๋ฉด ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ์คํ๋ง ๋น ํด๋์ค๋ก ์ง์ ํ์ฌ Ioc ์ปจํ
์ดํฐ์ ๋น์ผ๋ก ๋ฑ๋ก๋๋ค.
โข
BoardDAO.java
@Repository
public class BoardDAO {
}
Java
๋ณต์ฌ
`@Repository` ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต์ ํด๋์ค์ ์ง์ ํ์ฌ Ioc ์ปจํ
์ดํฐ์ ๋น์ผ๋ก ๋ฑ๋ก๋๋ค.
โข
BoardControler.java
@Controller
public class BoardController {
}
Java
๋ณต์ฌ
`@Controller` ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ปจํธ๋กค๋ฌ ํด๋์ค๋ก ์ง์ ํ์ฌ Ioc ์ปจํ
์ดํฐ์ ๋น์ผ๋ก ๋ฑ๋ก๋๋ค.
๋น ๋ฑ๋ก - ์๋ฐ ์ค์ ํ์ผ๋ก ๋ฑ๋ก(์ปดํฌ๋ํธ ์ค์บ)
โข
Config.java
@Configuration // ์คํ๋ง ์ค์ ๋น์ผ๋ก ๋ฑ๋ก
public class Config {
// 1. ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์ ์
// 2. ๋ฉ์๋์ @Bean ์ด๋
ธํ
์ด์
์ ์
@Bean // IoC ์ปจํ
์ด๋์ ๋น์ผ๋ก ๋ฑ๋ก
public Board board() {
return new Board("์ ๋ชฉ", "์์ฑ์", "๋ด์ฉ");
}
}
Java
๋ณต์ฌ
โข
`@Configuration` : ํด๋์ค๋ฅผ ์คํ๋ง์ Java ๊ธฐ๋ฐ ์ค์ ํด๋์ค๋ก ์ง์
โข
`@Bean` : @Configuration ์ด๋
ธํ
์ด์
์ ๊ฐ์ง ํด๋์ค ๋ด์์ ๋ฉ์๋์ ๋ถ์ฌํ์ฌ ํด๋น ๋ฉ์๋๊ฐ ์คํ๋ง ๋น(Bean)์ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋๋ก ์ง์
โข
pom.xml
: @Configuration ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ๊ธฐ ์ํด์๋. CGLIB ์์กด์ฑ์ด ํ์
<!-- CGLIB -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>3.1</version>
</dependency>
XML
๋ณต์ฌ
CGLIB
์๋ฐ ํ๋ก์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์์ ํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
AOP(Aspect-Oriented Programming)์ DI(Dependency Injection)๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ
์์กด์ฑ ์๋ ์ฃผ์
์์กด์ฑ ์๋ ์ฃผ์ ๋ฐฉ๋ฒ
โข
๊ธฐ๋ณธ ์์กด์ฑ ์๋ ์ฃผ์
โข
ํ์
๊ธฐ๋ฐ ์ฃผ์
โข
์์ฑ์ ์ฃผ์
โข
๋ฉ์๋ ์ฃผ์
์์กด์ฑ ์๋ ์ฃผ์ ์ด๋ ธํ ์ด์
โข
@Autowired
โข
@Resource
โข
@Inject
์์กด์ฑ ์๋ ์ฃผ์ ๋ฐฉ๋ฒ
๊ธฐ๋ณธ ์์กด์ฑ ์๋ ์ฃผ์
โข
`@Autowired` : ์์กด์ฑ ์๋ ์ฃผ์
์ด๋
ธํ
์ด์
์คํ๋ง ์ปจํ
์ด๋๊ฐ ๋น์ ์์กด์ฑ์ ์๋์ผ๋ก ํด๊ฒฐํ๋๋ก ์ง์
@Autowired
private MyBean myBean;
Java
๋ณต์ฌ
ํ์ ๊ธฐ๋ฐ ์ฃผ์
โข
๋น ์ด๋ฆ์ ์ง์ ํด์ ์์กด์ฑ ์ฃผ์
ํ๊ธฐ
โฆ
@Autowired
โฆ
@Qualifier("๋น์ด๋ฆ")
@Autowired
@Qualifier("myBean")
private MyBean myBean;
Java
๋ณต์ฌ
์์ฑ์ ์ฃผ์
@Service
public class BoardService {
private BoardDAO boardDAO;
@Autowired
public BoardService(BoardDAO boardDAO) {
this.boardDAO = boardDAO;
}
}
Java
๋ณต์ฌ
๋ฉ์๋ ์ฃผ์
@Service
public class BoardService {
private BoardDAO boardDAO;
@Autowired
public void setBoardDAO(BoardDAO boardDAO) {
this.boardDAO = boardDAO;
}
}
Java
๋ณต์ฌ
์์กด์ฑ ์๋ ์ฃผ์ ์ด๋ ธํ ์ด์
โข
@Autowired
โข
@Resource
โข
@Inject
@Autowired
@Autowired(required = [false/true])
Java
๋ณต์ฌ
@Autowired ์ฌ์ฉ
โข
ํ๋(๋ณ์)์ ์ฌ์ฉ
โข
์์ฑ์์ ์ฌ์ฉ
โข
๋ฉ์๋์ ์ฌ์ฉ
โข
ํ๋(๋ณ์)์ ์ฌ์ฉ
@Service // ์์กด์ฑ์ ์ฃผ์
๋ฐ๋ ํด๋์ค๋ ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
public class BoardServiceImpl implements BoardService {
// ํ๋์ ์ฌ์ฉ - ์์กด์ฑ ์๋ ์ฃผ์
@Autowired
private BoardDAO boardDAO; // ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
...
}
Java
๋ณต์ฌ
โข
์์ฑ์์ ์ฌ์ฉ
@Service // ์์กด์ฑ์ ์ฃผ์
๋ฐ๋ ํด๋์ค๋ ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
public class BoardServiceImpl implements BoardService {
private final BoardDAO boardDAO;
@Autowired // ์์ฑ์์ ์ฌ์ฉ - ์์กด์ฑ ์๋ ์ฃผ์
public BoardServiceImpl(BoardDAO boardDAO) {
this.boardDAO = boardDAO;
}
...
}
Java
๋ณต์ฌ
โข
์ํ ์์กด์ฑ ๋ฐฉ์ง
โข
ํ์ ์์กด์ฑ ๊ฐ์
โข
๋ฉ์๋์ ์ฌ์ฉ
@Service // ์์กด์ฑ์ ์ฃผ์
๋ฐ๋ ํด๋์ค๋ ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
public class BoardServiceImpl implements BoardService {
private final BoardDAO boardDAO;
@Autowired // ๋ฉ์๋์ ์ฌ์ฉ - ์์กด์ฑ ์๋ ์ฃผ์
public setBoardDAO(BoardDAO boardDAO) {
this.boardDAO = boardDAO;
}
...
}
Java
๋ณต์ฌ
์คํ๋ง ํ๋ ์์ํฌ์์ ์๋์ผ๋ก ํด๋น ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ, ํ์ํ ์์กด์ฑ์ ์ฃผ์
ํฉ๋๋ค.
@Autowired - required ์ต์
@Service // ์์กด์ฑ์ ์ฃผ์
๋ฐ๋ ํด๋์ค๋ ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
public class BoardServiceImpl implements BoardService {
// ํ๋์ ์ฌ์ฉ - ์์กด์ฑ ์๋ ์ฃผ์
@Autowired(required = false)
private BoardDAO boardDAO; // ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
...
}
Java
๋ณต์ฌ
โข
@Autowired(required = false)
โฆ
ํ์๊ฐ ์๋๋ค.
โฆ
ํด๋น ๊ฐ์ฒด๊ฐ ๋น์ผ๋ก ๋ฑ๋ก๋์ด ์์ง ์์ผ๋ฉด null ๋ก ์ง์
โฆ
๋ฑ๋ก๋์ง ์๋ ๋น์ ๊ฐ์ ธ์ฌ ๋, ์๋ฌ ๋ฐฉ์งํ ์ ์๋ค.
โข
@Autowired(required = true) [๊ธฐ๋ณธ๊ฐ]
โฆ
true ์ถ์
๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก, ์๋ตํด๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค.
required : ํ์ (ํ์๊ฐ ์ฌ๋ถ๋ฅผ ์ง์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ํค์๋)
@Qualifier ์ด๋ ธํ ์ด์
๊ฐ์ ํ์
(๋ถ๋ชจ ํด๋์ค, ์ธํฐํ์ด์ค)์ ์ฌ๋ฌ ๋น์ด ์๋ ๊ฒฝ์ฐ, ๋น ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์์กด์ฑ ์ฃผ์
์ ํด์ฃผ๋ ์ด๋
ธํ
์ด์
โข
PostService
public interface PostService {
...
}
Java
๋ณต์ฌ
โข
BoardServiceImpl
@Service("boardService") // ๋น ์ด๋ฆ์ "boardService" ๋ก ๋น ๋ฑ๋ก
public class BoardServiceImpl implements PostService {
}
Java
๋ณต์ฌ
โข
CommentServiceImpl
@Service("commentService") // ๋น ์ด๋ฆ์ "commentService" ๋ก ๋น ๋ฑ๋ก
public class CommentServiceImpl implements PostService {
}
Java
๋ณต์ฌ
โข
Main
@Component
public class Main {
@Autowired
@Qualifier("boardService") // "boardService" ๋ผ๋ ์ด๋ฆ์ ๋น ์ฃผ์
(boardServiceImpl)
private PostService boardService;
@Autowired
@Qualifier("commentService") // "commentService" ๋ผ๋ ์ด๋ฆ์ ๋น ์ฃผ์
(commentServiceImpl)
private PostService commentService;
}
Java
๋ณต์ฌ
boardServiceImpl, commentServiceImpl ๋ ๋น(๊ฐ์ฒด) ๋ชจ๋ PostService ํ์
์
๋๋ค. ์์กด์ฑ ์๋ ์ฃผ์
์ ํ๊ธฐ ์ํด์ ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ด๋ค ๋น์ ๊ฐ์ ธ์ฌ ์ง ๋ชจํธํด์ง๊ณ , ๋ํ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
@Autowired
private PostService boardService;
Java
๋ณต์ฌ
๋ฐ๋ผ์, @Qualifier ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํด์ ์์กด์ฑ ์ฃผ์
์ ๋น ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์ ํํ ๋น์ ์ฃผ์
ํ ์ ์์ต๋๋ค.
@Resource
์์กด์ฑ ์๋ ์ฃผ์
์ ํ๋ ์ด๋
ธํ
์ด์
์คํ๋ง ํ๋ ์์ํฌ์ ๊ธฐ๋ฐ์ด ์๋๋ผ javax ํจํค์ง์ ๊ธฐ๋ฐํ๋ ์ด๋
ธํ
์ด์
@Resource(name = "๋น ์ด๋ฆ")
Java
๋ณต์ฌ
โข
@Autowired
โฆ
ํจํค์ง : org.springframework.beans.factory.annotation
โฆ
Spring ์ ์ฉ์ ์ด๋
ธํ
์ด์
โฆ
ํ์
์ ๊ธฐ์ค์ผ๋ก ์์กด์ฑ ์๋ ์ฃผ์
โข
@Resource
โฆ
ํจํค์ง : javax.annotation
โฆ
Java ํ์ค ์ด๋
ธํ
์ด์
โฆ
์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์์กด์ฑ ์๋ ์ฃผ์
@Resouce ์ด๋ ธํ ์ด์ ์ฌ์ฉ
โข
ํ๋์ ์ฌ์ฉ
โข
๋ฉ์๋ ์ ์ฌ์ฉ
โข
ํ๋์ ์ฌ์ฉ
@Service // ์์กด์ฑ์ ์ฃผ์
๋ฐ๋ ํด๋์ค๋ ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
public class BoardServiceImpl implements BoardService {
// ํ๋์ ์ฌ์ฉ - ์์กด์ฑ ์๋ ์ฃผ์
@Resource(name = "boardDAOBean") // ๋น ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์์กด์ฑ ์ฃผ์
private BoardDAO boardDAO; // ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
...
}
Java
๋ณต์ฌ
@Repository("boardDAOBean") // @Repository("๋น ์ด๋ฆ")
public class BoardDAO {
...
}
Java
๋ณต์ฌ
โข
๋ฉ์๋ ์ ์ฌ์ฉ
@Service // ์์กด์ฑ์ ์ฃผ์
๋ฐ๋ ํด๋์ค๋ ๋น์ผ๋ก ๋ฑ๋ก๋์ด์์ด์ผํ๋ค.
public class BoardServiceImpl implements BoardService {
private final BoardDAO boardDAO;
@Resource("boardDAOBean") // ๋ฉ์๋์ ์ฌ์ฉ - ์์กด์ฑ ์๋ ์ฃผ์
public setBoardDAO(BoardDAO boardDAO) {
this.boardDAO = boardDAO;
}
...
}
Java
๋ณต์ฌ
@Inject
์๋ฐ ๊ธฐ๋ฐ์ ์์กด์ฑ ์ฃผ์
์ด๋
ธํ
์ด์
โข
ํ๋ ์ฃผ์
, ์์ฑ์ ์ฃผ์
, ๋ฉ์๋ ์ฃผ์
๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค.
โข
BeanFactory
โฆ
Spring IoC ์ปจํ
์ด๋์ ์ก์ธ์คํ๊ธฐ ์ํย ๋ฃจํธย ์ธํฐํ์ด์ค
โฆ
๋น(Bean) ๊ฐ์ฒด์ ์์ฑ, ๊ตฌ์ฑ, ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋ด๋น
โข
ApplicationContext
โฆ
BeanFactory๋ฅผ ํ์ฅํ ์ธํฐํ์ด์ค
โฆ
๋น์ ๋ฏธ๋ฆฌ ์ด๊ธฐํ, ๊ตญ์ ํ ์ง์, ์ด๋ฒคํธ ๋ฐํ, ๋ฆฌ์์ค ๋ก๋ฉ ๋ฑ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณต
โฆ
AOP ํตํฉ, ์ด๋ฒคํธ ๊ฒ์, ๋ชจ๋ ์ ํ์ Bean ๋ฒ์ ๋ฑ์ ์ง์
โข
XmlBeanFactory
โฆ
BeanFactory ๊ตฌํ ์ค ํ๋๋ก, XML ํ์ผ์์ ๋น ์ค์ ์ ๋ณด๋ฅผ ๋ก๋ํ๋ ๋ฐ ์ฌ์ฉ
โฆ
Spring 3.1๋ถํฐ deprecated
โข
AnnotationConfigApplicationContext
โฆ
์ด๋
ธํ
์ด์
๊ธฐ๋ฐ์ ์ค์ ์ ์ฌ์ฉํ์ฌ ์คํ๋ง ๋น์ ๊ด๋ฆฌํ๋ ์ปจํ
์ด๋
โฆ
@Configuration ์ด๋
ธํ
์ด์
๊ณผ @ComponentScan ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ์ฌ ์ค์ ์ ๋ณด๋ฅผ ์ง์
โข
ClassPathXmlApplicationContext
โฆ
ํด๋์คํจ์ค(classpath)์์ XML ํ์ผ์ ๋ก๋ํ์ฌ ์คํ๋ง ๋น์ ์ปจํ
์ด๋
โฆ
์ฃผ๋ก XML ํ์ผ ๊ธฐ๋ฐ์ ์ค์ ์ ์ฌ์ฉํ ๋ ํ์ฉ
โข
FileSystemXmlApplicationContext
โฆ
ํ์ผ ์์คํ
์์ XML ํ์ผ์ ๋ก๋ํ์ฌ ์คํ๋ง ๋น์ ๊ตฌ์ฑํ๋ ์ปจํ
์ด๋
โฆ
ํด๋์คํจ์ค ์ด์ธ์ ๊ฒฝ๋ก์์ XML ํ์ผ ๊ธฐ๋ฐ์ ์ค์ ์ ์ฌ์ฉํ ๋ ์ฌ์ฉ
โข
XmlWebApplicationContext
โฆ
์น ํ๊ฒฝ์์ ํ์ํ ๋น ๋ฐ ์ค์ ์ ๊ด๋ฆฌํ๋ ์ปจํ
์ด๋
โฆ
์ฃผ๋ก ์๋ธ๋ฆฟ ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉ
IoC ์ปจํ ์ด๋ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๋น ๊ฐ์ ธ์ค๊ธฐ
โข
์ปดํฌ๋ํธ ํจํค์ง๋ฅผ ์ง์ ํด์ ๊ฐ์ ธ์ค๊ธฐ
โข
@Configuration ์ค์ ํด๋์ค๋ก๋ถํฐ ๊ฐ์ ธ์ค๊ธฐ
โข
XML ์ค์ ํ์ผ๋ก๋ถํฐ ๊ฐ์ ธ์ค๊ธฐ
์ปดํฌ๋ํธ ํจํค์ง๋ฅผ ์ง์ ํด์ ๊ฐ์ ธ์ค๊ธฐ
ApplicationContext context = new AnnotationConfigApplicationContext("com.aloha.spring"); // ํจํค์ง ์ด๋ฆ ์ง์
Board board = context.getBean(Board.class);
Java
๋ณต์ฌ
@Configuration ์ค์ ํด๋์ค๋ก๋ถํฐ ๊ฐ์ ธ์ค๊ธฐ
โข
Config.java
@Configuration // ์คํ๋ง ์ค์ ๋น์ผ๋ก ๋ฑ๋ก
public class Config {
// ๋น์ ๋ฑ๋กํด์ฃผ๋ ํด๋์ค๋ก ์ง์
// ์๋ฐ ์ฝ๋๋ก ๋น์ ๋ฑ๋กํ๊ฒ ๋ค.
// 1. ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์ ์
// 2. ๋ฉ์๋์ @Bean ์ด๋
ธํ
์ด์
์ ์
@Bean // IoC ์ปจํ
์ด๋์ ๋น์ผ๋ก ๋ฑ๋ก
public Board getBoard() {
return new Board("์ ๋ชฉ", "์์ฑ์", "๋ด์ฉ");
}
}
Java
๋ณต์ฌ
ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
Board board = context.getBean(Board.class);
Java
๋ณต์ฌ
XML ์ค์ ํ์ผ๋ก๋ถํฐ ๊ฐ์ ธ์ค๊ธฐ
ApplicationContext context = new ClassPathXmlApplicationContext("root-context.xml"); // XML ํ์ผ ๊ฒฝ๋ก ์ง์
Board board = context.getBean(Board.class);
Java
๋ณต์ฌ
Spring Legacy ํ๋ก์ ํธ์ ๊ฒฝ์ฐ, ์์(๋ฆฌ์์ค) ํ์ผ๊ณผ ์ค์ ํ์ผ์ ์ ์ฅํ๋ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ src/main/resources ๋๋ ํ ๋ฆฌ์
๋๋ค.