SpringProgramming.zip 파일을 c:\SpringProgramming 폴더를 만들어 압축을 풀어준다.
apache,tomcat, eclipse, jdk1.8, sqldeveloper 프로그램이 존재함.
복사하여 소스를 작성하지 말고 직접 코딩하여 실습 참여 요청.
이클립스 수행
Window > Show View > Problems 선택하여 오류사항 확인
Maven이 설정되어 있으면 PJT 선택 후, 마우스 오른쪽 > Maven > Update Project 선택하여 다시 update 하면 됨
그래도 안되면, C:\SpringProgramming\add_repo_lib\add.bat 파일을 수행함. JDK의 bin 이 PATH에 설정되어 있어야 함.
# Maven 관련 jar 파일을 설치함
../apache-maven-3.5/bin/mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar
- mvn에 ojdbc6.jar 파일을 groupid, artifactid, version, 확인
- oracle 버젼은 오라클 설치 폴더 C:\Oracle\product\11.2.0\dbhome_1\jdbc\readmme.txt 파일 상단에 명시됨
Oracle JDBC Drivers release 11.2.0.1.0 production Readme.txt
==========================================================
Oracle 관련 warning은 추후 해결 예정.
기본브라우저는 chrome 으로 함.
Server가 있으면 삭제하고 다시 생성함. (Project Explorer과 Server View에서 확인)
http://loalhost:8080/myapp/
context는 myapp 이다.
E > Properties > WebServer Setting > context > Spring PJT명과 동일하게 변경 => 'SpringMVCProject'
S > Tomcat 선택 > 마우스 오른쪽 > Add & Remove 선택하여 기존 것 remove 하고 새로 PJT 선택하여 추가하고 완료함
서버 run > 크롬이 수행되고 Context가 변경된것을 확인함.
Eclipse Marketplace에서 STS, Properties Editor 설치
Properties Editor : *.properties 파일은 ascii 파일임. UTF-8로 해야 한글이 깨지지 않고 관리하게 됨.
Ch01. 개발 환경 구축
PJT 생성
File > New > Projects > Spring - Spring Legacy Project > SpringMVC Project (template 선택) > 'Next' > WebApplication Package 이름 : 사용할 도메인 이름 입력. com.mycompany.myapp
결정된 JDK, WAS, Servlet Verion 설정해야 함.
프로젝트 설명
SpringMVCProject01
-- Deployment Descriptor : /SpringMVCProject01/src/main/webapp/WEB-INF/web.xml 내용. Servlet 2.5 버젼을 사용함.
-- Spring Elements : /SpringMVCProject01/src/main/webapp/WEB-INF/spring/root-context.xml, /SpringMVCProject01/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 파일에 대한 내용
-- Java Resources : /SpringMVCProject01/src 밑에 있는 java(*.java) 파일과 resource(*.properties, *.xml)파일 내용. 하나의 war로 생성시 WEB-INF/classes 폴더에 통합됨 > A
-- JavaScript Resources
-- Deployed Resources : /SpringMVCProject01/src/main/webapp 폴더 내용
PJT선택 후 > 마우스 오른쪽 Export - WAR File 선택하여 파일을 생성하면 아래와 같은 구조로 되어 있음.
WebApplication (WAR~.war)
- [common] ┐ URL로 접근 가능
- [resources] : css, javascript, img 등 저장 ┘
- [WEB-INF] ─ URL로 접근 불가
- [classes] < A
- [lib]
- web.xml : DD
[Dependencies] pom.xml 파일의 dependices 파일에 정의된 내용 확인 가능함.
pom.xml 내용
com.mycompany
myapp : context
SpringMVCProject01
war : 최종적인 산출물 파일
1.0.0-BUILD-SNAPSHOT : lib로 만들기 전 다른 PJT에 참조하고자 할때, Version 별로 참조한 PJT에서 다운받을 수 있음.
: 변수 태그 정의 <변수명>변수값변수명>
1.6
3.1.1.RELEASE : spring f/w 버젼 확인
1.6.10 :
1.6.6 : log4j
==> 버전의 내용을 확인해서 아래와 같이 변경함
1.8
5.0.8.RELEASE
1.9.1
1.7.25
: 의존성 lib 정의. [Dependencies], [Dependency Hierarchy] 에서 확인 가능함.
org.springframework
spring-context
${org.springframework-version}
: 제외해라. commons-logging 을 사용하지 않고 log4j를 사용하겠다는 것임.
commons-logging
commons-logging
runtime : 해당 파일을 언제까지 사용할것인가 정의. runtime이면 최종 산출물까지 적용함.
: Servlet 버젼. artifactId가 변경됨.
javax.servlet
javax.servlet-api : http://search.maven.org에서 'javax.servlet-api'로 검색 (이름이 변경됨)
4.0.1
provided : 개발하는 동안만 추가
: JSP 버젼. artifactId가 변경됨.
javax.servlet.jsp
javax.servlet.jsp-api
2.1
provided
: JSTL 버젼
javax.servlet
jstl
1.2
: 단위테스트
junit
junit
4.7
test : 테스트 까지는 추가.사용되고, 최종산출물에서는 제외됨.
: Effective POM은 수정이 안되니 중앙저장소가 아닌 다른 저장소 저장하려면, Repository 를 추가함 URL을 넣어주면 됨.중앙+개별
false
central
Central Repository
https://repo.maven.apache.org/maven2
maven-eclipse-plugin
2.9
org.springframework.ide.eclipse.core.springnature
org.springframework.ide.eclipse.core.springbuilder
true
true
org.apache.maven.plugins
maven-compiler-plugin
2.5.1
1.6
1.6
-Xlint:all
true
true
org.codehaus.mojo
exec-maven-plugin
1.2.1
org.test.int1.Main
Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/")
public String home() {
logger.info("Welcome home!");
return "home"; // View이름. spring 2.5 버젼에서는 ModelandView 형태로 전달함. 현재는 spring 형태로 전달.
}