๐ @Component๋ฅผ ์ฌ์ฉํ๋ ์ด์ ?
โ ์ฒซ๋ฒ์งธ : Class ๋ฅผ ์ผ๋ฐ์์ฑ ํ๊ฒ๋๋ฉด bean์ ์ค์บํ์ง๋ชปํ๋ฉฐ
์คํ๋ง์ปจํ ์ด๋์์ ๋ฑ๋กํ์ง ๋ชปํฉ๋๋ค. ๋ฐ๋ผ์ @Component (like @Service@Controller)๋ฑ์
์ฌ์ฉํ์ฌ bean์ ์ค์บํ์ฌ ๋ฑ๋กํ ์ ์๋๋ก ํฉ๋๋ค.
โ ๋ฐ๋ผ์ PASS ์๊ฐ์ ํ๋ก์ ํธ์์๋ Spring ์ ์ฌ์ฉํ๊ณ ์๊ธฐ๋๋ฌธ์ ์คํ๋ง ์ปจํ ์ด๋์์
WAS์์์์ bean์ ์์ฑํ๊ณ ์์ฒญ์ด ๋ค์ด์ค๋๋ผ๋ ๊ฐ์ bean์ ์ฃผ์ ๋ง ํด์ฃผ๊ณ
๋ค์ ์์ฑํ์ง์๊ธฐ์(singleton) ์๋ฒ์ฑ๋ฅ์ ์ข์ต๋๋ค.
โ ๋ฐ๋ฉด ์ผ๋ฐํด๋์ค์์ ์์ฑํ ๋ ์์ฒญํ๋๋น 5๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค๊ณ ๊ฐ์ ์ ์์ฒญ์ด 500๊ฐ๊ฐ ์ฌ๊ฒฝ์ฐ 2500๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฒ ๋๋ฏ๋ก ์๋ฒ์ ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค.
- ๋ํ aop์์ component ์ค์บ์ ์ฌ์ฉํ๋ฏ๋ก aop๊ธฐ๋ฅ์ ์ฌ์ฉํ ์๊ฐ ์์ต๋๋ค.
๐ @Autowired๋ฅผ ์ฌ์ฉํ๋ ์ด์ ?
โ ์์ ๊ฐ์ต๋๋ค. ๋ง์ฝ ์๋์๊ฐ์ ์ฝ๋๊ฐ ์์๋
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
private MemberService memberService;
}
โ Autowired๋ฅผ ์ด UserRepository๋ ์ปจํ ์ด๋์์ ๋น์ ์ฃผ์ ํ์ฌ์ค๋๋ค.
โ ๋ฐ๋ฉด์ Member Service ๊ฐ์ฒด๋ ์ง์ ์์ฑ๋ฉ๋๋ค.
์ฆ , ์ฑ๋ฅ์ ์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉฐ ์ดํ spring์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง๋ชปํ ์์๊ณ
memberService๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ด๊ธฐํํ์ง ์์์ผ๋ฏ๋ก Nullpointexception์ด ๋ฐ์ํ ๊ฒ์ด๋ฉฐ ์ฐ๋ฆฌ๋ ๋ณดํต Service๋ฅผ ๊ตฌํ์ฒด๊ฐ์๋ ์ถ์์ฒด๋ก ์ฌ์ฉํ๋๋ฐ ์ถ์์ฒด๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์์์ผ๋ฏ๋ก
๊ตฌํ์ฒด๋ฅผ ์์ฑํด์ผํ๋ฉฐ (impl) ๊ตฌํ์ฒด๊ฐ ์ง์ ๊ฐ์ฒดํ ๋จ์ผ๋ก์ธํด ์ถ์ํ์ ์ฅ์ ์ ์ฌ์ฉํ ์ ์๊ณ impl ํด๋์ค์ ์ ํ๋๋ฉฐ ๊ฐ๋ ฅํ ์์กด์ฑ์ด ์๊น๋๋ค.
'Back > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Jenkins ๋น๋ / ๋ฐฐํฌ ์๋ํ ๊ตฌํํ๊ธฐ _ Maven Project (2) | 2023.10.22 |
---|---|
Maven ์ด๋? ๊ฐ๋ , ํน์ง , ์ ์ (0) | 2023.02.02 |
Spring] AOP LOG ํ์ผ์ ์ ์ฅํ๊ธฐ (0) | 2022.08.29 |
Spring mvc ํ๊ฒฝ์์ aop : logging ์ ์ฉ์์ (0) | 2022.08.26 |
Spring Mvc ๊ธฐ๋ฐ api ์์ธ์ฒ๋ฆฌ (0) | 2022.08.26 |