English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

springmvc mybatis 통합 구성 예제

간단함의美, springmvc, mybatis는 좋은 간단한 통합 솔루션으로, 일반 프로젝트 요구사항을 충족할 수 있습니다. 여유 시간에 프로젝트 설정 파일을 공유하여 모두가 참고할 수 있도록 합니다:

1기본적으로 우리는 다음과 같은 pom 의존성을 확인해 보겠습니다:

<!-- spring -->
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>${spring.version}</version>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-beans</artifactId>
  <version>${spring.version}</version>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>${spring.version}</version>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-tx</artifactId>
  <version>${spring.version}</version>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>${spring.version}</version>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>${spring.version}</version>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>${spring.version}</version>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>${spring.version}</version>
  <scope>test</scope>
 </dependency>
 <!-- mybatis 패키지 -->
 <dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis/artifactId>
  <version>3.2.8</version>
 </dependency>
 <!--mybatis 스프링 플러그인 -->
 <dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.2.2</version>
 </dependency>
 <!-- mysql 연결 -->
 <dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.34</version>
 </dependency>
 <!-- 데이터 소스 -->
 <dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.0.12</version>
 </dependency>
 <dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjweaver</artifactId>
  <version>1.8.4</version>
 </dependency>
 <!-- log4j -->
 <dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
 </dependency>
 <!-- servlet -->
 <dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>3.0-alpha-1</version>
 </dependency>
 <dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
 </dependency>
 <!-- json -->
 <dependency>
  <groupId>org.codehaus.jackson</groupId>
  <artifactId>jackson-mapper-asl</artifactId>
  <version>1.9.13</version>
 </dependency>
 <dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.3</version>
 </dependency>
 <dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
  <version>${jackson.version}</version>
 </dependency>
 <dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>${jackson.version}</version>
 </dependency>
 <dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>${jackson.version}</version>
 </dependency>
 <!-- 파일 업로드 -->
 <dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.4</version>
 </dependency>
 <dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.2.2</version>
 </dependency>

스프링이 선택한 것은4.1.4버전에 따라 시스템 필요에 따라 적합한 버전을 선택할 수 있습니다.

2. 관련 구성 파일:

    a)spring.xml

<?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:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-4.1.xsd">
 <!--구성 속성 파일을 포함합니다 -->
 <context:property-placeholder location="classpath:config.properties" />
 <!--자동으로 @Service를 포함한 스프링 빈으로 주입합니다 -->
 <context:component-scan base-package="com.demo.report.web.service" />

    b)spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context-4.1.xsd 
 http://www.springframework.org/schema/mvc 
 http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
 <!-- 자동으로 controller 패키지 하위 모든 클래스를 스캔하여, @Controller에 의해 bean이 주입된 경우 -->
 <context:component-scan base-package="com.demo.report.web.controller" />
 <!-- IE가 AJAX를 실행할 때, JSON이 다운로드 파일로 표시되지 않도록 -->
 <bean id="mappingJacksonHttpMessageConverter"
 class="org.springframework.http.converter.json.MappingJackson"2HttpMessageConverter">
 <property name="supportedMediaTypes">
  <list>
  <value>text/html;charset=UTF-8</value>
  </list>
 </property>
 </bean>
 <!-- Spring MVC의 애노테이션 기능을 시작하여 요청과 애노테이션 POJO의 매핑을 완료 -->
 <bean
 class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
 <property name="messageConverters">
  <list>
  <!-- json 변환기 -->
  <ref bean="mappingJacksonHttpMessageConverter" />
  </list>
 </property>
 </bean>
 <!-- 모델 뷰 이름의 해석에 대한 처리, 즉 모델 뷰 이름에 전후缀를 추가 -->
 <bean
 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="viewClass"
  value="org.springframework.web.servlet.view.JstlView" />
 <property name="prefix" value="" />
 <property name="suffix" value=""}} />
 </bean>
 <!-- 다중 파일 업로드 설정 
 <bean id="multipartResolver"
 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 <property name="defaultEncoding">
  <value>UTF-8</value>
 </property>
 <property name="maxUploadSize">
  <value>32505856</value>
 </property>
 <property name="maxInMemorySize">
  <value>4096</value>
 </property>
 </bean>-->
</beans>

  c)spring-mybatis.xml

<?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:tx="http://www.springframework.org/schema/tx"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xsi:schemaLocation="
 http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 
 http://www.springframework.org/schema/tx 
 http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
 http://www.springframework.org/schema/aop 
 http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
 ">
 <!-- 데이터 소스 설정 사용하는 것은 Druid 데이터 소스 -->
 <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
 init-method="init" destroy-method="close">
 <property name="url" value="${jdbc.url}" />
 <property name="username" value="${jdbc.username}" />
 <property name="password" value="${jdbc.password}" />
 <!-- 초기 연결 크기 -->
 <property name="initialSize" value="0" />
 <!-- 연결 풀 최대 사용 가능 연결 수 -->
 <property name="maxActive" value="20" />
 <!-- 연결 풀의 최소 비활성화된 연결 -->
 <property name="minIdle" value="0"> />
 <!-- 연결을 얻는 데 최대 기다림 시간을 설정합니다 -->
 <property name="maxWait" value="60000" />
 <property name="poolPreparedStatements" value="true"> />
 <property name="maxPoolPreparedStatementPerConnectionSize">
  value="33" />
 <!-- 유효한 SQL을 검사하는 데 사용됩니다 -->
 <property name="validationQuery" value="${validationQuery}"> />
 <property name="testOnBorrow" value="false"> />
 <property name="testOnReturn" value="false"> />
 <property name="testWhileIdle" value="true"> />
 <!-- 평균적으로 얼마나 자주 검사를 수행할지 설정합니다. 검사는 필요한 비활성화된 비활성화된 연결을 단위 밀리초로 설정합니다 -->
 <property name="timeBetweenEvictionRunsMillis" value="60000" />
 <!-- 연결이 풀에서 최소 생존 시간을 설정합니다. 단위는 밀리초입니다 -->
 <property name="minEvictableIdleTimeMillis" value="25200000" />
 <!-- removeAbandoned 기능을 활성화합니다 -->
 <property name="removeAbandoned" value="true"> />
 <!-- 1800초, 즉30분 -->
 <property name="removeAbandonedTimeout" value="1800" />
 <!-- abandoned 연결을 닫을 때 오류 로그를 출력합니다 -->
 <property name="logAbandoned" value="true"> />
 <!-- 데이터베이스를 모니터링합니다 -->
 <property name="filters" value="mergeStat"> />
 </bean>
 <!-- myBatis 파일 -->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 <property name="dataSource" ref="dataSource" />
 <!-- entity 디렉토리를 자동으로 스캔하여 Configuration.xml에서의 수동 설정을 줄입니다 -->
 <property name="mapperLocations" value="classpath:com"/demo/report/web/mapper/*.xml" />
 </bean>
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 <property name="basePackage" value="com.feidai.report.web.mapper" />
 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
 </bean>
 <!-- 트랜잭션 관리자 설정 -->
 <bean id="transactionManager"
 class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
 <property name="dataSource" ref="dataSource" />
 </bean>

    d)web.xml

<display-name>springmvc_mybatis_demo</display-name>
 <context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>classpath:spring.xml,classpath:spring-mybatis.xml</param-value>
 </context-param>
 <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>
 <listener
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <!-- 스프링 메모리 누수 방지 리스너 -->
 <listener
 <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
 </listener>
 <servlet>
 <description>스프링 MVC 서블릿</description>
 <servlet-name>rest</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
  classpath:spring-mvc.xml
  </param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>rest</servlet-name>
 <url-pattern>/</url-pattern>
 </servlet-mapping>
 <servlet>
 <servlet-name>DruidStatView</servlet-name>
 <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>DruidStatView</servlet-name>
 <url-pattern>/druid/*</url-pattern>
 </servlet-mapping>
 <!-- session 초과 시간을 설정합니다. 단위는 분입니다. -->
 <session-config>
 <session-timeout>30</session-timeout>
 </session-config>
 <welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>

druid 데이터 소스를 사용했으며, 웹에서의 상세 구성은 코드를 참조하세요.

 이것이 springmvc mybatis 통합 구성 자료 정리입니다. 앞으로도 관련 자료를 계속 추가할 예정입니다. 많은 관심과 지원에 감사합니다!

선언: 이 문서의 내용은 인터넷에서 가져왔으며, 저작권은 원저자에게 있으며, 인터넷 사용자가 자발적으로 기여하고 업로드한 내용입니다. 이 사이트는 소유권을 가지고 있지 않으며, 인공 편집을 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 위반이 의심되는 내용이 있으면 이메일로 notice#w에 보내 주세요.3codebox.com에 이메일을 보내면 (#을 @으로 변경하세요) 신고를 하고 관련 증거를 제공하세요. 사실이 확인되면, 사이트는 즉시 위반 내용을 삭제합니다.