기억하기 위한 기록

spring 1일차 본문

Back-end/spring

spring 1일차

곽구 2021. 5. 18. 04:12

[SPRING]

 

우리가 다뤄본 자바용 프로젝트 관리도구 xml

 

1. WEB.xml

2. Mybatis.xml

3. pom.xml

 

▶ Apache Maven

  - Maven의 종속성 : 이제까지 프로젝트 내 lib폴더에 사용할 라이브러리를 직접 추가하여 관리 해왔다면 , Maven은 pom.xml문서 하나만으로 필요한 라이브러리를 설치하고 관리할 수 있다. 

 

▶ Maven 설치 

 

        1. http://maven.apache.org

2. Download > Files > Binary zip archive  apache-maven-3.6.3-bin.zip 다운로드

3. 다운로드 받은 집파일 dev폴더로 이동

4. apache-maven-3.6.3-bin 압축풀기

5. apache-maven-3.6.3 폴더만 남겨놓기

6. repository 라는 이름의 폴더 생성하기

    ㄴ> 이 폴더는 내가 외부에서 받아온 jar파일을 관리할거다

7. conf 폴더 안에 settings 메모장으로 열어보기

  <localRepository>/path/to/local/repo</localRepository>

이부분 찾아서 복사하고 --> 주석끝나는 부분에 복사 붙여넣기 한다음

우리가 repository 폴더 만들어준 경로 복사해서 붙여넣기

(주석 밑에 한줄 넣고 끝)

 

 

▶ Spring Framework

 - 특징 

● IoC (Inversion of Control) | 제어 반전 : 만들어놓은 틀 안에서 움직이는 것으로 컨트롤의 제어권이 개발자가 아니라 프레임워크에 있다는 뜻으로 객체의 생성부터 모든 생명 주기의 관리까지 프레임워크가 주도

 

<br />
  DI (Dependency Injection) | 의존성 주입: 
원래는 주도권이 개발자에게 있었음, 근데 제어반전은 주도권이 개발자에게 있는게 아니고 프레임워크에 있는것,
 
제어의 반전이 있기 때문에 DI가 생기는거지, DI가 있기 때문에 제어반전이 생기는게 아니다.
내가 일단 class를 만들어 그러면 annotation을 가지고 객체를 
나는 아무것도 안하고, 필드가 , SPRING이 각자 원하는 위치에 쓸 수 있도록 알아서 넣어주는것
 
 > 그전까지 우리가 배웠던 프로그램은 우리가 직접 객체를 생성해서 그 안에서 가져다 썼었는데,
 알아서 사용할수있도록 주입하여줘서 의존성이 낮다.
Spring이 알아서 컨트롤 해주기 떄문에 들어갈 수 있는것이다
 
● POJO (Plain Old Java Object)  : 평범한 자바 객체
스프링에묶이지않고 그냥 자바
 
● Spring AOP (Aspect Oriented Programming) | 관점지향 프로그래밍 : 
내가 요청을 보내면 중간에 요청을 가로채서 여러 작업을 해줌. 필터와 비슷핮만 필터와 다른점은 내가 원하는 시점에서 가로 챌 수 있다 . (그래서 관점 지향)
<br />

* 우리 예전에 filter 배웠었는데 그거랑 아주 흡사함

 

● Spring JDBC : Mybatis나 Hibernate등의 데이터 베이스를 처리하는 영속성 프레임워크와 연결할 수 있는 인터페이스 제공

 

● Spring MVC : MVC디자인 패턴을 통해 웹 어플리케이션의 Model, View Controller

 

 

 

 

▶ beans 객체 core, context, Expression Language 

 

 

▶ Spring의 동작 구조

  - Spring 웹 

urlpattern에 맞는 servlet매핑되어있는 DispatcherServlet생성

예를 들어 th = thumbnail bo = board 같이  어떠한 dispatcherservlet에 연결이 될건지 하나하나 적용을 시켜주겠다는 얘기.

 

 

 

 

 

 

 

 

우리JSP서블릿 할때 어노텐션으로 해주기도 했지만, WEB.XML에서 해주기도했다.

 

 

- XML 파일

 

 

 

- @Annotation : xml 파일에는 구동 시킬 필수 요소만 작성하고 소스코드에 Annotation 으로 표시하여 구동

spring에서는 서블릿을 많이 만들지 않고 하나의 클래스에서 작업할 수 있다.

 

 

- JSP 떄처럼 단순한 페이지이동을 경로만 써주는게 아니고 다 controller를 거치게 된다.

그 이유는 WEB-INF안에있는애들은 단순한 서버이동이??....

 

이제 스프링을 설치해봅시다~

워크스펭스 만들어주기 > help에서 aboutEclipse IDE에서 버전확인하기

내 Eclipse Version: 2018-09 (4.9.0)

 

방법 1. 스프링을 사용할 수 있는 툴 설치 

1. http://spring.io/ > projects > spring tools|4 > 하단에 Looking for Spring Tools Suite 3? > wiki클릭

wiki 주소 https://github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3

 

4.15의 맨위에거 다운로드 

Spring Tool Suite 3.9.12 (New and Noteworthy)

 

 

방법 2. 이클립스에 스프링 앱을 깔아서 스프링을 연결하는 방법

 

help>eclipse marketPlace > find 에 sts검색 > spring tool 3설치

 

 

기본적인 설치 

window> show view > navigator

window > show view > console

window > show view > problems

window > show view > progress

 

- window > perspective > customize perspective > shortcuts

- encoiding, spelling, JSON Files > UTF-8로 변경

 

- 메이븐과 연동해주기

 preferences > maven > user Settings > user settings 주석으로 복사해서 넣어줬던걸로 연결

D:\dev\apache-maven-3.6.3\conf\settings.xml  입력하면

자동으로 아래 Local Repository도 변경된다.

 

apply > 메이븐을 생성하면 target이라는 폴더가 생성되는데,

우리가 깃 사용할때 내가 알아서 컴파일해서 집어넣을텐데 

컴파일된 자료들이 자꾸 target에 들어가면 문제가 생기기 때문에 ignore 하기 위해 target을 빼줄것

 

Team > Ignore Resources > Add Pattern > */target/*

 

 

server 생성해주기

서버명 : SpringServer

 

이제부터 우리는 spring legacy project를 통해 프로젝트를 만든다.

프로젝트명 입력 후 Templates > spring MVC Project클릭 > next > yes > package를정해달라고 나온다.

 

Spring에서는 무조건 최상위 패키지는  3단계 이상이 있어야 한다.

com.kh.spring

그리고 3번째에있는 spring이 contextPath가 된다.

> progress를 클릭하면 기다려야한다.

 

src : java파일이 들어감

 

project > properties > project facets > java 1.8버전으로  변경  > runtimes > spring server체크 > apply 

> java build path > libraries > tomcat, jre, maven있는거 확인 > apply and close

 

pom.xml 에서 <java-version>1.8</java-version> 원래 1.6으로 되어있던거 1.8로 변경

 

springio 들어가보면 우리지금 최신버젼 5.2.4쓰고있어요 최신버젼 따라합시다.

 

https://spring.io/projects/spring-framework

 

<org.springframework-version>3.1.1.RELEASE</org.springframework-version> 여기 5.2.4로변경

 

기본적인 설정 세팅은 여기까지~



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Back-end > spring' 카테고리의 다른 글

spring3일차  (0) 2021.05.18
spring2일차  (0) 2021.05.18