Tag Archives: spring

Spring 2.5 어노테이션 기반 개발을 위한 Blank 프로젝트 생성

스프링 개발을 위한 준비를 해봅시다. 이 자료는 개인적인 학습 용도로 사용하시고, 회사에서의 사용은 회사의 정해진 설정 방법에 따라 사용하시기 바랍니다

사용자 삽입 이미지이클립스를 실행했을때의 모습입니다. 우측과 하단의 메뉴는 자리가 부족하여 일단 숨겨놨습니다.

사용자 삽입 이미지File – New – Project 를 선택합니다. Wizards에 dy까지만 쳐보시면 Dynamic Web Project라고 있습니다.

사용자 삽입 이미지프로젝트를 생성합니다. Project name에 적절한 이름을 정해주고 Target Runtime에는 Apache Tomcat 6를 선택합니다. 없다면 오른쪽의 New를 선택하여 Tomcat을 추가해 줍시다. 이후 Finish를 누릅니다. 세부 설정을 하실려면 Next를 누르시면 됩니다.

사용자 삽입 이미지보시는것과 같이 프로젝트가 생성되었습니다. Dynamic Web Project의 경우 웹 개발을 위한 대부분의 요소가 자동 생성됩니다.

사용자 삽입 이미지프로젝트에 오른쪽 클릭 후 Spring Tools – Add Spring Project Nature를 선택하여 Spring IDE설정을 추가합니다.

WEB-INF 파일 밑에 다음의 디렉토리들을 생성합시다.


  • conf : 스프링의 컨텍스트 설정 파일을 분리하여 모아두기 위한 디렉토리

  • jsp : MVC 프로그래밍에서 중요한 View인 JSP를 모아두기 위한 디렉토리, 다른 View를 사용한다면 다른 이름을 추천

  • log : log4j 설정 파일을 넣어두기 위한 디렉토리

WE-INF/lib 디렉토리에 필요한 라이브러리들을 추가해 봅시다. 지금 적는 모든 파일은 spring-dependencies 패키지에 포함되어있습니다.
[code]antlr-2.7.6.jar
asm-2.2.3.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
aspectjrt.jar
aspectjweaver.jar
cglib-nodep-2.1_3.jar
commons-beanutils.jar
commons-codec.jar
commons-collections.jar
commons-dbcp.jar
commons-digester.jar
commons-discovery.jar
commons-fileupload.jar
commons-httpclient.jar
commons-io.jar
commons-lang.jar
commons-logging.jar
commons-pool.jar
commons-validator.jar
jstl.jar
junit-4.4.jar
log4j-1.2.15.jar
spring.jar
spring-agent.jar
spring-aspects.jar
spring-test.jar
spring-web.jar
spring-webmvc.jar
standard.jar[/code]
더 필요하신것을 추가하시거나 빼셔도 됩니다. 다음으로는 중요한 설정 파일들을 설정해 봅시다.

/WEB-INF/web.xml
[code]<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:web=”http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” id=”WebApp_ID” version=”2.5″>


 <!–
  GENERAL CONFIGURATIONS
  –>
 <display-name>SpringBlank</display-name>
 
 <!–
  REQUEST CHARSET ENCODING CONFIGURATIONS
  –>
 <filter>
  <filter-name>Request Encoding</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
 </filter>


 <filter-mapping>
  <filter-name>Request Encoding</filter-name>
  <servlet-name>spring</servlet-name>
 </filter-mapping>
 
 <!–
  SPRING FRAMEWORK DISPATCHER SERVLET CONFIGURATIONS
  –>
 <servlet>
  <servlet-name>spring</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>2</load-on-startup>
 </servlet>


 <servlet-mapping>
  <servlet-name>spring</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>


 <!–
  CONTEXT LOADER CONFIGURATIONS
  –>
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/conf/**-context.xml</param-value>
 </context-param>


 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>


 <!–
  LOG4J LOGGER CONFIGURATIONS
  –>
 <context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>/WEB-INF/log/log4j.properties</param-value>
 </context-param>


 <listener>
  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
 </listener>
 
</web-app>[/code]

/WEB-INF/spring-servlet.xml
[code]<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”http://www.springframework.org/schema/beans
 xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance
 xmlns:aop=”http://www.springframework.org/schema/aop
 xmlns:context=”http://www.springframework.org/schema/context
 xmlns:tx=”http://www.springframework.org/schema/tx
 xmlns:util=”http://www.springframework.org/schema/util
 xsi:schemaLocation=”http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd“>


 <!–
  ANNOTATION CONTEXT DEFINITION
  –>
 <context:component-scan base-package=”*”/>
 <context:annotation-config/>
 <context:spring-configured/>
 
 <!–
  ASPECT ORIENTED PROGRAMMING(ASPECT-J) DEFINITION
  –>
 <aop:aspectj-autoproxy/>
 
 <!–
  VIEW RESOLVER CONFIGURATIONS
  –>
 <bean id=”viewResolver” class=”org.springframework.web.servlet.view.InternalResourceViewResolver”>
  <property name=”viewClass” value=”org.springframework.web.servlet.view.JstlView”/>
  <property name=”prefix” value=”/WEB-INF/jsp/”/>
  <property name=”suffix” value=”.jsp”/>
 </bean>
 
</beans>[/code]

/WEB-INF/log/log4j.properties
[code]# LOG LEVEL : FATAL > ERROR > WARN > INFO > DEBUG


##################################################################################################
#                                         ROOT LOGGER CONFIGURATION                              #
##################################################################################################
log4j.rootLogger=INFO,ROOT


log4j.appender.ROOT=org.apache.log4j.ConsoleAppender
log4j.appender.ROOT.layout=org.apache.log4j.PatternLayout
log4j.appender.ROOT.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]\t%p\t[%F.%M():%L]\t%m%n


##################################################################################################
#                                   SPRING FRAMEWORK LOGGER CONFIGURATION                        #
##################################################################################################
log4j.logger.org.springframework=INFO, SPRING
log4j.additivity.org.springframework=false
log4j.appender.SPRING=org.apache.log4j.ConsoleAppender
log4j.appender.SPRING.layout=org.apache.log4j.PatternLayout
log4j.appender.SPRING.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]\t%p\t[%F.%M():%L]\t%m%n[/code]

이로써 무언가를 개발해보기 위핸 블랭크 프로젝트가 생성되었습니다. 어노테이션 기반의 MVC 프로젝트 및 AOP적용이 가능합니다.

Spring 개발을 위한 Eclipse 개발 환경 구성하기

오늘은 순수하게 학습의 목적으로 Spring Framework를 이용한 개발 환경 구성하기를 해보겠습니다.

제가 간단하게나마 구성해 볼려는 것은 다음과 같습니다. 순수 공부목적의 설치이며 개발환경으로 사용하실 분은 각자의 회사 실정에 맞게 설치하시면 됩니다.



  • Eclipse IDE를 사용
  • Tomcat WAS/WEB Server를 사용
  • UTF-8 기반 개발환경
  • SVN 및 기타 버그 리포팅 시스템 연동
  • Spring Framework를 이용한 개발을 위한 구성
  • MySQL Database 기반 개발

1. JAVA Development Kit(JDK) 설치
http://java.sun.com/javase/downloads 에서 다운 받을 수 있습니다. 현재 JDK 6 Update 6가 최신버젼입니다.
사용자 삽입 이미지


설치시에 JAVA DB는 필요없겠네요.


사용자 삽입 이미지
시작 – 실행 – “cmd” – “java -version” 을 타이핑하여 위와같이 버젼이 정상적으로 나오는지 확인합시다.


2. Apache Tomcat 설치
http://tomcat.apache.org 에서 다운 받을 수 있습니다. 현재 가장 최신버젼은 6.0.16입니다.
사용자 삽입 이미지


톰캣은 Minimum으로 설치하셔도 괜찮습니다
.

사용자 삽입 이미지
공부의 목적이니 8080이 아닌 80을 쓰도록 하겠습니다. 관리자 암호는 1로 했습니다.

사용자 삽입 이미지
중요한건 여기서 톰캣을 실행하시면 안됩니다. 톰캣은 이클립스에서 연동하여 사용할 것입니다.


사용자 삽입 이미지
시작 – 설정 – 제어판 – 관리도구 – 서비스 에서 Apache Tomcat을 찾아 사용안함으로 바꿉니다.


3. Eclipse IDE 설치
http://www.eclipse.org/downloads 에서 다운 받습니다. 웹개발을 위해서 Eclipse IDE for Java EE Developers를 다운받으시면 됩니다.

압축되어있으며 그냥 압축을 풀기만 하시면 됩니다. 저는 압축을 풀어 C:\eclipse로 설치하였습니다.

eclipse.ini 파일을 열어 설정을 다음과 같이 변경합니다.

[code]-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize=256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xverify:none
-XX:+UseParallelGC
-XX:PermSize=64M
-XX:MaxPermSize=128M
-XX:MaxNewSize=64M
-XX:NewSize=64M
-Xms128m
-Xmx512M[/code]

4. Eclipse 주요 플러그인 설치
Eclipse 자체에서 간단하게 플러그인을 추가 할 수 있습니다. Eclipse를 실행한 후 Help – Software Updates – Find and Install – Search for new features to install 을 선택하여 New Remote Site를 눌러 다음을 추가합니다.

Name : SpringIDE
URL : http://springide.org/updatesite

Name : Subversive
URL : http://download.eclipse.org/technology/subversive/0.7/update-site/
URL2 : http://www.polarion.org/projects/subversive/download/update-site/

Name : SubversiveConnector
URL : http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/
* 위의 커넥터만 설치하셔도 됩니다. 설치시에 커넥터와 JavaHL만 선택하셔서 설치하면 잘 됩니다.

사용자 삽입 이미지

위의 세가지를 추가한 후 Mylin, Mylin Extras, SpringIDE, Subversive, SubversiveConnector를 선택하여 Next를 누릅니다.

사용자 삽입 이미지

이후 확인창이 뜨는데 AJDT를 포함하고 SpringIDE의 Dependencies(이전 버젼의 Eclipse와 호환성을 위해 필요)는 제외합니다.


추가로 Log4E를 설치하겠습니다. Log4J를 위한 로깅 구문을 손쉽게 핸들링 할 수 있습니다.

http://log4e.jayefem.de/ 에 무료 버젼을 제공하고 있습니다. http://log4e.jayefem.de/update 를 제공하고는 있으나 유료버젼만이 지원되며 무료버젼은 따로 다운받아 Eclipse설치 폴더에 덮어써야 합니다.

5. Eclipse UTF-8 기반으로 설정
Eclipse를 실행 후 Window – Preferences… 에 들어갑니다.

사용자 삽입 이미지

General – Content Types 이하 모든 파일의 Default encoding을 UTF-8로 변경합니다. 바로 하위 적용이 안되므로 일일이 하위로 내려가며 모두 설정해 주시면 됩니다.

사용자 삽입 이미지
Web and XML 밑의 모든 파일에 대해 Encoding을 UTF-8로 변경해 줍니다.


사용자 삽입 이미지
이건 덤이긴 한데 스펠링 체크 기능이 영어밖에 지원안하고 또한 별로 무의미한 기능이므로 끄겠습니다.


6. Spring Framework 및 준비물 다운로드
http://www.springframework.org/download 에서 스프링 프레임워크 최신판을 받겠습니다. 현재 2.5.4버젼이 최신버젼입니다. spring-framework-2.5.4-with-dependencies.zip 를 받으면 필요한 모든 파일이 들어있습니다.

http://dev.mysql.com/downloads/connector/j 에서 MySQL Connector를 다운 받습니다. 현재 5.1.6버젼이 최신버젼입니다. mysql-connector-java-5.1.6.zip 를 받으시면 됩니다.

7. 마치며
앞으로 좀더 필요한 이클립스 설정법들과 지금의 준비를 가지고 개발하는것들을 계속해서 강좌로 올리겠습니다.
또한 Mylin을 이용하여 Trac과 Bugzilla등과 연동하는것을 해볼려고 합니다. Spring을 완전 처음 접하시는 분들께 도움이 되길 바랍니다.

위에서 정리한 설정을 적용한 설정 파일을 공유합니다. UTF-8환경 외에는 손대지 않았으므로 깔끔하게 시작하실 수 있을것입니다. File – Import – General – Preferences 로 임포트 하시면 됩니다.
1190579041.epf