Today I Learned
스프링 프로젝트 만들기 2일차(Model, 스프링의 특징 등등) 본문
스프링
- 스프링은 라이브러리를 가지고있어서 파일은 따로 안넣어줌
- 규모가 작으면 controller 와 view로만 하는것도 가능하긴 함
- 스프링 프로젝트 이름이나 패키지 이름 수정하려하지말고 그냥 삭제하고 다시 만들기(클래스는 괜찮다)
- 패키지명 바꾸면 어노테이션 안먹힘 (servlet-context.xml 에서 설정 다시해줘야한다)
- Pom.xml 16번째줄 jstl 다운받아져있음 그래서 파일 갖다놓지않는거임 (dependency : 라이브러리)
모델 (Model)
- Controller 는 받은 일을 직접 처리 하거나 다른 Model에 전달 한다.
- Model 은 Controller 부터 요청 받은 일을 처리하고 통지 한다.
- 이때 DB 에 access 할 일이 생길 경우 우리는 DB 처리 만을 위한 class 를 생성한다.
dao: Data access object 디비가 필요할 때
dto: Data transfer object /dto=beans=vo : 데이터를 한번에 담고있는 클래스
(Bean : 여러 jsp 에서 생성되는 데이터의 창고 역할 / data를 공통으로 저장하고 사용 : 자바로 만듦 )
서비스 (모델의 메인서비스?)는 서비스가 처리할수있는건 하고
디비필요한건 dao한테 맡겨 (서비스가 디비를 써야하는 일은 못하니까 dao 한테 일을 맡김)
Autowired
Autowired안하면 요청할때마다 객체화가 계속되서 객체가 계속 생기는거임
<DB와 연결하기>
**자바와 쿼리문(db)이 통신 을 하려면 규격이 필요함**
1.연결해줄 인터페이스 만들기
2.Xml(쿼리문담고있는)
<mapper> </mapper> : 여기서부터 여기까지 쿼리야
*주의할점* insert문 안에 세미콜론 안씀
+ 04_MvcModule 로직
(controller에서 service로 일 요청 - db일을처리할 dao 필요해 - dao패키지에 interface랑 xml 만들어주고 - service에서 인터페이스 autowired - dao에 요청(인터페이스 메서드로) - xml 에 mapper 태그에 쿼리문 작성 (namespace는 인터페이스의 패키지와클래스명)
스프링의 특징 : 면접에 질문으로 잘 나옴
- 1.제어역행 (I.O.C : Inversion Of Control) : 지원 하여 필요에 따라 스프링이 사용자 코드를 호출
- 제어권이 나한테 없고 스프링한테 있다
- 자바에서 db통신할 때 메서드쓰거나 자원반납같은거 안함 - 스프링이 다해줌
- 간편사용설정 등의 설정만 함
- 2.의존성 주입(D.I : Dependency Injection) : 을 지원하여 느슨한 결합을 유지
결합도가 낮으면 좋다 클래스와 클래스가 연결되면 결합도가 넘 높음
중간에 bean - 클래스와 클래스 교체가 쉬워짐?
Servlet- context에 접속정보보면 bean에다가 class연결해줬지
- Class A 가 B 를 직접 호출 하지 않고 Bean 에 등록하여 사용(DI) 함으로써 두 클래스간 결합도가 낮아진다.
- 그리고 이 연결은 사용자가 아닌 Spring 이 관리(IOC) 한다.
- 3. Spring Framework 에서 객체 자원을 효율적으로 관리 해 준다.
- 4. AOP(Aspect Orient Programming) 을 지원 한다.(AOP 에서 자세히 설명 할 예정)
——
db member 테이블 만들기
create table member(
id varchar(50) primary key
,pw varchar(200) not null
,name varchar(50)
,email varchar(50)
);
desc member;
———
0519블로그정리
03_calc
04_mvcmodule, 04_mvc1
'Spring Framework' 카테고리의 다른 글
스프링 프로젝트 만들기 5일차(게시판 만들기-redirect할 때 메세지 값 보내기 등) (0) | 2022.05.24 |
---|---|
스프링 프로젝트 만들기 4일차(@RequestParam 등등) (0) | 2022.05.23 |
스프링 프로젝트 만들기 3일차(select문 resultType, session,dto 등등) (0) | 2022.05.21 |
스프링 프로젝트 만들기(초기설정법), Pom.xml, web.xml, Servlet-context.xml (0) | 2022.05.21 |
[Spring Framework] mvc패턴이란 (0) | 2022.05.19 |