Spring Legacy/개발 환경

자바 웹 개발 개발환경 세팅(8) Spring Project 2

Adım Kim 2020. 11. 24. 16:13

 

1. POM

 - 생성된 프로젝트에서 pom.xml 파일을 클릭합니다.

 - pom.xml 파일은 프로젝트에 필요한 객체를 모델링해서 관리하는 파일입니다.

 

2. 전자정부 표준 프레임워크

 - 구글에서 전자정부 표준프레임워크 검색

 - 표준프레임워크 소개 > 구성 > 버전별 구성 확인

 - 현재 현황에 맞춰 3.9로 구성해 보겠습니다.

 

 

- 표준프레임워크 소개 > 구성 > 오픈소스 SW현황 확인

 - 실행환경에 3.9 버전만 체크 후 버전 확인

 

 

3. POM Setting - properties

 - Spring Framework 4.3.22 버전으로 변경

 - java 1.8 버전으로 변경

 - Log4j 2.11.2 버전으로 변경

 - Slf4j 1.7.25 버전으로 변경

 - aspectj 1.9.5 버전으로 변경

 - Spring Security 4.2.11 버전으로 변경

 - jackson 2.10.0 버전 추가

 

 

4. POM Setting - Spring

 - spring-context : root-context(DB 연결)와 servlet-context(JAVA연결) 제공 라이브러리

 - spring-webmvc : springMVC, REST웹 서비스 제공 라이브러리

 - spring-test : 테스트 제공 라이브러리

 - spring-tx : 트랜잭션 제공 라이브러리

 - spring-jdbc : jdbc 제공 라이브러리 

 

		<!-- Spring -->
		<dependency>
		  	<groupId>org.springframework</groupId>
		  	<artifactId>spring-context</artifactId>
		  	<version>${org.springframework-version}</version>
		</dependency>
		<dependency>
		  	<groupId>org.springframework</groupId>
		  	<artifactId>spring-webmvc</artifactId>
		  	<version>${org.springframework-version}</version>
		</dependency>
		<dependency>
		  	<groupId>org.springframework</groupId>
		  	<artifactId>spring-test</artifactId>
		  	<version>${org.springframework-version}</version>
		</dependency>
		<dependency>
		 	 <groupId>org.springframework</groupId>
		  	<artifactId>spring-tx</artifactId>
		  	<version>${org.springframework-version}</version>
		</dependency>
		<dependency>
		  	<groupId>org.springframework</groupId>
		  	<artifactId>spring-jdbc</artifactId>
		  	<version>${org.springframework-version}</version>
		</dependency>

 

5. POM Setting - AspectJ

 - AOP를 구현하기 위해 사용, 핵심적 인기 능에 부가되어 의미를 갖는 모듈이라 볼 수 있습니다.

 - aspectjrt : aspectj 런타임 제공 라이브러리

 - aspectjweaver : aspectj 코드 생성 유틸리티 라이브러리

 

	<!-- AspectJ -->
	<dependency>
		<groupId>org.aspectj</groupId>
		<artifactId>aspectjrt</artifactId>
		<version>${org.aspectj-version}</version>
	</dependency>	
        <dependency>
         	<groupId>org.aspectj</groupId>
          	<artifactId>aspectjweaver</artifactId>
          	<version>${org.aspectj-version}</version>
        </dependency>

 

 

6.POM Setting - Logging

 - 로그를 사용하기 위해 사용합니다.

 - jcl-over-slf4j : jcl과 slf4j를 이어주는 라이브러리

 - log4j-core : log4j 제공 라이브러리

 - log4j-slf4j-impl : log4j와 slf4j를 이어주는 라이브러리

 - <exclusions> : 해당 라이브러리 제외

 - log4j-api : log4j api 제공 라이브러리 (제외-spring framework 사용 시 기본 로깅과 중복 동작할 가능성이 있음)

 - log4jdbc-log4j2-jdbc4 : 로그 출력 라이브러리

 

	<!-- Logging -->
        <dependency>
        	<groupId>org.slf4j</groupId>
      		<artifactId>jcl-over-slf4j</artifactId>
       		<version>${org.slf4j-version}</version>
       		<scope>runtime</scope>
        </dependency>
        <dependency>
     		<groupId>org.apache.logging.log4j</groupId>
        	<artifactId>log4j-core</artifactId>
            <version>${org.log4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>${org.log4j-version}</version>
            <exclusions>
              <exclusion>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
              </exclusion>
            </exclusions>
        </dependency>
        <dependency>
        <groupId>org.bgee.log4jdbc-log4j2</groupId>
 	       	<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
        	<version>1.16</version>
        </dependency>

 

7. POM Setting - Inject

 - 주입하려는 객체의 타입이 일치하는 객체를 자동으로 주입시키기 위해 사용합니다.

 - javax.inject : inject 제공 라이브러리

 

		<!-- @Inject -->
		<dependency>
			<groupId>javax.inject</groupId>
			<artifactId>javax.inject</artifactId>
			<version>1</version>
		</dependency>

 

8. POM Setting - Servlet

 - javax.servlet-api : 자바를 사용하여 웹페이지를 동적으로 생성하는 java servlet 제공 라이브러리

 - jsp -api : jsp api 제공 라이브러리 (jsp를 사용하는 것이 html환경에서 개발하는 것보다 개발하기 편리합니다.)

 - jstl : jstl 제공 라이브러리(jstl은 표준 태그 라이브러리로 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공합니다.)

 

		<!-- Servlet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

 

9. POM Setting - DB

 - mysql-connector-java : mysql 커넥터 제공 라이브러리

 - mariadb-java-client : 표준 jdbc api를 사용하여 java로 개발된 애플리케이션을 MariaDB 데이터베이스에 연결해주는 라이브러리

 - HikariCP : 데이터베이스와 커넥션 풀 관리 제공 라이브러리

 - mybatis : sql 명령어와 자바 객체를 매핑해주는 기능 제공 라이브러리

 - mybatis-spring : mybatis와 spring을 이어주는 라이브러리

 

	<!--  DB  -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>8.0.21</version>
	</dependency>
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>2.6.2</version>
        </dependency>
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.3</version>
        </dependency>

 

10. POM Setting - Util

 - jackson-databind : java object > json 또는 json > java object로 변환을 제공하는 라이브러리

 - jackson-dataformat-xml : json을 xml 기반으로 변환을 제공하는 라이브러리

 

        <!-- Util -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${fasterxml.jackson-version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>${fasterxml.jackson-version}</version>
        </dependency>

 

11. POM Setting - Security

 - spring security를 사용하기 위한 라이브러리

 

        <!-- Security -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>

 

12. POM Setting - Test

 - junit : 테스트 제공 라이브러리

 

		<!-- Test -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency> 

 

13. POM Setting - <bulid>

 - build > plugins > plugin > maven-complier-plugin > configuration에서 source버전 1.8, target버전 1.8로 변경

 

 

14. Version Setting

 - 프로젝트 우클릭 > properties > projectFacets > dynamic web module > 3.1 ver 

                                                                                             > java > 1.8 ver

 

 - JRE System Libaray 우클릭 > Build Path > configure build path > JRE System Library > 1.8 ver