스프링을 여러번 해봤고, 프로젝트도 몇번 해봤지만 항상 느끼는게
매번 시작할때 마다 시작의 거부감과 어려움을 느낀다. ..
- eclipse 설치시 Eclipse IDE for Java EE Developers로 설치를 한다.
- eclipse 안에서 help -> marketplace에 들어가서 sts를 설치한다.
-> 이는 XML이나 스프링 설정시 자동완성을 도와준다.(ctrl+space) - file -> new -> Spring legency project 로 프로젝트 실행
자바 버전 변경하는 법
프로젝트 우클릭 → properties -> java bulid path → add Libary -> JRE 클릭
pom.xml
이 파일에서는 기본적인 설정 파일을 maven에 설치하는 역할을 한다.
▶ Lombok 이란?
롬복(Lombok)은 자바에서 Model(DTO, VO, Domain) Object 를 만들때, 멤버필드(프로퍼티)에 대한 Getter/Setter, ToString과 멤버필드에 주입하는 생성자를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리, 프로젝트 입니다.
사실 반복되는 Getter, Setter, toString 등을 자동으로 해주는 것만으로도 고마운 것 같다. 또한 @log 를 이용하여 로그를 찍을수 있는 기능도 제공한다.
root-context.xml
스프링 프레임워크에서 관리해야하는 객체 를 주입
Namespace를 이용하여 context를 체크하여 어노테이션으로 만든 객체 사용가능
DI 기본
데이터페이스 연결 — 커넥션풀
java에서는 DataSource라는 인터페이스를 통해서 커넥션풀을 사용한다.
커넥션 풀은 여러 종류가 있고 spring-jdbc라이브러리를 이용하는 방식이
있다.(더 나아가 HikariCP를 이용하는 방식도 있음)
Mybatis
mybatis-spring이라는 라이브러리를 사용하여 쉽게 연동 처리
mapper.xml을 이용하여 사용할경우 위치는 Mapper 인터페이스가 있는곳에 만들어 사용하거나 src/main/resource에서 xml파일을 인터페이스 경로와 동일한 경로로 만들어 사용하면된다.
web.xml
tomcat 구동과 관련된 설정 파일
<tomcat 구동시 순서>
web.xml 확인 -> web.xml에서 root-context.xml 확인
-> root-context.xml에서 정의된 객체들이 스프링 영역 안에 생성 객체간
의존성 처리
-> 스프링 MVC에서 사용하는 DispatcherServlet이라는 서블릿 동작
-> 캡쳐에서 보다 시피 DispatcerServlet을 진행하며 사용하는 파일이 servelt-context.xml
- 사용자의 request는 DispatcherServlet을 통해서 처리
- HandlerMapping은 @RequestMapping ㅇ어네토이션이 적용된 것을 기준으로 판단하여 해당 컨트롤러를 동작
- Controller는 Request를 처리하는 로직 작성 view에 전달해야 하는 데이터는 Model에 담아전달
오라클 계정 만들기
해당 데이터베이스 연결후 Mybatis 사용해보기
비지니스 로직(Service인터페이스 /ServiceImplement(mapper 주입)인터페이스함수구현)
사용 이유
: Mybatis를 사용한다고 가정했을때 해당 Mapper를 바로 불러서 사용하면 되지 않을까라는 생각을 했지만, Service라는 인터페이스로 만들어 진 서비스 함수를 사용할때 해당 서비스에서 여러개의 Mapper sql를 사용할수도 있고, Controller에서 실질적으로 사용할경우 service 중 하나의 함수가 아니라 여러개의 함수를 동시에 동작하기 위해서 service라는 인터페이스를 이용하여 구현
그후 ,root-context.xml 에서 어노테이션 적용을 해야 적용이 된다.
(root-context.xml 은 db나 service 객체를 관리하고 servlet-context.xml은
controller 객체를 관리하는것 같다. .아직 부족하여 확실한건 아닐수도 있다 …)