본문으로 바로가기

[스프링 개발환경 설정 ]

category SPRING 2018. 9. 4. 11:36

스프링 개발환경 설정 


1)개발툴 

1-1이클립스+스프링 플러그인 (마켓플레이스)

    spring IDE3.9.2 Release확장 프로그램 설치 



1-2 STS(spring tool suite-이클립스에 스플링 플러그인이 포함된 버전)

(오늘 깔아 볼것!)

1-3 intelij =안드로이드 하시는 분들은 이거루 사용해보시면 좋다


2)STS 다운로드 및 설치 

http://spring.io/tools/sts/all (스프링 공식 사이트)

-sts 다운로드 (윈도우 64bit용다운로드, 기본적으로 제공되는 다운로드 링크를 클릭 하면 32bit이니 주의)


- sts.exe 실행 

- 에러가 발생할 경우 - 환경변수에 JAVA_HOME, path에 JAVA_HOME/bin 추가 

- 주의 : sts 설치디렉토리 및 workspace는 한글 이름이 들어간 디렉토리를 사용하지 말것




스프링 디렉토리 구조 


src/main/java-자바코드(controller,model,service)

 =월래 자바 =controller->model(dao)->view

   스프링 controller-> service->model(dao)->view (service 추가 )


src/main/resources-자바코드에서 참조한는 리소스 파일들 

sqlMapConfig.xml,mybatis의 mapper


src/test/java- 테스트 관련 코드 

개발 완료-> 테스트 ->납품->검수

junit= 테스트 툴

src/test/resources-테스트 코드에서 참조하는 리소스 파일들

src/main/waebapp-웹 서비스 루트 디렉토리(외부에서 접근 가능)

src/main/waebapp/resources-js,css,iamge 등의 웹 리소스 파일

src/main/waebapp/WEB-INF/classes 컴파일된 클래스 

src/main/waebapp/WEB-INF/spring-스프링의 환경 설정파일

src/main/webapp/WEB-INF/spring/root-context.xml - 서블릿과 관련되지 않은 모든 리소스에 대한 설정

 src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml - 서블릿과 관련된 리소스에 대한 설정 

src/main/webapp/WEB-INF/views – html, jsp 페이지 

src/main/webapp/WEB-INF 외부에서 접근 불가능(보안을 위해서) 컨트롤러를 경유해서 접근 가능

pom.xml – 메이븐에서 참조하는 설정 파일

 

 6) 스프링의 주요 특징 - POJO(Plain Old Java Object) 기반의 구성 : 별도의 API가 필요하지 않은 일반적인 자바 코드를 이용하여 개발 가능 

- 의존성 주입(DI)을 통한 객체 간의 관계 구성 - AOP(Aspect Oriented Programming) 지원 : 반복적인 코드를 줄이고 개발자가 비즈 니스 로직에만 집중할 수 있도록 지원함

 - 편리한 MVC 구조

 - WAS에 종속적이지 않은 개발 환경(웹 에플리케이션 서버(톰켓 웹노직 등 ))


 1) IoC(Inversion of Control, 제어의 역전) 

- 객체에 대한 제어권 

- 기존에는 개발자에게 제어권이 있었음(new 연산자) ()

- 객체의 제어권을 스프링에게 넘김 - 인스턴스의 라이프 사이클(생성부터 소멸까지)을 개발자가 아닌 스프링 프레임웍 이 담당 


2) DI(Dependency Injection, 의존관계 주입)

 - 객체 간의 의존성을 개발자가 설정하는 것이 아닌 스프링 컨테이너가 주입시켜 주는 기능 

 - 객체를 쉽게 확장하고 재사용할 수 있음

3)생명 주기


가) 의존 관계 

B의 코드가 변경되면 A의 코드도 변경되는 경우 

A와 B는 의존관계가 있다.

 A는 B에 의존한다.

 A                  /               B

 코드 변경 발생  / 유연한 확장이 어려움

 강한 결합과 느슨한 결합 B의 코드 변경이 A에 영향을 미치지 않도록 느슨하게 설계

 A                    /              B

 코드 변경 불필요   /       유연한 확장이 가능함

                                  핵심 기능의 변경이 쉬워짐

 강한 결합은(결합도가 높으면) 유지보수를 어렵게 함 

한 곳의 수정 -> 나비효과


나) 강한 결합과 느슨한 결합 

//생성자가 private으로 바뀌면 

//MemberUse 클래스도 수정해야 함 

class MemberUse {

 public MemberUse() {

 Member m=new Member();

 }

 } 

public class Member { 

String userid;

 String passwd;

 String name;

 private Member() {

 } 


//생성자가 private으로 바뀌어도

 //영향을 받지 않음

 class MemberUse {

 public MemberUse(Member m) { 

 }

 } public class Member { 

String userid;

 String passwd;

 String name; 

private Member() {

 }

 }


프로젝트 생성 

1.


2.


페키지 명은 com.net.ooo 로 설정하시고 필요한 파일 자동 (라이브러리)다운로드 ..2개 요구


pom.xml= 여기서 필요한 라이브러리를 추가해준다 


'SPRING' 카테고리의 다른 글

스프링 개발 환경 구축 1-1  (0) 2018.10.18
DB 연결 테스트,Controller와 View의 연결  (0) 2018.09.05
주의 할 사항  (0) 2018.09.04
Spring Framework DI(Dependency Injection)  (0) 2018.09.04
스프링 실행 과정(1)  (0) 2018.09.04