๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

01/29(์›”) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 26์ผ์ฐจ TIL - Bean ์ˆ˜๋™ ๋“ฑ๋ก

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 1. 29.

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • 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 ์–ด๋ ค์šด ๋…€์„.. ์ปคํ”ผ์ฝฉ๋†ˆ