1. ์์ฝ ๋ต๋ณโ
- KEY WORD:
@Component = ํด๋์ค ๊ธฐ๋ฐ,@Bean = ๋งค์๋ ๊ธฐ๋ฐ,๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ์ฒด ์์ฑ์ ๊ด์ฌํด์ผ ํ๋๊ฐ์ ์ฐจ์ด
2. ์์ธ ์ค๋ช ๐
Bean ๋ฑ๋ก ์ด๋ ธํ ์ด์ ์ ๊ทธ ๋์์ด ํด๋์ค์ธ์ง, ๋งค์๋์ธ์ง์ ๋ฐ๋ผ ๋๋ฉ๋๋ค.
@Component
: ํด๋์ค ๋์, Bean ๋ฑ๋กํ๊ณ ์ถ์ ํด๋์ค์ ๋ช ์ํ๋ฉด, ํด๋น ํด๋์ค๊ฐ Bean์ผ๋ก ๋ฑ๋ก ๋ฉ๋๋ค.@Configurationํด๋์ค์ ๋งค์๋์@Bean
: ๋งค์๋ ๋์, ์ด ์ด๋ ธํ ์ด์ ์ด ์ ํ ๋งค์๋์ ๋ฐํ ๊ฐ์ฒด๊ฐ Bean์ ๋ฑ๋ก ๋ฉ๋๋ค.
(์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ํ๋ ์์ํฌ๊ฐ ์จ์ ํ ์ค์ค๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ ํด๋์ค์ ๋ํ์ฌ, ๋ฏธ๋ฆฌ ๊ฐ๋ฐ์๊ฐ ํ์ํ ํ๊ฒฝ ์ค์ ์ ์ฝ๋๋ก ์ธํ ํด๋๋ ๋ฐฉ์์ ๋๋ค.)
์ดํ Spring Application์ด @CompnentScan์ด ์ ํ ํ์ผ์ ํ์ ๋ชจ๋ ํ์ผ์ ๋ํ์ฌ ์ ๋ ์ด๋
ธํ
์ด์
์ด ์ ํ ํด๋์ค์ ๋งค์๋๋ฅผ ์ฝ์ด๋ค์ฌ์ ์ปจํ
์ด๋์ ๋ฑ๋กํฉ๋๋ค.
๋ฐ์ ํด๋์ค๋ @Component๋ก๋ ๋ฑ๋ก๋ ์ ์์ง๋ง, setMessage๋ผ๋ ๋งค์๋๊ฐ ์ธ๋ถ ์ค์ ๊ฐ (ex - datasource URL) ๋ฑ์ ๋ฐ์๋ค์ฌ์ผ ํ๋ ํด๋์ค๋ผ๊ณ ๊ฐ์ ํด๋ด
์๋ค.
package net.javaguides.spring.ioc;
public class GreetingService {
private String message;
public void setMessage(String message) {
this.message = message;
}
public void getMessage() { System.out.println("Message: " + message); } }
๊ทธ๋ ๋ค๋ฉด, ๋ฐ๊ณผ ๊ฐ์ด @Configuration๊ณผ @Bean ์กฐํฉ์ ํ์ฉํ์ฌ, ์ฝ๋๋ก ํ๊ฒฝ ์ค์ ์ธํ
์ ๊ฐ๋ฐ์๊ฐ ์ง์ ํด์ฃผ๊ณ , ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
package net.javaguides.spring.ioc;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public GreetingService greetingService() {
GreetingService greetingService = new GreetingService();
greetingService.setMessage("Hello, Spring Java Configuration!");
return greetingService;
}
}
3. ๊ผฌ๋ฆฌ ์ง๋ฌธ ๐ก
(1) ๊ทธ๋ผ ์ด๋ ธํ ์ด์ ๋ผ๋ฆฌ ๋ฐ๊ฟ์จ๋ ๋๋์?
Bean์ ๋ฑ๋กํ๋ ๊ฑฐ ์์ฒด๋ ๊ธฐ๊ณ์ ์ผ๋ก ๊ฐ๋ฅํ์ง๋ง, ๊ถ์ฅ๋์ง๋ ์์ต๋๋ค. ์๋ํ๋ฉด, ๋ฏธ์ธํ๊ฒ ๋ถ๊ฐ๊ธฐ๋ฅ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค.
@Controller์ ๊ฒฝ์ฐ, ๋ด๋ถ ๋งค์๋์ @RequestMapping ๊ด๋ จ ์ด๋ ธํ ์ด์ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๋๋ค. ๋ํ ๋์คํจ์ฒ ์๋ธ๋ฆฟ์๊ฒ ์์ฒญ์ ๋งคํํด์ผํ ๋งค์๋๊ฐ ๋ฌด์์ธ์ง ์๋ ค์ฃผ๋ ์ฑ ์๋ ์ง๋๋ค.
@Repository, DB์ ์์ธ๋ฅผ ์คํ๋ง์ DataAccessException์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค .
@Service๋ Bean ๋ฑ๋ก ์ธ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์์ต๋๋ค.
์๋ฌด๋ฆฌ ๋ฐ๊ฟ์ธ ์ ์๋ค๊ณ ํด๋, ํด๋น ์ด๋ ธํ ์ด์ ์ด ๋ํ๋ด๋ ๋ช ์์ฑ์ ์ด๋ฆฌ๊ธฐ ์ํด์๋ผ๋ ํ์ํ ์์น์ ํ์ํ ๊ธฐ๋ฅ์ ์ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.