Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Today I Learned

스프링 프로젝트 만들기 2일차(Model, 스프링의 특징 등등) 본문

Spring Framework

스프링 프로젝트 만들기 2일차(Model, 스프링의 특징 등등)

꾸주니12 2022. 5. 21. 17:29

스프링 

 

  • 스프링은 라이브러리를 가지고있어서 파일은 따로 안넣어줌 
  • 규모가 작으면 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