spring4+springmvc+mybatis+maven框架搭建

来源:互联网 发布:unity3d沙盒 编辑:程序博客网 时间:2024/06/11 09:41

一、准备

  • JAVA环境JDK1.7,官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html


  • Tomcat环境Tomcat7,官方下载地址:http://tomcat.apache.org/download-70.cgi


  • Maven环境,官方下载地址:http://maven.apache.org/download.cgi


  • Eclipse,官方下载地址:http://www.eclipse.org/downloads/


  • Eclipse插件springsource-tool-suite

  • Eclipse插件mybatis generator

二、JDK安装与环境变量配置
教程:http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html

三、Tomcat安装

 
四、Maven安装与eclipse配置
教程:http://jingyan.baidu.com/article/295430f136e8e00c7e0050b9.html

五、Eclipse上安装springsource-tool-suite
教程1:http://jingyan.baidu.com/album/1612d5005fd087e20f1eee10.html?picindex=1
教程2:http://jingyan.baidu.com/album/1612d5005fd087e20f1eee10.html?picindex=4
springsource-tool-suite所有版本下载地址:http://spring.io/tools/sts/all

六、创建test数据库,lgb_bigdata_user用户表
test数据库,默认已经创建
创建lgb_bigdata_user数据表
CREATE TABLE `lgb_bigdata_user` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `username` varchar(20) DEFAULT '' COMMENT '用户名',  `password` varchar(50) DEFAULT '' COMMENT '用户密码',  `email` varchar(50) DEFAULT '' COMMENT '邮箱地址',  `createtime` datetime DEFAULT NULL COMMENT '注册时间',  `updatetime` datetime DEFAULT NULL COMMENT '修改时间',  `status` tinyint(1) unsigned zerofill DEFAULT '0' COMMENT '状态 0禁用1正常',  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

七、mybatis generator eclipse插件的安装
插件下载地址:http://download.csdn.net/detail/alex_bean/9548260
教程:http://jingyan.baidu.com/album/9faa7231506ed8473c28cbee.html?picindex=1
mybatisGenrator.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><context id="DB2Tables"targetRuntime="MyBatis3"><commentGenerator><property name="suppressDate" value="true"/><property name="suppressAllComments" value="true"/></commentGenerator><jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/test" userId="root" password=""></jdbcConnection><javaModelGenerator targetPackage="com.lgbproject.bigdata.user.model" targetProject="springmvctest\src\main\java"><property name="enableSubPackages" value="true"/><property name="trimStrings" value="true"/></javaModelGenerator><sqlMapGenerator targetPackage="com.lgbproject.bigdata.user.dao.mapper" targetProject="springmvctest\src\main\java"><property name="enableSubPackages" value="true"/></sqlMapGenerator><javaClientGenerator type="XMLMAPPER" targetPackage="com.lgbproject.bigdata.user.dao" targetProject="springmvctest\src\main\java"><property name="enableSubPackages" value="true"/></javaClientGenerator><table tableName="lgb_bigdata_user" domainObjectName="LgbBigdataUserEntity" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table></context></generatorConfiguration>


八、eclipse搭建动态WEB项目
  1. 创建项目

    File -> New -> Dynamic Web project  填写项目名称 project name: springmvctest


    next -> remove src  -> add Folder -> src/main/java、src/main/resource、src/test/java、src/test/resource


    next -> 勾选Generate web.xml deployment descriptor -> finish

    下图springmvctest项目结构图

  2. 创建maven配置文件pom.xml

    springmvctest -> 右键 -> Configure -> Convert to Maven Project -> finish


    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/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>springmvctest</groupId>  <artifactId>springmvctest</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>war</packaging>  <name>springmvctest</name>  <description>springmvctest</description>    <properties>    <!-- spring版本号 -->    <spring.version>4.3.0.RELEASE</spring.version>    <!-- mybatis版本号 -->    <mybatis.version>3.2.6</mybatis.version>  <org.aspectj-version>1.8.7</org.aspectj-version>  </properties>    <dependencies>      <!-- spring 核心功能包    spring-aop-4.3.0.RELEASE.jar    spring-beans-4.3.0.RELEASE.jar    spring-context-4.3.0.RELEASE.jar    spring-core-4.3.0.RELEASE.jar    spring-expression-4.3.0.RELEASE.jar    commons-logging-1.2.jar    --><dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-context</artifactId>      <version>${spring.version}</version></dependency><!-- spring 附加功能包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</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><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>${mybatis.version}</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>    <!-- mybatis/spring包 -->      <dependency>          <groupId>org.mybatis</groupId>          <artifactId>mybatis-spring</artifactId>          <version>1.2.2</version>  </dependency>  <!-- Servlet --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>  <!-- Mysql官方驱动包 -->      <dependency>          <groupId>mysql</groupId>          <artifactId>mysql-connector-java</artifactId>          <version>5.1.30</version>      </dependency>        <!-- 数据库缓存池 -->    <dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.1</version></dependency>        <!-- junit -->    <dependency>          <groupId>junit</groupId>          <artifactId>junit</artifactId>          <version>4.12</version>          <!-- 表示开发的时候引入,发布的时候不会加载此包 -->          <scope>test</scope>      </dependency>    <!-- slf4j --><dependency>        <groupId>org.slf4j</groupId>        <artifactId>jcl-over-slf4j</artifactId>        <version>1.5.8</version>    </dependency>    <dependency>        <groupId>org.slf4j</groupId>        <artifactId>slf4j-api</artifactId>        <version>1.5.8</version>    </dependency>    <dependency>        <groupId>org.slf4j</groupId>        <artifactId>slf4j-log4j12</artifactId>        <version>1.5.8</version>    </dependency>    <dependency>        <groupId>log4j</groupId>        <artifactId>log4j</artifactId>        <version>1.2.14</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.1.41</version>  </dependency>          <!-- 上传组件包 -->      <dependency>          <groupId>commons-fileupload</groupId>          <artifactId>commons-fileupload</artifactId>          <version>1.3.1</version>      </dependency>      <dependency>          <groupId>commons-io</groupId>          <artifactId>commons-io</artifactId>          <version>2.4</version>      </dependency>      <dependency>          <groupId>commons-codec</groupId>          <artifactId>commons-codec</artifactId>          <version>1.9</version>      </dependency>        <!-- netty5 alpha2 -->    <dependency>    <groupId>io.netty</groupId>    <artifactId>netty-all</artifactId>    <version>5.0.0.Alpha2</version></dependency>          </dependencies>      <build>    <plugins>      <plugin>        <artifactId>maven-compiler-plugin</artifactId>        <version>3.3</version>        <configuration>          <source>1.7</source>          <target>1.7</target>        </configuration>      </plugin>      <plugin>        <artifactId>maven-war-plugin</artifactId>        <version>2.6</version>        <configuration>          <warSourceDirectory>WebContent</warSourceDirectory>          <failOnMissingWebXml>false</failOnMissingWebXml>        </configuration>      </plugin>    </plugins>  </build></project>
  3. 数据库连接池配置文件,src/main/resource内创建jdbc.properties
    driver=com.mysql.jdbc.DriverjdbcUrl=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8user=rootpassword=123456idleConnectionTestPeriod=60maxIdleTime=240initialPoolSize=100acquireIncrement=5maxPoolSize=500minPoolSize=10
  4. 日志配置文件,src/main/resource内创建log4j.properties
    # DEBUG,INFO,WARN,ERROR,FATALLOG_LEVEL=INFO#C-console, I-INFO, E-ERRORlog4j.rootLogger=${LOG_LEVEL},C,I,Elog4j.appender.C=org.apache.log4j.ConsoleAppenderlog4j.appender.C.Threshold = INFOlog4j.appender.C.Encoding=utf-8log4j.appender.C.layout=org.apache.log4j.PatternLayoutlog4j.appender.C.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} (%F:%L):%m%nlog4j.appender.I=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.I.File=${catalina.base}/logs/eidserver/info/log_daily#log4j.appender.I.File=c://eidserver/info/log_dailylog4j.appender.I.Threshold = INFOlog4j.appender.I.Append = truelog4j.appender.I.Encoding=utf-8log4j.appender.I.DatePattern='_'yyyy-MM-dd'.log'log4j.appender.I.layout=org.apache.log4j.PatternLayoutlog4j.appender.I.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} (%F\:%L)\:%m%nlog4j.appender.I.MaxFileSize = 50MBlog4j.appender.I.MaxBackupIndex = 7log4j.appender.E=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File=${catalina.base}/logs/eidserver/error/log_error#log4j.appender.E.File=c://eidserver/error/log_errorlog4j.appender.E.Append = TRUE log4j.appender.E.Threshold = ERRORlog4j.appender.E.Encoding=utf-8log4j.appender.E.DatePattern='_'yyyy-MM-dd'.log'log4j.appender.E.layout=org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} (%F\:%L)\:%m%n log4j.appender.E.MaxFileSize = 50MB
  5. src/main/resource内创建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"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.3.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">    <aop:aspectj-autoproxy />        <context:component-scan base-package="com.lgbproject.bigdata" />   </beans>


  6. mybatis配置文件,src/main/resource内创建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:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.org/schema/p"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.3.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">    <!-- 引入jdbc配置文件 -->      <bean id="propertyConfigurer"          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">          <property name="location" value="classpath:jdbc.properties" />      </bean>        <!--创建jdbc数据源 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"p:driverClass="${driver}"p:jdbcUrl="${jdbcUrl}"p:user="${user}"p:password="${password}"p:idleConnectionTestPeriod="${idleConnectionTestPeriod}"  p:maxIdleTime="${maxIdleTime}" p:initialPoolSize="${initialPoolSize}"p:acquireIncrement="${acquireIncrement}" p:maxPoolSize="${maxPoolSize}"  p:minPoolSize="${minPoolSize}" p:preferredTestQuery="SELECT 1"p:maxConnectionAge="3000" /><!-- 创建SqlSessionFactory,同时指定数据源 spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mapperLocations"><list><value>classpath*:com/lgbproject/bigdata/**/dao/mapper/*Mapper.xml</value></list></property></bean><!-- Mapper接口所在包名,Spring会自动查找其下的Mapper --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"p:basePackage="com.lgbproject.bigdata..*.dao"p:sqlSessionFactoryBeanName="sqlSessionFactory" /><!-- ===================================事务的配置================================== --><!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"p:dataSource-ref="dataSource" /><!-- 基于注释的事务,当注释中发现@Transactional时,使用id为“transactionManager”的事务管理器  --><!-- 如果没有设置transaction-manager的值,则spring以缺省默认的事务管理器来处理事务,默认事务管理器为第一个加载的事务管理器 --><!-- 优先级:如果配置冲突,注解的比xml的高 --><tx:annotation-driven transaction-manager="transactionManager"/><!-- 配置事务特性 ,配置add、delete和update开始的方法,事务传播特性为required --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="save*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="add*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="modify*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="edit*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="login*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="regist*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/><tx:method name="getAll*" propagation="REQUIRED" read-only="true" /></tx:attributes></tx:advice><!-- 配置哪些类的方法进行事务管理 --><aop:config><aop:pointcut id="allManagerMethod" expression="execution (* com.lgbproject.bigdata.*.service.*.*(..))" /><aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" /></aop:config></beans>
  7. srpringmvc配置文件,spring-mvc.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:mvc="http://www.springframework.org/schema/mvc"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">        <!-- 注解驱动 -->    <mvc:annotation-driven/>        <!-- 对静态资源文件的访问 --><mvc:resources mapping="/images/**" location="/resources/images/" cache-period="31556926" /><mvc:resources mapping="/js/**" location="/resources/js/" cache-period="31556926" /><mvc:resources mapping="/css/**" location="/resources/css/" cache-period="31556926" /><!-- 定义跳转的文件的前后缀 ,视图模式配置--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/views/"p:suffix=".jsp" /><!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->  <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> -->    <!-- 注解探测器 --><context:component-scan base-package="com.lgbproject.bigdata" /> <!-- 先走默认的web.xml配置的servlet,没有的话才找对应controller --><mvc:default-servlet-handler/><!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->      <bean id="multipartResolver"            class="org.springframework.web.multipart.commons.CommonsMultipartResolver">            <!-- 默认编码 -->          <property name="defaultEncoding" value="utf-8" />            <!-- 文件大小最大值 -->          <property name="maxUploadSize" value="10485760000" />            <!-- 内存中的最大值 -->          <property name="maxInMemorySize" value="40960" /></bean></beans>
8. 配置web.xml
<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <display-name>springmvctest</display-name>  <context-param>    <param-name>contextConfigLocation</param-name>    <param-value>classpath:spring.xml,classpath:spring-mybatis.xml</param-value>  </context-param>  <listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <listener>    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  </listener>  <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:spring-mvc.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>springMvc</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping>  <error-page>    <error-code>404</error-code>    <location>/resources/views/404.jsp</location>  </error-page></web-app>

到此,springmvc + mybatis + maven 项目配置完毕,下面创建controller和service层,添加一条数据到lgb_bigdata_user表测试项目。

九,测试
  1. 创建com.lgbproject.bigdata.user.controller包,UserController.java文件
    package com.lgbproject.bigdata.user.controller;import java.util.Date;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import com.lgbproject.bigdata.user.model.LgbBigdataUserEntity;import com.lgbproject.bigdata.user.service.UserService;@Controllerpublic class UserController {@Autowiredprivate UserService userService;@RequestMapping("user.html")public String user(ModelMap model, HttpServletRequest request) {LgbBigdataUserEntity record = new LgbBigdataUserEntity("xiaoming", "123456", "xiaoming@163.com", new Date(), new Date(), true);int result = userService.insertData(record);String id = "";model.addAttribute("id", String.valueOf(result));return "user/user";}}


  2. 创建WebContent/WEB-INF/views/user/目录,user.jsp文件
    <%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>User</title></head><body><h1>Hello User Page</h1><br>${id }</body></html>


  3. 创建com.lgbproject.bigdata.user.service包,UserService.java文件
    package com.lgbproject.bigdata.user.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.lgbproject.bigdata.user.dao.LgbBigdataUserEntityMapper;import com.lgbproject.bigdata.user.model.LgbBigdataUserEntity;@Servicepublic class UserService {@Autowiredprivate LgbBigdataUserEntityMapper lgbBigdataUserEntityMapper;public int insertData(LgbBigdataUserEntity record) {return lgbBigdataUserEntityMapper.insert(record);}}


  4. 浏览器访问地址 http://localhost:8080/springmvctest/user.html,显示下图表示成功


0 0
原创粉丝点击