๐ ์ค๋์ ํ์ต ํค์๋
- Bean
๐ฅ Bean ์๋ ๋ฑ๋ก
- @Component๋ฅผ ์ฌ์ฉํ๋ฉด @ComponentScan์ ์ํด ์๋์ผ๋ก ์ค์บ๋์ด ํด๋น ํด๋์ค๋ฅผ Bean์ผ๋ก ๋ฑ๋ก ํด์ค๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก @Component๋ฅผ ์ฌ์ฉํ์ฌ Bean์ ์๋์ผ๋ก ๋ฑ๋กํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง ์๋ก ๋ฑ๋กํ Bean๋ค์ด ๋ง์์ง๊ธฐ ๋๋ฌธ์ ์๋๋ฑ๋ก์ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํฉ๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๊ด๋ จ๋ ํด๋์ค๋ค์ ๊ทธ ์๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ @Controller, @Service์ ๊ฐ์ ์ ๋ํ ์ด์ ๋ค์ ์ฌ์ฉํด์ Bean์ผ๋ก ๋ฑ๋กํ๊ณ ๊ด๋ฆฌํ๋ฉด ๊ฐ๋ฐ ์์ฐ์ฑ์ ์ ๋ฆฌํฉ๋๋ค.
โ๏ธ Bean ์๋ ๋ฑ๋ก์ ์ฌ์ฉํ ๋
๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ ๊ณตํต์ ์ธ ๊ด์ฌ์ฌ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ ๊ฐ์ฑ๋ค์ ์๋์ผ๋ก ๋ฑ๋กํฉ๋๋ค.
- ๊ณตํต ๋ก๊ทธ์ฒ๋ฆฌ์ ๊ฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์ํ๊ธฐ ์ํ ๋ถ๊ฐ์ ์ด๊ณ ๊ณตํต์ ์ธ ๊ธฐ๋ฅ๋ค์ ๊ธฐ์ ์ง์ Bean์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ ์๋๋ฑ๋กํฉ๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง Bean ๋ณด๋ค๋ ๊ทธ ์๊ฐ ์ ๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ๋ฑ๋กํ๊ธฐ ์ด๋ ต์ง ์์ต๋๋ค.
- ๋, ์๋ ๋ฑ๋ก๋ Bean ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ํด๋น ์์น๋ฅผ ํ์ ํ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
๐ฅ Bean ์๋ ๋ฑ๋ก ๋ฐฉ๋ฒ
@Configuration
public class PasswordConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
- Bean ์ผ๋ก ๋ฑ๋กํ๊ณ ์ํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์ ์ธํ๊ณ @Bean ์ ์ค์ ํฉ๋๋ค.
- Bean ์ ๋ฑ๋กํ๋ ๋ฉ์๋๊ฐ ์ํ ํด๋์ค์ @Configuration ์ ์ค์ ํฉ๋๋ค.
- Spring ์๋ฒ๊ฐ ๋ฐ ๋ Spring IoC ์ปจํ ์ด๋์ Bean ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค.
// 1. @Bean ์ค์ ๋ ๋ฉ์๋ ํธ์ถ
PasswordEncoder passwordEncoder = passwordConfig.passwordEncoder();
// 2. Spring IoC ์ปจํ
์ด๋์ ๋น (passwordEncoder) ์ ์ฅ
// passwordEncoder -> Spring IoC ์ปจํ
์ด๋
Bean ์ผ๋ก ์ค์ ๋ ๋ฉ์๋๋ ์์ ์๋ ๋๋ฌธ์๊ฐ ์๋ฌธ์๋ก ๋ณํด passwordEncoder ๋ผ๋ ์ด๋ฆ์ผ๋ก ํธ์ถ๋ฉ๋๋ค.
๐ ์ค๋์ ํ๊ณ
Bean ์ด๋ ค์ด ๋ ์.. ์ปคํผ์ฝฉ๋