KoreanFoodie's Study
자바 Spring FrameWork #1 : 기초 개념과 IoC, Injection, Annotation 본문
자바 Spring FrameWork #1 : 기초 개념과 IoC, Injection, Annotation
GoldGiver 2021. 11. 22. 17:01
꼭! 알아야 할 개념
- IoC : Inversion of Control
- AOP : Aspect Oriented Programming
- MVC : Model-View-Controller
- Java, JDBC, HTML, Servlet/JSP
프레임워크
프레임워크는 뼈대이다. 뼈대는 바꾸는 것이 아니라 이용하는 것이다. 하나의 틀이라고 봐도 됨
메타 데이터는 주로 XML.
아키텍처에 해당하는 클래스를 콜드 스팟(Cold Spot) 이라고 하며, JAR(Java Archive) 파일을 의미한다.
POJO(Plaing Old Java Object)란?
POJO란 말 그대로 평범한 옛날 자바 객체를 의미한다.
대표적인 Not POJO 클래스가 Servlet이나 EJB 클래스다.
Servlet 클래스는 우리 마음대로 만들 수 없으며,
반드시 Servlet에서 요구하는 규칙에 맞게 작성해야 한다.
그리고 중요한 것은 POJO가 아닌 클래스의 객체는 메모리 사용이 많아 무겁다.
Servlet Container?
Servlet Container는 누가 생성하나? : 톰캣
서버를 실행한다는 건 톰캣 객체를 생성한다는 것.
Servlet Container가 실행될 때 web.xml을 불러온다.
브라우저가 우리가 만든 hello.do를 호출하면
IoC
Servlet 객체는 lazy loading : 클라이언트가 요청을 하기 전까지 실행을 하지 않는다.
Spring Container : Pre-Loading. 컨테이너가 구동되는 시점에 메모리에 로딩되는 객체.
우리는 코드를 수정하지 않고 XML만 수정해서 원하는 유지 보수를 쉽게 할 수 있다.
Injection
Injection이라 함은 간략화하자면 xml 파일에서 <bean> 객체를 이용해 생성자나 메서드들을 호출해주는 것을 말한다.
크게 세 가지 종류가 있다.
Constructor Injection
Setter Injection -> Recommended!
Namespace Injection
만약 객체를 만들 때 각각 다른 매개변수가 필요한 경우가 있다고 하자. 그럴때는 빈 객체를 만들고 내부 field 값은 setter를 통해 원하는 변수만 제대로 설정해 주는 것이 더 나을 것이다.
Annotation
XML 소스를 수정하는 것은 좋지만... 10000줄짜리 XML이 만들어진다면...?
Annotation을 이용해 xml이 자동으로 @
이 붙은 객체를 검색하고 생성해 줄 수 있다.
유지보수 과정에서 변경되지 않는 객체는 Annotation으로 생성한다.
@Autowired, @Qualifier("ID"), @Resource(name = "ID") 등을 기억하자.
하지만 @Qualifier도 계속 수정을 해주어야 한다. 따라서 잘 안씀...
유지보수 과정에서 변경되는 객체를 하나만 생성하기 위해서는 bean 등록을 사용한다!
@AutoWired 만 활용하고, XML에서 실제 사용할 객체만 bean class로 생성하면 됨.
Error
No matching bean of type : 가장 많이 뜨는 에러 (90%)
해당 타입에 맞는 객체가 없다는 뜻
'Tutorials > Spring Framework' 카테고리의 다른 글
자바 Spring FrameWork #4 : 프리젠테이션과 비즈니스레이어 통합 (0) | 2021.11.25 |
---|---|
자바 Spring FrameWork #3 : 트랜잭션, JSP, Spring MVC (0) | 2021.11.24 |
자바 Spring FrameWork #2 : IoC, AOP(Pointcut, Aspect), 어드바이스 (0) | 2021.11.23 |