스프링 개인프로젝트

2025.04.11 스프링 프로젝트 10일차

3452 2025. 4. 14. 11:08

오늘 작업 내용

 

프로젝트 버전 변경

 

아파치톰캣 9.0 → 10.0

스프링 5.0 → 6.0

다이나믹 웹모듈 2.5 → 5.0

 

pom.xml

더보기

<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 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.springmvc</groupId>

<artifactId>AptCommunity</artifactId>

<packaging>war</packaging>

<version>0.0.1-SNAPSHOT</version>

<name>AptCommunity Maven Webapp</name>

<url>http://maven.apache.org</url>

<dependencies>

<!-- 기존 Spring WebMVC -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>6.0.0</version>

</dependency>

 

<!-- Jakarta Servlet API (Tomcat 10 대응) -->

<dependency>

<groupId>jakarta.servlet</groupId>

<artifactId>jakarta.servlet-api</artifactId>

<version>6.0.0</version>

</dependency>

 

<!-- Jakarta JSP API -->

<dependency>

<groupId>jakarta.servlet.jsp</groupId>

<artifactId>jakarta.servlet.jsp-api</artifactId>

<version>3.0.0</version>

</dependency>

 

<!-- Jakarta EL -->

<dependency>

<groupId>jakarta.el</groupId>

<artifactId>jakarta.el-api</artifactId>

<version>5.0.1</version>

</dependency>

 

<!-- 기존 기타 의존성들 유지 -->

<dependency>

<groupId>com.google.code.gson</groupId>

<artifactId>gson</artifactId>

<version>2.10.1</version>

</dependency>

 

<dependency>

<groupId>org.json</groupId>

<artifactId>json</artifactId>

<version>20230227</version>

</dependency>

 

<!-- TM좌표 변환 -->

<dependency>

<groupId>org.locationtech.proj4j</groupId>

<artifactId>proj4j</artifactId>

<version>1.1.1</version>

</dependency>

 

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>2.15.0</version>

</dependency>

 

<!-- JDBC + MySQL -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>8.0.33</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>6.0.0</version>

</dependency>

 

<dependency>

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

<version>1.5</version>

</dependency>

 

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>6.0.0</version>

</dependency>

 

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

</dependency>

 

<dependency>

<groupId>jakarta.servlet.jsp.jstl</groupId>

<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>

<version>3.0.0</version>

</dependency>

 

<dependency>

<groupId>org.glassfish.web</groupId>

<artifactId>jakarta.servlet.jsp.jstl</artifactId>

<version>3.0.1</version>

</dependency>

 

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

<version>2.11.0</version>

</dependency>

 

</dependencies>

 

 

 

<build>

<plugins>

<plugin>

<artifactId>maven-eclipse-plugin</artifactId>

<version>2.9</version>

<configuration>

<additionalProjectnatures>

<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>

</additionalProjectnatures>

<additionalBuildcommands>

<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>

</additionalBuildcommands>

<downloadSources>true</downloadSources>

<downloadJavadocs>true</downloadJavadocs>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>2.5.1</version>

<configuration>

<source>17</source>

<target>17</target>

<compilerArgument>-Xlint:all</compilerArgument>

<showWarnings>true</showWarnings>

<showDeprecation>true</showDeprecation>

</configuration>

</plugin>

<plugin>

<groupId>org.codehaus.mojo</groupId>

<artifactId>exec-maven-plugin</artifactId>

<version>1.2.1</version>

<configuration>

<mainClass>org.test.int1.Main</mainClass>

</configuration>

</plugin>

</plugins>

</build>

</project>

 

web.xml

더보기

<?xml version="1.0" encoding="UTF-8"?>

<web-app

xmlns="https://jakarta.ee/xml/ns/jakartaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee

https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"

version="5.0">

 

<display-name>AptCommunity</display-name>

 

<!-- Spring DispatcherServlet 등록 -->

<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>

<load-on-startup>1</load-on-startup>

<multipart-config>

<!-- Multipart 업로드 경로 및 크기 제한 -->

<location>C://test</location>

<max-file-size>5242880</max-file-size> <!-- 5MB -->

<max-request-size>10485760</max-request-size> <!-- 10MB -->

<file-size-threshold>0</file-size-threshold>

</multipart-config>

</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>UTF-8</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>

sevlet context

더보기

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:webflow="http://www.springframework.org/schema/webflow-config"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

https://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

https://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/mvc

https://www.springframework.org/schema/mvc/spring-mvc.xsd

http://www.springframework.org/schema/webflow-config

https://www.springframework.org/schema/webflow-config/spring-webflow-config.xsd">

 

<!-- 컴포넌트 자동 스캔 -->

<context:component-scan base-package="com.springmvc" />

 

<!-- 어노테이션 기반 MVC 설정 -->

<mvc:annotation-driven />

 

<!-- 정적 자원 매핑 -->

<mvc:resources mapping="/resources/**" location="/resources/" />

 

<!-- JSP 뷰 리졸버 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/views/" />

<property name="suffix" value=".jsp" />

</bean>

 

<!-- 파일 업로드 처리 -->

<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"/>

 

 

<!-- DB 설정 -->

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />

<property name="url" value="jdbc:mysql://localhost:3306/aptCommunitydb?serverTimezone=Asia/Seoul" />

<property name="username" value="root" />

<property name="password" value="1234" />

</bean>

 

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource" ref="dataSource" />

</bean>

 

</beans>