티스토리 뷰
1. 스프링 설치 방법
- 1 ) Eclipse --> Help --> Eclipse Marketplace으로 들어가서 Marketplace client가 업데이트 항목에 있다면 업데이트 하기
- 2 ) Eclipse 의 설정파일(eclipse.ini)을 Sublime Text로 열어서 -vm에서 현재 설정된, JAVA 버전(테무린)이 11인지 확인해야 한다. (***)
- 3 ) 브라우저에서 Eclipse Marketplace을 검색하여, Eclipse Marketplace web site로 이동한다.
- 4 ) Eclipse Marketplace web site에서 "spring"을 검색하여 Spring Tools 3 Add-On for Spring Tools 4를 찾는다.
- 5 ) 해당 이름의 이모티콘 아래에 있는 Install 버튼을 클릭하지 말고!! 드래그&드롭 형식으로 Eclipse에 아무대서나 drop한다.
- 6 ) 그러면 설치 창이 나타나게 된다.
- 7 ) 그러면 Plug options를 선택해야 하는데, 필수로 선택하는 것을 제외한 옵션들을 모두 선택 해제한 후, Spring AOP , Spring Autowire, Spring Maven, Spring DashBoard만 선택한다.
- 8 ) 이렇게 되면 선택항목은 Required, Spring AOP , Spring Autowire, Spring Maven, Spring DashBoard로 총 4개가 선택되게 된다.
- 9 ) 다음으로 넘어가면 설치가 진행되다가 중간에 X.509 인증서 trust ? 팝업창 나오면 반드시 체크박스 check 하고 "trust"버튼 클릭한다.
- 10 ) 플러그인이 설치를 마치고 restart 팝어창 나오면, 반드시 Yes를 눌러 재시작을 한다.
- 11 ) new project > Spring > Spring Legacy Project > mvc 신규 프로젝트 생성시, 오류가 없으면 성공이다.
2. Spring MVC Project 생성 방법 및 설정 방법 (***)
- 1 ) New Project > Spring > Spring Legacy Project 선택
- 2 ) Spring MVC Project 선택
- 3 ) Project 이름 작성 후, Top-level package 입력 ( org.zerock.myapp )
- 4 ) 새로운 Maven 기반의 Spring MVC Project 생성 완료
- 5 ) pom.xml 파일 편집
- + Spring 기반의 개발을 위해서 아래의 2가지 framework 의존성 설정을 알아야 한다.
- + [ 1 ] AspectJ : 클래스파일의 바이트 코드 조작 언어
- + [ 2 ] Spring : 스프링MVC 개발을 위한 최소한의 2개 sub framework 의존성 설정
- -> spring-context, spring-webmvc
- 6 ) src/main/webapp/WEB-INF/web.xml 설정파일 설정
- + 특히 기본 2.5 버전의 top-level tag를, version 4.0 이상으로 변경해줘야 한다.
- + 이 이후에 오류나는 부분이 없나 확인해야 한다.
[ 1. 프로젝트 생성 ] (****)
[ 1 - 1. Spring Legacy Project -> Spring MVC Project 생성 후, pom.xml 파일 설정 ]
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.00000</groupId>
<artifactId>springmvc</artifactId>
<version>1.0.0-BUILD-SNAPSHOT</version>
<packaging>war</packaging>
<!-- 이 프로젝트에 대한 홍보 사이트 ( 부가적인 메타 데이터 ) -->
<name>springmvc</name>
<url>http://springmvc.example.com</url>
<description>Spring MVC project</description>
<!-- 프로젝트의 속성을 설정 -->
<properties>
<java-version>11</java-version>
<!-- <java-home>${env.JAVA_HOME}</java-home> -->
<!-- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target> -->
<org.springframework-version>5.3.21</org.springframework-version>
<org.aspectj-version>1.9.9.1</org.aspectj-version>
<org.apache.logging.log4j-version>2.17.2</org.apache.logging.log4j-version>
</properties>
<dependencies>
<!-- =============== Logging =============== -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${org.apache.logging.log4j-version}</version>
</dependency>
<!-- For Spring framework, HikariCP, DriverSpy logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${org.apache.logging.log4j-version}</version>
</dependency>
<!-- ============= Servlet/JSP ============= -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- =============== 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>
<!-- ================ 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>
<!-- =============== JDBC =============== -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8-production</artifactId>
<version>21.5.0.0</version>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>com.oracle.database.ha</groupId>
<artifactId>simplefan</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.ha</groupId>
<artifactId>ons</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>rsi</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ucp</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.xml</groupId>
<artifactId>xdb</artifactId>
</exclusion>
<exclusion>
<groupId>com.oracle.database.xml</groupId>
<artifactId>xmlparserv2</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- =============== Testing =============== -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<!-- ================ Misc ================= -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<!-- 컨텍스트 루트 -->
<finalName>/</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<release>${java-version}</release>
</configuration>
</plugin>
</plugins>
</build>
</project>
[ 1 - 2. web.xml 파일 설정 ]
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>springmvc</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<!-- ====================== -->
<!-- 공통 JSP 설정 -->
<!-- ====================== -->
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
<include-prelude>/WEB-INF/views/include.jsp</include-prelude>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
<default-content-type>text/html; charset=utf8</default-content-type>
</jsp-property-group>
</jsp-config>
<!-- =============================== -->
<!-- Web Application 예외처리방법#1 -->
<!-- =============================== -->
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/views/errors/500.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/views/errors/404.jsp</location>
</error-page>
<!-- =============================== -->
<!-- Web Application 예외처리방법#2 -->
<!-- =============================== -->
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/WEB-INF/views/errors/null.jsp</location>
</error-page>
<!-- =============================== -->
<!-- Http Session 만료시간설정(in minutes) -->
<!-- =============================== -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<init-param>
<param-name>throwExceptionIfNoHandlerFound</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
'KH 정보교육원 [ Java ]' 카테고리의 다른 글
KH 107일차 - Spring ( 설정 / 히카리CP ) (****) (0) | 2022.07.29 |
---|---|
KH 106일차 - Spring ( 의존성 주입(DI) ) (*****) (0) | 2022.07.28 |
KH 104일차 - mybatis ( 동적 SQL 처리 ) / 쿼츠 (quartz) - 스케줄링 (*****) (0) | 2022.07.26 |
KH 103일차 - myBatis마이바틱스 3 ( 검색조건 설정 / 히카리CP ) (*****) (0) | 2022.07.25 |
KH 102일차 - myBatis ( 마이 바틱스 ) (*****) (0) | 2022.07.22 |