javaEE(java Enterprise Edition) vs Spring
JavaEE :
웹 기술인 jsp, Servlet - 분산처리 기술인 EJB(Enterprise Java Beans)기술
-이 때 EJB작성 후 배포시 동일되는 기준없이 xml을 만들어 각각 배포하는 문제 발생
(참고 : 엔터프라이즈 - 기업의 업무처리를 위한 것)
-그래서 spring이 대두 됨
(참고) 디자인패턴
framework
-별명은 spring servlet
-쉽고 효율적인 javaEE 개발을 위한 framework
-개발자 -Rod Johnson
-이전 spring사이트 영문정의
"Spring is the most popular application developement framework
for enterprise JAVA.
Millions of developers use Spring to create high performing,
easy testable, reusable code without ant lock-in."
-lightweight(경량)급 프레임워크
-무거운 EJB의 해결책
-엔터프라이즈 시스템에서 요구하는 분산처리, 확장성, 안정성 등을 해결
-pojo를 베이스로 하는 엔터프라이즈 개발 프레임워크로 재사용성이좋다
(참고) pojo : plain old java object로 자바가 중심이고
자바는 다른 것에 종속되지 않는다
(다른 클래스를 상속받아서 만들어야 하는 클래스가 아니다.)
-전자정부 표준 프레임워크(MyBatis)
(참고) 토비의 스프링
spring legacy - spring boot
작성방법1)
-기존 eelipse(Dynamic WEB Project)에
spring library를 직접 추가하기(이걸로도 함)
-->(local storage, repository) like jdk, jre의 rt.jar
ojdbc6.jar standard.jar
-Dynamic WEB Project
-web-inf
-lib에 .jar추가(ojdbc6.jar stand
ard.jar)
==>결과적으로 web에서 spring으로 처리 가능해진다.
(참고) 필요한 라이브러리를 외부저장소 (remote repository)로부터 공급받음
공급받는 방식에는 2가지
1)직접다운로드
dynamic web project + 스프링 library를 다운받아 넣음
2)pom.xml 사용
작성방법2)
기존 이클립스에 STS(Spring tool Suite)를 plug-in하기 (이걸로도 함)
-pom.xml이라는 "환경설정파일"에 필요한 내용을 써 놓으면 스프링이 알아서 다운로드
-.spring project + pom.xml에 필요한 라이브러리를 받도록 적어줌
(참고) 이 방식으로 작성하면
작성하자마자 플젝에 액박이 뜸, 그리고 잠시기다리면 액박이 사라짐
작성방법3)
STS툴 (이클립스+sts) 다운받아 install하기
-STS는 이클립스 기반에 스프링 프레임워크를 사용할 수 있는 툴
spring 상세 작성하기
(작성방법-1)
eclipse의 lib방에 스프링 .jar(.class파일의 집합)(rt.jar참고)파일을 붙여넣기
예) ojdbc6.jar처럼 붙여넣기
<spring에서 제공하는 jar 파일예>
spring-beans-4.1.7.RELEASE.jar
.
.
.
.
<jar파일 갖고오는 곳>
jar를 직접 넣으려면 직접 다운받아야함
원격저장소
https://repo.spring.io/ui/native/release/org/springframework/spring
-->.../release/까지만 치고 찾아가도된다.
(임의버전을 눌러 ..dist.zip을 다운받는다)
-압축을 푼 후 libs방에 있는 .jar파일 하나를 Dynamic web project의
web-inf아래에 넣는다.
예)spring-context...release.jar
(참고) http://repol.maven.org/maben2는 중앙저장소로 라이브러리,플러그인,아티펙트
등을 관리한다.
일반 user는 자료올림 등을 할 수 없다.
작성방법2 실습해보기
(maven방식: pom.xml 환경설정파일을 사용하는 방식, 자동으로
원격저장소에서 jar를 갖고오는 방식
참고 non-maven방식
sts를 plug-in하기
이클립스 버전을 확인 해보자
Neon 4.6 2016
Oxygen 4.7 2017
Photon 4.8 2018
(플러그인 방법1)
이클립스 help- eclipse marketplace - find에서 - sts 입력
(이것이 원래 기본방법)
이때 sts 결과 안나올때 해결하기!!!!
(플러그인 방법 2) market place 취소하고 이렇게 한다
Help - install New Software에서
work,,,,,맨뒤에 [add]버튼을 누름
photon인 경우 4.8버전이므로
이름에는 ph4.8(임의로작성) , url에는
http://dist.springsource.com/release.TOOLS/update/e4.8/
입력하여 해결
(참고)버전에 맞게 입력해야함(주의: TOOLS는 대문자)
그런다음 core3개, extension, integration정도
즉, 위에서 5개정도만 체크
-next, next,동의후 finish
-아래 설치 % 참고후 기다렸다가 계속진행
-(중간에...나오면 install anyway 눌러 설치)
======================================================================
8월27일
간단한 제작(스프링자바,maven방식)
file-new-spring legacy project
-간단한 이름(helpSpringMaven)주고
-simple spring maven
(만일 첫 가동등으로 spring lagacy project가 바로 안나오면
먼저 other로 간후 sprong폴더에서 spring legacy project선택
(tip) 위 프로젝트를 만들면 만들자마자 아무것도 안했는데 액박이 뜨면 그냥 기다림
그러면 조금있따 액박이 없어짐
결합도가 높은경우
new를 사용하여 aa,bb,cc가 변경되면 Bokhap클래스내용
줄줄이 변경해야함
class aa {void kajaaa(){}}
class bb {void kajabb(){}}
class cc {void kajacc(){}}
class Bokhap {
AA aa = new AA();
BB bb = new BB();
CC cc = new CC();
void cheori(){
aa.kajaAA(); bb.kajaBB; cc.kajaCC();
}
}
스프링은 결합이 낮은 방식을 사용
1) 다른곳에서 new를 해서 기본소스로 넣어준다 (역방향)
2) xml을 사용하여 처리한다
이것이 바로 DI(Dependency Injection, 의존성 주입) 이다
다시말하면
기존 class안에서 new ,,,,new ...객체를 생성
그러나
Spring에서는
xml환경설정파일에서 "객체를 생성"하고 실행시에는 그 객체들을 갖다 쓰겠다
즉, new는 어디서? xml파일에서 한다 그리고 그 new한것을 불러다 사용하겟다
springdptj "인자"사용시 2가지 경우를 사용
1)Setter Injection : setter 메소드를 이용하여 인자를 전달
remember : 자바빈즈 usebean, property...
.setIrum("이서준");
2)Constructor Injection (생성자 주입)
생성자에 필요 객체를 선언하고 멤버변수(Field)로써
객체를 사용하는 경우처럼 사용