2021-07-26 강의록_Spring 기초

MIN.DI·2021년 7월 26일
0

강의록

목록 보기
43/54

스프링 개발환경 구축방법 3가지

  1. Eclipse for Java ---> Spring MVC 환경으로 변경
    -Web개발환경이 없음. 따라서 플러그인으로 추가해줘야 함
    help-marketplace - popular에서 Eclipse Enterprise java install. 설정은 선택된대로 선택하고 ㄱㄱ
    -Spring Tool Suit 플러그인 설치(스프링 개발환경 추가)
    Spring Tools 4.x (필수-required 세개만 체크하고, 나머지 두 개는 언체크) >>>Spring boot
    Spring Tools 3.x Add-on >>> Spring
    Eclipse marketplace에서 절대!!!설치하지 말고, Eclipse 웹사이트에서 설치할 것!!!
    more-marketplace에서 검색하고, install 버튼을 이클립스 화면으로 drag n drop!
    pivotal tc Server ~~~ 언체크하고 confirm

  2. Eclipse for Enterprise ---> Spring MVC 환경으로 변경
    실무에서 가장 많이 사용
    -웹 개발환경은 이미 구축되어 있으므로 pass!
    -Spring Tool Suit 플러그인 설치(스프링 개발환경 추가)
    Spring Tools 4.x (필수-required 세개만 체크하고, 나머지 두 개는 언체크)
    Spring Tools 3.x Add-on Eclipse marketplace에서 절대!!!설치하지 말고, Eclipse 웹사이트에서 설치할 것!!!
    more-marketplace에서 검색하고, install 버튼을 이클립스 화면으로 drag n drop!
    pivotal tc Server ~~~ 언체크하고 confirm

  3. STS(Spring Tool Suite) 사용 (현재버전: v4.x)
    -Eclipse를 기반으로 만든 스프링 개발환경
    -VMware에서 유지/배포(관리는 pivotal 에서 함)
    -Spring 은 pivotal 이란 회사에서 만들고 배포하되,
    STS란 개발환경 도구는 VMware에서 함
    --> Spring Tools 3.x Add-on 만 설치하면 됨!
    Eclipse marketplace에서 절대!!!설치하지 말고, Eclipse 웹사이트에서 설치할 것!!!
    more-marketplace에서 검색하고, install 버튼을 이클립스 화면으로 drag n drop!
    pivotal tc Server ~~~ 언체크하고 confirm


Spring project 생성

new-project-spring-프로젝트명, 템플릿은 mvc 어쩌구 선택 (웹 프로그래밍은 무조건 mvc)


Spring project 생성 이후 설정하는 파일들

  1. pom.xml
    -maven update project
    -project properties

  2. web.xml

  3. spring 첫번째 설정파일
    -src/main/webapp/spring/root-context.xml
    (spring-context : 즉, 객체들을 저장하는 container 에 대한 설정파일.
    웹과 관련 없는 설정파일들.)

  4. spring 두번째 설정파일
    -src/main/webapp/spring/appServlet/servlet-context.xml
    (Dispatcher Servlet의 설정파일.
    servlet -> 말 그대로, 웹과 관련있는 설정파일들은 여기서 설정)

  5. src/main/resources 폴더 밑에, 안쓰는 폴더(META-INF)삭제

  6. lombok @Log4j 를 위한 설정파일
    -src/main/resources/log4j.xml
    -src/test/resources/log4j.xml

  7. log4jdbc(driver spy) 의 설정파일 생성
    -log4jdbc.log4j2.properties
    -내용 : log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
    왜 ?? lombok의 @Log4j만 사용할거면 참 좋은데...
    안타깝게도 spring framework, HikariCP 등 많은 api가 로그 라이브러리로 SLf4j 를 사용하므로
    log4j2만 단독으로 사용할 수는 없다.
    이 설정파일은, src/test/resources 에는 만들지 말 것


스프링 Core Features 2가지

  1. DI : Dependency(의존성) Injection(주입)
  2. AOP : Aspect-Oriented Programming (관점 지향 프로그래밍)
    OOP같은 새로운 프로그래밍 패러다임.

DI (의존성 주입)

A객체가 제 역할을 하려면, 반드시 B객체가 필요하다. A -> B 로 표시하고, A는 B에 의존적이다 라고 표현.
oop는 객체간의 연결, A객체가 B객체에 의존하는 의존성을, 개발자가 직접 코드 내부에서 만들어야 함.
di는 외부(Spring beans container) 에서 설정을 통해 객체간의 관계를 연결시켜주는 패턴이다.
컴파일 타임시에 이루어지는 것이 아니라, 실행시(런타임) byte code조작으로 집어넣음.
(byte code조작? pom.xml 에서 설정한 AspectJ dependecy!)
signal을 보낸 객체에게, 그 객체가 필요로 하는 의존성 객체를 자동으로 주입해줌.
A가 반드시 B를 필요로 해서, signal을 보내면, B를 A객체의 필드로 주입시켜주는 것.

스프링에서 의존성주입은 두가지 방식으로 이루어짐.
1. A객체의 생성자를 이용한 주입

  1. Setter 메소드를 이용한 주입

AOP (관점 지향 프로그래밍)

나중에설명~!~!


@Component("value")

Beans Container에 bean으로 자동 등록시켜주는 어노테이션.
component = 스프링에서는 bean을 의미함.

root-context.xml 이나 servlet-context.xml 에 <context:component-scan base-package="org.zerock.myapp.sample" /> 태그를 붙여둠.

base-package 에 지정된 패키지에서, @Component 어노테이션이 있는지 scan 하겠다는 뜻.

scan 해서-> @Component 을 발견하면 -> Beans Container에 bean으로 등록함.

profile
내가 보려고 쓰는 블로그

0개의 댓글