스프링 개발환경 설정
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 |