Spring 게시판 만들기(1)

기록에 앞서 설명용이 아닌 복습용으로 작성하였습니다.

개발도구

  • eclipse IDE 2020-06
  • mybatis
  • 오라클
  • 톰캣 8.5

프로젝트 생성

pom.xml

<!-- database 관련 라이브러리 추가 시작 mvnrepository.com -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<!-- MyBatis : 프레임워크 (라이브러리 집합 + 디자인패턴). XML과 애너테이션을 사용하여 SQL문으로 객체들을 연결. -->
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis</artifactId>
		<version>3.5.4</version>
	</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<!-- MyBatis 프레임워크와 spring 프레임워크 사이에 교량(bridge)역할을 해줌 -->
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis-spring</artifactId>
		<version>2.0.4</version>
	</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-jdbc</artifactId>
		<version>${org.springframework-version}</version>
	</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
	<!-- 커넥션풀 사용 -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-dbcp2</artifactId>
		<version>2.7.0</version>
	</dependency>
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
	<dependency>
		<groupId>org.bgee.log4jdbc-log4j2</groupId>
		<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
		<version>1.16</version>
	</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
	<dependency>
		<groupId>com.oracle.database.jdbc</groupId>
		<artifactId>ojdbc6</artifactId>
		<version>11.2.0.4</version>
	</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
	<!-- 자동으로 자원을 관리해주고, getter/setter를 자동 처리해줌 logger.info() -->
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.18.20</version>
		<scope>provided</scope>
	</dependency>

web.xml

인코딩 필터 설정

<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.xml 설정은 Tomcat 자체의 설정임. web과 관련된 설정이므로 servlet-context.xml을 이용하여 
	설정해줘야 함 -->
<multipart-config>
	<location>D:\\upload</location> <!-- 업로드 되는 폴더 -->
	<max-file-size>10485760</max-file-size> <!-- 최대크기 10MB -->
	<max-request-size>41943040</max-request-size> <!-- 한번에 올리는 크기 40MB -->
	<file-size-threshold>20971520</file-size-threshold> <!-- 메모리 사용 20MB -->
</multipart-config>

root-context

  • DB 설정정보
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
	<property name="url" value="jdbc:oracle:thin:@localhost:1521/xe" />
	<property name="username" value="c##mytest" />
	<property name="password" value="java" />
</bean>	
<!-- 파일 업롣드 디렉토리 설정 -->
	<bean id="uploadPath" class="java.lang.String">
		<constructor-arg value="D:\\upload" />
	</bean>
<!-- mapper interface -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="basePackage" value="kr.or.ddit.dasuri.*.mapper" />
</bean>

servlet-context

  • 파일업로드를 위해
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
</beans:bean>

초기실행 오류

심각: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생
java.lang.ArrayIndexOutOfBoundsException: 20430
	at org.springframework.asm.ClassReader.<init>(Unknown Source)
	at org.springframework.asm.ClassReader.<init>(Unknown Source)
	at org.springframework.asm.ClassReader.<init>(Unknown Source)

프로젝트 처음 생성시 자바 버전이 jre1.6으로 생성 되었음 pom에도 이렇게 생성
jdk1.8로 변경후 pom.xml 에 있는 버전수정을 안해주어서 발생
폼 윗부분의 자바버전 설정 부분

<properties>
	<java-version>1.8</java-version>
	<org.springframework-version>5.2.5.RELEASE</org.springframework-version>
	<org.aspectj-version>1.6.10</org.aspectj-version>
	<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

이렇게 바꿔주니 깔끔하게 실행

좋은 웹페이지 즐겨찾기