1. 程式人生 > >SpringMVC + Spring + Mybatis + Maven整合例項

SpringMVC + Spring + Mybatis + Maven整合例項

一、說明:

目前工作中的開發框架主要是 spring ,使用的是 springMVC+ spring + spring JdbcTemplate ,最近學習了一下Mybatis、Maven這些內容,所以嘗試使用 springMVC + Spring + Mybatis + Maven來搭建一個簡單的demo ,功能很簡單,主要是對於一個表的CRUD。

專案結構圖:

image

二、環境搭建流程

① 、新建一個Maven工程,並改專案為WEB專案,創建出相應的專案結構。

步驟:New---》Project----》Maven Project

image

之後選擇Next:

image

選中 Create a simple project 選項,然後Next

image

然後點選Finish ,工程建立完成,結構如下:

image

然後,右鍵選中專案,開啟Properties選項

image

將圖中的Dynamic Web Module 選項去掉,點選OK儲存

然後再次選中專案開啟上述的選單,並且選中Dynamic Web Module 選項,對話框出現下圖的提示:

image

此時,點選下面的:Further configuration avaaliable選項 ,出現如下對話方塊

image

將web目錄改為src/main/webapp ,之後ok儲存,發現在專案的src/main.webapp下面多出了WEB-INF與META-INF檔案,同時還生成了web.xml  檔案,如下圖:

image

②、配置相關的配置檔案

1)、配置Maven的pom.xml檔案,引入整合所需要的jar包:
XML Code
<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.elgin
</groupId><artifactId>ssm_first</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><properties><!-- spring 版本號 --><spring.version>4.1.4.RELEASE</spring.version><!-- junit 版本號  --><junit.version>4.10</junit.version><!-- mybatis 版本號 --><mybatis.version>3.3.0</mybatis.version></properties><dependencies><!-- 新增spring依賴 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</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-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</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-jdbc</artifactId><version>${spring.version}</version></dependency><!-- 新增mybatis依賴 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.3</version></dependency><!-- mysql 驅動 --><dependency><groupId>Mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency><!-- 需要的log4j2日誌包依賴 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.5</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>2.5</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-1.2-api</artifactId><version>2.5</version></dependency><!-- 單元測試依賴的jar --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></dependency><dependency><groupId>org.junit4</groupId><artifactId>org.junit4</artifactId><version>4.3.1</version></dependency><!-- JSTL 標籤庫 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>com.springsource.org.apache.commons.fileupload</artifactId><version>1.2.0</version></dependency></dependencies></project>

注:我使用的是oschina的Maven倉庫,庫不匹配的時候可能部分jar包加不進來。

2)、配置 web.xml 檔案:
XML Code
<?xml version="1.0" encoding="utf-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><!-- 宣告專案的初始化引數 ,這裡聲明瞭spring配置檔案的位置 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext*.xml</param-value></context-param><!-- 加入spring支援 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 加入springMVC支援 --><!-- 
         springmvc 配置檔案預設載入路徑為:WEB-INF/[servlet-name]-servlet.xml 
         [servlet-name]為下面配置中的servlet-name元素的值,此處為springmvc
     -->
<servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc*.xml</param-value></init-param><!-- 1 代表容器初始化時載入servlet --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 專案編碼過濾器 --><filter><filter-name>encodingFileter</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>encodingFileter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- log4j2 支援 --><context-param><param-name>log4jConfiguration</param-name><param-value>/WEB-INF/classes/log4j2.xml</param-value></context-param><listener><listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class></listener><filter><filter-name>log4jFilter</filter-name><filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class></filter><filter-mapping><filter-name>log4jFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>
3 )、配置spring的配置檔案applicationContext.xml

在原始碼包src/main/resources下新建xml配置檔案:applicationContext.xml,內容如下:

XML Code
<?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" 
xmlns:tx
="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" 
xsi:schemaLocation
="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd 
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
">
<!-- 匯入properties屬性檔案 --><context:property-placeholder location="classpath:properties/datasource.properties" /><!-- 配置資料來源 --><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="username" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property><property name="url" value="${jdbc.url}"></property><property name="driverClassName" value="${jdbc.driver}"></property></bean><!-- 配置sqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property><property name="mapperLocations" value="classpath:mapper/*.xml"></property></bean><!-- 自動掃描mapper檔案對應的介面類,將其中的介面自動建立成 MapperFactoryBean --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.elgin.dao"></property></bean><!-- 配置事務管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><!-- 事務的傳播屬性 --><tx:advice id="taansactionAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="add*" propagation="REQUIRED" /><tx:method name="create*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="remove*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="get*" read-only="true" /><tx:method name="find*" read-only="true" /><tx:method name="*" read-only="true" /></tx:attributes></tx:advice><!-- 參與事務的service  --><aop:config><aop:pointcut expression="execution(* com.elgin.service.*.*(..))" id="servicePointCut" /><aop:advisor advice-ref="taansactionAdvice" pointcut-ref="servicePointCut" /></aop:config></beans>
4)、配置springMVC的配置檔案:

在原始碼包src/main/resources下新建xml配置檔案:springmvc.xml,內容如下:

XML Code
<?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"
    xmlns:p
="http://www.springframework.org/schema/p"
    xmlns:mvc
="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation
="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
">
<!-- 配置spring註解掃描的包 --><context:component-scan base-package="com.elgin"></context:component-scan><!-- 開啟註解驅動 --><!-- 
      會自動註冊DefaultAnnotationHandlerMapping 與AnnotationMethodHandlerAdapter 這兩個bean,
      所以就沒有機會再給DefaultAnnotationHandlerMapping注入interceptors屬性,無法指定攔截器。
      可以通過人工配置上面的兩個Bean,不使用 <mvc:annotation-driven />,就可以 給interceptors屬性 注入攔截器了
     -->
<mvc:annotation-driven></mvc:annotation-driven><!-- 靜態資源訪問,解決頁面無法訪問到js、img和css資料夾中的檔案的問題 --><mvc:resources location="/imgages/" mapping="/imgages/**"/><mvc:resources location="/js/" mapping="/js/**"/><mvc:resources location="/css/" mapping="/css/**"/><!--
          檢視解析器:InternalResourceViewResolver
      UrlBasedViewResolver 的子類,通常用於查詢 JSP(類 InternalResourceView)和 
      JSTL(類 JstlView,InternalResourceView 的子類)等檢視
    -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property><property name="prefix" value="/WEB-INF/jsp"></property><property name="suffix" value=".jsp"></property></bean><!-- 檔案上傳限制 --><bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="UTF-8"></property><property name="maxUploadSize" value="5242880"></property><property name="maxInMemorySize" value="20480"></property></bean></beans>
5)、配置mybatis的配置檔案:

在原始碼包src/main/resources下新建package:mybatis ,然後在mybatis包下新建mybatis的配置檔案:mybatis-config.xml, 內容如下:

XML Code
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 類的別名 --><typeAliases><typeAlias type="com.elgin.entities.User" alias="User"/></typeAliases></configuration>
6)、資料庫相關配置:

在原始碼包src/main/resourecs下新建package:properties ,然後在properties包下新建:datasource.properties ,內容如下:

jdbc.username=root
jdbc.password=root
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.driver=com.mysql.jdbc.Driver
7)、mybatis的dao介面對映檔案:

在原始碼包src/main/resourecs下新建package:mapper,然後在mapper包下新建:userMapper.xml,內容如下:

XML Code
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.elgin.dao.UserDao"><!-- 新增一條記錄 --><insert id="addUser" parameterType="User">
      insert into t_user(username,password,email,phone)values(#{username},#{password},#{email},#{phone})
   
</insert><!-- 刪除一條記錄 --><delete id="deleteUser" parameterType="Integer">
      delete from t_user where id = #{id}
   
</delete><!-- 更新一條記錄的資料 --><update id="updateUser" parameterType="User">
      update t_user set username=#{username},password=#{password},email=#{email},phone=#{phone} where id=#{id}
   
</update><!-- 查詢單條記錄 --><select id="getUser" parameterType="Integer" resultType="User">
        SELECT * FROM t_user WHERE id = #{id}
   
</select><!-- 查詢多條記錄 --><select id="getUserList" resultType="User">
       select * from t_user
   
</select></mapper>
8)、配置log4j2配置檔案:

在原始碼包src/main/resourecs下新建xml配置檔案:log4j2.xml ,內容如下:

XML Code
<?xml version="1.0" encoding="utf-8"?><Configuration status="OFF"><Appenders><!-- 輸出到檔案 --><File name="file" fileName="d:/myapp.log" append="true"><PatternLayout pattern="%d %-5p %c - %m%n" /></File><!--輸出到控制檯配置--><Console name="Console"><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss } %p %l %m%n" /></Console><!-- 日誌檔案定期整理處理 --><RollingFile name="RollingFile" fileName="logs/app.log" filePattern="d:/logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"><PatternLayout><Pattern>%d{yyyy-MM-dd HH:mm:ss } %p %l %m%n</Pattern></PatternLayout><Policies><TimeBasedTriggeringPolicy /><SizeBasedTriggeringPolicy size="20MB" /></Policies></RollingFile></Appenders><Loggers><Logger level="debug" name="com.elgin" additivity="false"><AppenderRef ref="Console" /><AppenderRef ref="file" /></Logger><Root level="warn"><AppenderRef ref="file" /><AppenderRef ref="RollingFile" /></Root></Loggers></Configuration>
9)、開發dao,service,controller,實體entitis相關程式碼:

在原始碼包src/main/java中新建如下各個包:

image

實體類User:

Java Code
package com.elgin.entities;

publicclass User {
    
   
private Integer id;
   
privateString username;
   
privateString password;
   
privateString email;
   
privateString phone;

   
public Integer getId() {
       
return id;
    }

   
publicvoid setId(Integer id) {
       
this.id = id;
    }

   
publicString getUsername() {
       
return username;
    }

   
publicvoid setUsername(String username) {
       
this.username = username;
    }

   
publicString getPassword() {
       
return password;
    }

   
publicvoid setPassword(String password) {
       
this.password = password;
    }

   
publicString getEmail() {
       
return email;
    }

   
publicvoid setEmail(String email) {
       
this.email = email;
    }

   
publicString getPhone() {
       
return phone;
    }

   
publicvoid setPhone(String phone) {
       
this.phone = phone;
    }

}

dao介面類:UserDao

Java Code
package com.elgin.dao;

import java.util.List;

import com.elgin.entities.User;

publicinterface UserDao {

   
publicint addUser(User user);

   
publicint deleteUser(Integer id);

   
publicint updateUser(User user);

   
public User getUser(Integer id);

   
public List<User> getUserList();

}

service介面類: UserService

Java Code
package com.elgin.service;

import java.util.List;

import com.elgin.entities.User;

publicinterface UserService {

   
publicint addUser(User user);

   
publicint deleteUser(Integer id);

   
publicint updateUser(User user);

   
public User getUser(Integer id);

   
public List<User> getUserList();
}

service實現類: UserServiceImpl

Java Code

相關推薦

SpringMVC + Spring + Mybatis + Maven整合例項

一、說明: 目前工作中的開發框架主要是 spring ,使用的是 springMVC+ spring + spring JdbcTemplate ,最近學習了一下Mybatis、Maven這些內容,所以嘗試使用 springMVC + Spring + Mybatis +

終極整合SpringMvc+Spring+MyBatis+Maven整合視訊教程

網路上有很多SSM+maven整合的教程,包括github我也去看過,我也嘗試著整合了好多次了,每次都會出現問題。今天成功的整合,做一下我的整合過程記錄,如果對大家有用,更好。 視訊分享連結在文章結尾有獲取方式,視訊截圖如下: 附上了整理的教學視訊,正在學習中,歡迎交流。視訊可直接

使用Idea建立ssm專案,SpringMVC+Spring+MyBatis+Maven整合

                        1.建立基本專案

SpringMvc+Spring+Mybatis+Maven整合

一、.首先建立maven工程,參考http://blog.csdn.net/dearlhb/article/details/19755345 二、.搭建ssmm的環境 2.1新增相關jar包。 1.到http://search.maven.org/網站搜尋spring核心包

shiro + springMVC + spring + mybatis (maven 整合)

1.大綱 : a.編寫pom.xml,引入各種依賴包, 以下有模板 b.編寫applicationContext.xml檔案 c.編寫springMVC-servlet.xml檔案 d.編寫spring-shiro.xml檔案 e.編寫jdbc.pro

SSM框架——(SpringMVC+Spring+MyBatis+Maven多模組)整合

SpringMVC + Spring + MyBatis + Maven多模組 SpringMVC + Spring + MyBatis Maven多模組 專案地址:https://github.com/ryiann/ssm-parent

SSM框架整合SpringMVC + Spring + MyBatis+Maven

專案目的           建立一個登陸頁面,輸入username和password,如果和資料庫對應,則跳轉的success.jsp,否則跳轉到error.jsp 專案下載 百

第一章 企業專案開發--maven+springmvc+spring+mybatis+velocity整合

說明:本系列文章主要是對自己在一家大型網際網路公司實習的過程中對所學知識的總結!參與的是實際中使用的上線專案。 一、ssmm簡介 ssmm是當下企業最常用的開發框架架構 maven:管理專案jar包,構建專案 spring:IOC容器,事務管理 springmvc:mvc框架 myBati

大型分布式項目項目實戰Springmvc+Spring+Mybatis+Maven+CMS+Redis+Solr+Linux+Nginx+單點登錄、分布式緩存、負載均衡視頻課程

edi mina img solr 技術 性能提升 登錄 rom nginx * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架構師、集群、高可用、高可擴 展、高性能、高

SSM(SpringMVC Spring Mybatis)框架整合搭建

1、新建一個web工程。 2、首先看一下整體的框架結構:   3、將ssm框架搭建所需要的jar包複製到lib目錄下 3、需要配置各個配置檔案。 1)配置web.xml檔案: <?xml version="1.0" encoding="UTF-8"?> <

Springmvc+Spring+Mybatis+Maven簡單的增刪改查

這是適合新手搭建的最簡單的SSM整合框架 這是我的下載資源網址:http://download.csdn.net/my/uploads 首先整合框架的話,至少需要了解一下這幾個框架 Spring介紹       它是為了解決企業應用開發的複雜性而建立的。Spring

使用IDEA基於Maven搭建多模塊聚合工程(springmvc+spring+mybatis整合

utf-8 組件 json處理 con mon 博客 quick 作者 處理工具 文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關註我的微信公眾號:好好學java,獲取優質學習資源。 終於有時間搞java了,今天使用IDEA基於maven搭建了多模塊聚合工程,經過了

maven整合springmvc spring mybatis

目錄結構如下: 1.pom檔案如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

Spring+SpringMVC+Mybatis+Mysql整合例項

       本文要實現Spring+SpringMVC+Mybatis+Mysql的一個整合,實現了SpringMVC控制訪問的頁面,將得到的頁面引數傳遞給Spring中的Mybatis的bean類,然後查詢Mysql資料的功能,並通過JSP顯示出來。建議可以先看筆者另

使用IDEA基於Maven搭建多模組聚合工程(springmvc+spring+mybatis整合

文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關注我的微信公眾號:好好學java,獲取優質學習資源。 終於有時間搞java了,今天使用IDEA基於maven搭建了多模組聚合工程,經過了多番嘗試,終於成功啦! 注意:這裡是在原作者的基礎上改進的版

SpringMVC+Spring+Mybatis基於Maven整合

其整合工程的目錄結構如下: 首先是pom.xml檔案中的內容: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc

Spring+SpringMVC+mybatis+easyui整合例項-----easyUI介面部分

首先簡單介紹下easyui的使用。  我們從datagrid表格入手,先顯示一個簡單的表格來說明一下easyui的使用。後面再加一個功能完整的表格 首先方法寫好,還是使用之前的例子,沒看過之前部落格的可以翻一下。  StudentDaoIF.java @Select(

SpringMVC Spring MyBatis整合配置文件

isp xmlns manage where spl return 創建 lec common 1、spring管理SqlSessionFactory、mapper 1)在classpath下創建mybatis/sqlMapConfig.xml <?xml vers

ssm整合基本配置文件(springMvc,spring,mybatis)

springmvc onf src ron 目錄 解析 jstl 什麽 註解 jar包:spring的所有包,springMvc是所有包,mybatis的所有包,數據庫驅動包,jstl包(jsp頁面需要); 基本配置文件:springMvc.xml(springMvc的核心

mybatis學習(十一)——springmvc++spring+mybatis整合

transacti servlet 自動註入 為我 reac content attribute 定義 property 做任何一個項目都以一個需求,這裏先定義一下需求:利用三大框架查詢酒店列表。 一、搭建開發環境 1、創建一個web項目 我這裏用的是 jdk1.8+to