用户工具

站点工具


分享:技术:示例项目:springmvc_mybatis_spring_freemarker_maven

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
分享:技术:示例项目:springmvc_mybatis_spring_freemarker_maven [2015/07/07 08:28]
gxx
分享:技术:示例项目:springmvc_mybatis_spring_freemarker_maven [2015/07/07 10:37] (当前版本)
gxx
行 8: 行 8:
 |  maven  |  3.0  | |  maven  |  3.0  |
 ===== 项目结构 ===== ===== 项目结构 =====
-{{ :​分享:​技术:​模板项目:​项目结构.png?​300 |}}+{{ :​分享:​技术:​示例项目:​项目结构.png?​300 |}}
 ===== 源代码 ===== ===== 源代码 =====
 +==== UserMapper.java ====
 <file java UserMapper.java>​ <file java UserMapper.java>​
 package com.gxx.record.base.dao;​ package com.gxx.record.base.dao;​
行 39: 行 40:
 } }
 </​file>​ </​file>​
 +==== UserMapper.xml ====
 <file xml UserMapper.xml>​ <file xml UserMapper.xml>​
 <?xml version="​1.0"​ encoding="​UTF-8"​ ?> <?xml version="​1.0"​ encoding="​UTF-8"​ ?>
行 141: 行 143:
 </​mapper>​ </​mapper>​
 </​file>​ </​file>​
 +==== User.java ====
 <file java User.java>​ <file java User.java>​
 package com.gxx.record.base.vo;​ package com.gxx.record.base.vo;​
行 196: 行 199:
 } }
 </​file>​ </​file>​
 +==== BaseDto.java ====
 <file java BaseDto.java>​ <file java BaseDto.java>​
 package com.gxx.record.dto;​ package com.gxx.record.dto;​
行 235: 行 239:
 } }
 </​file>​ </​file>​
 +==== UserDto.java ====
 <file java UserDto.java>​ <file java UserDto.java>​
 package com.gxx.record.dto;​ package com.gxx.record.dto;​
行 294: 行 299:
 } }
 </​file>​ </​file>​
 +==== UserService.java ====
 <file java UserService.java>​ <file java UserService.java>​
 package com.gxx.record.service;​ package com.gxx.record.service;​
行 331: 行 337:
 } }
 </​file>​ </​file>​
 +==== UserServiceImpl.java ====
 <file java UserServiceImpl.java>​ <file java UserServiceImpl.java>​
 package com.gxx.record.service.impl;​ package com.gxx.record.service.impl;​
行 382: 行 389:
 } }
 </​file>​ </​file>​
 +==== UserController.java ====
 <file java UserController.java>​ <file java UserController.java>​
 package com.gxx.record.web.user;​ package com.gxx.record.web.user;​
行 495: 行 503:
 } }
 </​file>​ </​file>​
 +==== application-context.xml ====
 <file xml application-context.xml>​ <file xml application-context.xml>​
 <?xml version="​1.0"​ encoding="​UTF-8"?>​ <?xml version="​1.0"​ encoding="​UTF-8"?>​
行 580: 行 589:
 </​beans>​ </​beans>​
 </​file>​ </​file>​
 +==== jdbc.properties ====
 <file properties jdbc.properties>​ <file properties jdbc.properties>​
 jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.driverClassName=com.mysql.jdbc.Driver
行 586: 行 596:
 jdbc.password=root jdbc.password=root
 </​file>​ </​file>​
-<​file ​java UserMapper.java>+==== log4j.properties ==== 
 +<​file ​properties log4j.properties> 
 +# Output pattern : date [thread] priority category - message ​  FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7  
 +log4j.rootLogger=INFO,​ Console, RollingFile 
 + 
 +#Console 
 +log4j.appender.Console=org.apache.log4j.ConsoleAppender 
 +log4j.appender.Console.layout=org.apache.log4j.PatternLayout 
 +log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n 
 + 
 +#​RollingFile 
 +log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender 
 +log4j.appender.RollingFile.File=D:/​logs/​record.log 
 +log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout 
 +log4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
 </​file>​ </​file>​
-<​file ​java UserMapper.java>+==== mybatis.xml ==== 
 +<​file ​xml mybatis.xml> 
 +<?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>​ 
 + <​settings>​ 
 + <​setting name="​cacheEnabled"​ value="​true"​ /> 
 + <​setting name="​lazyLoadingEnabled"​ value="​true"​ /> 
 + <​setting name="​multipleResultSetsEnabled"​ value="​true"​ /> 
 + <​setting name="​useColumnLabel"​ value="​true"​ /> 
 + <​setting name="​defaultExecutorType"​ value="​REUSE"​ /> 
 + <​setting name="​defaultStatementTimeout"​ value="​25000"​ /> 
 + </​settings>​ 
 +</​configuration>
 </​file>​ </​file>​
-<file java UserMapper.java>+==== spring-mvc.xml ==== 
 +<​file ​xml 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:​context="​http://​www.springframework.org/​schema/​context"​ 
 + xmlns:​p="​http://​www.springframework.org/​schema/​p"​ 
 + xmlns:​mvc="​http://​www.springframework.org/​schema/​mvc"​ 
 + xmlns:​util="​http://​www.springframework.org/​schema/​util"​  
 + xmlns:​cache="​http://​www.springframework.org/​schema/​cache"​ 
 + xsi:​schemaLocation="​http://​www.springframework.org/​schema/​beans http://​www.springframework.org/​schema/​beans/​spring-beans-4.0.xsd 
 + http://​www.springframework.org/​schema/​util http://​www.springframework.org/​schema/​util/​spring-util-4.0.xsd 
 +                http://​www.springframework.org/​schema/​context http://​www.springframework.org/​schema/​context/​spring-context-4.0.xsd 
 +                http://​www.springframework.org/​schema/​cache http://​www.springframework.org/​schema/​cache/​spring-cache-4.0.xsd 
 +                http://​www.springframework.org/​schema/​mvc http://​www.springframework.org/​schema/​mvc/​spring-mvc-4.0.xsd">​ 
 + 
 + <!-- XML转码器 --> 
 + <bean id="​fmXmlEscape"​ class="​freemarker.template.utility.XmlEscape"​ /> 
 +  
 + <!-- 配置freeMarker的模板路径 --> 
 + <bean id="​freemarkerConfig"​ class="​org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">​ 
 + <​property name="​templateLoaderPath"​ value="/​WEB-INF/​ftl/"​ /> 
 + <​property name="​freemarkerVariables">​ 
 + <​map>​ 
 + <​entry key="​xml_escape"​ value-ref="​fmXmlEscape"​ /> 
 + </​map>​ 
 + </​property>​ 
 + <​property name="​freemarkerSettings">​ 
 + <​props>​ 
 + <!-- <prop key="​datetime_format">​MM/​dd/​yyyy</​prop>​ <prop key="​number_format">​0.######</​prop>​ --> 
 + <​prop key="​defaultEncoding">​UTF-8</​prop>​ 
 + <!-- <prop key="​template_update_delay">​0</​prop>​ --> 
 + <​prop key="​template_exception_handler">​ignore</​prop>​ 
 + <​prop key="​number_format">​0.##</​prop>​ 
 + </​props>​ 
 + </​property>​ 
 + </​bean>​ 
 +  
 + <!-- 配置freeMarker视图解析器 --> 
 + <bean id="​freeMarkerViewResolver"​ class="​org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">​ 
 + <​property name="​viewClass"​ value="​org.springframework.web.servlet.view.freemarker.FreeMarkerView"​ /> 
 + <​property name="​contentType"​ value="​text/​html;​charset=UTF-8"​ /> 
 + <​property name="​suffix"​ value="​.ftl"​ /> 
 + <​property name="​order"​ value="​0"/>​ 
 + <​property name="​prefix"​ value="/"​ /> 
 +  
 + <​property name="​requestContextAttribute"​ value="​rc"​ /> 
 + <​property name="​exposeRequestAttributes"​ value="​true"​ /> 
 + <​property name="​exposeSpringMacroHelpers"​ value="​true"​ /> 
 + </​bean>​ 
 +  
 + <!-- jsp视图解析器 --> ​  
 + <bean id="​jstlViewResolver"​ class="​org.springframework.web.servlet.view.InternalResourceViewResolver">​ 
 + <​property name="​viewClass"​ value="​org.springframework.web.servlet.view.JstlView"​ /> 
 + <​property name="​prefix"​ value="/​WEB-INF/​ftl/"​ /> 
 + <​property name="​suffix"​ value="​.jsp"​ /> 
 + <​property name="​order"​ value="​2"​ /> 
 + </​bean>​ 
 + 
 + <!-- 扫描控制器类 --> 
 + <​context:​component-scan base-package="​com.gxx.record"​ /> 
 + 
 + <!-- 采用注解方式配置MVC --> 
 + <​mvc:​annotation-driven content-negotiation-manager="​contentNegotiationManager">​ 
 +     <​mvc:​message-converters>​ 
 +     <bean class="​org.springframework.http.converter.StringHttpMessageConverter">​ 
 +                <​constructor-arg value="​UTF-8"​ /> 
 +            </​bean>​ 
 +         <bean class="​org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">​ 
 +             <!-- <​property name="​objectMapper"​ ref="​jackson2ObjectMapperFactoryBean"​ />  --> 
 +             <​property name="​objectMapper"> ​  
 +                    <bean class="​com.fasterxml.jackson.databind.ObjectMapper"> ​  
 +                        <​property name="​dateFormat"> ​  
 +                            <bean class="​java.text.SimpleDateFormat"> ​  
 +                                <​constructor-arg type="java.lang.String"​ value="​yyyy-MM-dd HH:​mm:​ss"​ />   
 +                            </​bean> ​  
 +                        </​property> ​  
 +                    </​bean> ​  
 +                </​property>​ 
 +             <​property name="​supportedMediaTypes"> ​  
 +                    <​list> ​  
 +                     <​value>​text/​plain;​charset=utf-8</​value>​ 
 +                     <​value>​html/​text;​charset=utf-8</​value>​ 
 +                 <​value>​text/​html;​charset=utf-8</​value>​ 
 +                 <​value>​text/​json;​charset=utf-8</​value>​ 
 +                 <​value>​application/​json;​charset=utf-8</​value>​ 
 +                    </​list> ​  
 +                 </​property>​  
 +         </​bean> ​     
 +     </​mvc:​message-converters>​ 
 + </​mvc:​annotation-driven>​ 
 +  
 + <!-- Supporty medieType Content Manager Config-->​ 
 + <bean id="​contentNegotiationManager"​ class="​org.springframework.web.accept.ContentNegotiationManagerFactoryBean">​ 
 +     <​property name="​favorPathExtension"​ value="​false"​ /> 
 +     <​property name="​favorParameter"​ value="​true"​ /> 
 +     <​property name="​mediaTypes">​ 
 +         <​value>​ 
 +             atom=application/​atom+xml 
 +             html=text/​html 
 +             json=application/​json 
 +             xml=application/​xml 
 +             *=*/* 
 +         </​value>​ 
 +     </​property>​ 
 + </​bean>​ 
 +</beans>
 </​file>​ </​file>​
-<file java UserMapper.java>+==== MybatisGeneratorMain.java ==== 
 +<file java MybatisGeneratorMain.java> 
 +package com.gxx.record.generator;​ 
 + 
 +import java.io.File;​ 
 +import java.io.IOException;​ 
 +import java.sql.SQLException;​ 
 +import java.util.ArrayList;​ 
 +import java.util.List;​ 
 + 
 +import org.mybatis.generator.api.MyBatisGenerator;​ 
 +import org.mybatis.generator.config.Configuration;​ 
 +import org.mybatis.generator.config.xml.ConfigurationParser;​ 
 +import org.mybatis.generator.exception.InvalidConfigurationException;​ 
 +import org.mybatis.generator.exception.XMLParserException;​ 
 +import org.mybatis.generator.internal.DefaultShellCallback;​ 
 + 
 +/** 
 + * <​dl>​ 
 + ​* ​   <​dt><​b>​Title:</​b></​dt>​ 
 + ​* ​   <​dd>​ 
 + ​* ​   mybatis-generator逆向框架代码生成工具 
 + ​* ​   </​dd>​ 
 + ​* ​   <​dt><​b>​Description:</​b></​dt>​ 
 + ​* ​   <​dd>​ 
 + ​* ​   <​p>​none 
 + ​* ​   </​dd>​ 
 + * </​dl>​ 
 + * 
 + * @author Administrator 
 + * @version 1.0, 2015年6月18日 
 + * @since record 
 + * 
 + */ 
 +public class MybatisGeneratorMain { 
 + /** 
 + * main方法 
 + * @param args 
 + */ 
 +    public static void main(String[] args) { 
 +        List<​String>​ warnings = new ArrayList<​String>​();​ 
 +        boolean overwrite = true; 
 +        String genCfg = "/​generatorConfig.xml";​ 
 +        File configFile = new File(MybatisGeneratorMain.class.getResource(genCfg).getFile());​ 
 +        ConfigurationParser cp = new ConfigurationParser(warnings);​ 
 +        Configuration config = null; 
 +        try { 
 +            config = cp.parseConfiguration(configFile);​ 
 +        } catch (IOException e) { 
 +            e.printStackTrace();​ 
 +        } catch (XMLParserException e) { 
 +            e.printStackTrace();​ 
 +        } 
 +        DefaultShellCallback callback = new DefaultShellCallback(overwrite);​ 
 +        MyBatisGenerator myBatisGenerator = null; 
 +        try { 
 +            myBatisGenerator = new MyBatisGenerator(config,​ callback, warnings);​ 
 +        } catch (InvalidConfigurationException e) { 
 +            e.printStackTrace();​ 
 +        } 
 +        try { 
 +            myBatisGenerator.generate(null);​ 
 +        } catch (SQLException e) { 
 +            e.printStackTrace();​ 
 +        } catch (IOException e) { 
 +            e.printStackTrace();​ 
 +        } catch (InterruptedException e) { 
 +            e.printStackTrace();​ 
 +        } 
 +    } 
 +}
 </​file>​ </​file>​
-<file java UserMapper.java>+==== generatorConfig.xml ==== 
 +<​file ​xml generatorConfig.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>​ 
 +   
 +  <!-- 配置mysql 驱动jar包路径.用了绝对路径 --> 
 +  <​classPathEntry location="​C:/​Users/​Administrator/​.m2/​repository/​mysql/​mysql-connector-java/5.1.9/​mysql-connector-java-5.1.9.jar"​ /> 
 + 
 +  <context id="​DB2Tables"​ targetRuntime="​MyBatis3">​ 
 +   
 +    <!-- 为了防止生成的代码中有很多注释,比较难看,加入下面的配置控制 --> 
 +    <​commentGenerator>​ 
 +      <​property name="​suppressAllComments"​ value="​true"​ /> 
 +      <​property name="​suppressDate"​ value="​true"​ /> 
 +    </​commentGenerator>​ 
 +    <!-- 注释控制完毕 --> 
 +   
 +    <!-- 数据库连接 --> 
 +    <​jdbcConnection driverClass="​com.mysql.jdbc.Driver"​ 
 +        connectionURL="​jdbc:​mysql://​127.0.0.1:​3306/​record?​characterEncoding=utf8"​ 
 +        userId="​root"​ 
 +        password="​root">​ 
 +    </​jdbcConnection>​ 
 + 
 +    <​javaTypeResolver > 
 +      <​property name="​forceBigDecimals"​ value="​false"​ /> 
 +    </​javaTypeResolver>​ 
 +     
 +    <!-- 数据表对应的model 层  --> 
 +    <​javaModelGenerator targetPackage="​com.gxx.record.base.vo"​ targetProject="​D:/​05.HeadWorkspace/​record/​src/​main/​java">​ 
 +      <​property name="​enableSubPackages"​ value="​true"​ /> 
 +      <​property name="​trimStrings"​ value="​true"​ /> 
 +    </​javaModelGenerator>​ 
 +     
 +    <!-- sql mapper 隐射配置文件 --> 
 +    <​sqlMapGenerator targetPackage="​com.gxx.record.base.mapping" ​ targetProject="​D:/​05.HeadWorkspace/​record/​src/​main/​java">​ 
 +      <​property name="​enableSubPackages"​ value="​true"​ /> 
 +    </​sqlMapGenerator>​ 
 +     
 +    <!-- 在ibatis2 中是dao层,但在mybatis3中,其实就是mapper接口 --> 
 +    <​javaClientGenerator type="​XMLMAPPER"​ targetPackage="​com.gxx.record.base.dao" ​ targetProject="​D:/​05.HeadWorkspace/​record/​src/​main/​java">​ 
 +      <​property name="​enableSubPackages"​ value="​true"​ /> 
 +    </​javaClientGenerator>​ 
 +     
 +    <!-- 要对那些数据表进行生成操作,必须要有一个. --> 
 +    <table schema="​record"​ tableName="​user"​ domainObjectName="​User"​  
 +        enableCountByExample="​false"​ enableUpdateByExample="​false"​ 
 +        enableDeleteByExample="​false"​ enableSelectByExample="​false"​ 
 +        selectByExampleQueryId="​false"> ​     
 +    </​table>​ 
 + 
 +  </​context>​ 
 +</​generatorConfiguration>​ 
 +</​file>​ 
 +==== preRegistFtl.ftl ==== 
 +<file ftl preRegistFtl.ftl>​ 
 +<​!DOCTYPE html PUBLIC "​-//​W3C//​DTD XHTML 1.0 Transitional//​EN"​ "​http://​www.w3.org/​TR/​xhtml1/​DTD/​xhtml1-transitional.dtd">​ 
 +<html xmlns="​http://​www.w3.org/​1999/​xhtml">​ 
 + <​head>​ 
 + <meta http-equiv="​Content-Type"​ content="​text/​html;​ charset=utf-8"​ /> 
 + <​title>​注册页面</​title>​ 
 + </​head>​ 
 + <​body>​ 
 + <form action="/​record/​user/​registFtl.htm"​ method="​post">​ 
 + <​table border="​1">​ 
 + <​tr><​td>​用户名:</​td><​td><​input type="​text"​ name="​name"/></​td></​tr>​ 
 + <​tr><​td>​密码:</​td><​td><​input type="​password"​ name="​password"/></​td></​tr>​ 
 + <​tr><​td colspan="​2"​ align="​center"><​input type="​submit"​ value="​提交"/></​td></​tr>​ 
 + </​table>​ 
 + </​form>​ 
 + </​body>​ 
 +</​html>​ 
 +</​file>​ 
 +==== preRegistJsp.jsp ==== 
 +<file jsp preRegistJsp.jsp>​ 
 +<%@ page language="​java"​ contentType="​text/​html;​ charset=UTF-8"​ 
 +    pageEncoding="​UTF-8"​%>​ 
 +<​!DOCTYPE html PUBLIC "​-//​W3C//​DTD XHTML 1.0 Transitional//​EN"​ "​http://​www.w3.org/​TR/​xhtml1/​DTD/​xhtml1-transitional.dtd">​ 
 +<html xmlns="​http://​www.w3.org/​1999/​xhtml">​ 
 + <​head>​ 
 + <meta http-equiv="​Content-Type"​ content="​text/​html;​ charset=utf-8"​ /> 
 + <​title>​注册页面</​title>​ 
 + </​head>​ 
 + <​body>​ 
 + <form action="/​record/​user/​registJsp.htm"​ method="​post">​ 
 + <​table border="​1">​ 
 + <​tr><​td>​用户名:</​td><​td><​input type="​text"​ name="​name"/></​td></​tr>​ 
 + <​tr><​td>​密码:</​td><​td><​input type="​password"​ name="​password"/></​td></​tr>​ 
 + <​tr><​td colspan="​2"​ align="​center"><​input type="​submit"​ value="​提交"/></​td></​tr>​ 
 + </​table>​ 
 + </​form>​ 
 + </​body>​ 
 +</​html>​ 
 +</​file>​ 
 +==== result.ftl ==== 
 +<file ftl result.ftl>​ 
 +<​html>​ 
 +<​body>​ 
 + <​p>​This is my result:<​br>​ ${userDto.success?​string('​true','​false'​)}</​p> ​  
 + <​p>​This is my message:<​br>​ ${userDto.message}</​p> ​  
 +</​body>​ 
 +</​html>​ 
 +</​file>​ 
 +==== web.xml ==== 
 +<file xml web.xml>​ 
 +<​!DOCTYPE web-app PUBLIC 
 + "​-//​Sun Microsystems,​ Inc.//DTD Web Application 2.3//​EN"​ 
 + "​http://​java.sun.com/​dtd/​web-app_2_3.dtd"​ > 
 + 
 +<​web-app>​ 
 +    <​display-name>​Archetype Created Web Application</​display-name>​ 
 +   
 +    <!-- Context Configuration locations for Spring XML files --> 
 +    <​context-param>​ 
 +        <​param-name>​contextConfigLocation</​param-name>​ 
 +        <​param-value>​ 
 +        classpath*:/​application-*.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>​ 
 +  
 +    <!-- serlvet listeners --> 
 +    <​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>​dispatcher</​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>​dispatcher</​servlet-name>​ 
 +        <​url-pattern>​*.htm</​url-pattern>​ 
 +    </​servlet-mapping>​ 
 +     
 +    <!-- welcome file list config --> 
 + ​ <​welcome-file-list>​ 
 +  <​welcome-file>​index.jsp</​welcome-file>​ 
 + ​ </​welcome-file-list>​ 
 +     
 +    <​jsp-config>​ 
 + <​jsp-property-group>​ 
 + <​display-name>​JSPConfiguration</​display-name>​ 
 + <​url-pattern>​*.jsp</​url-pattern>​ 
 + <​page-encoding>​UTF-8</​page-encoding>​ 
 + </​jsp-property-group>​ 
 + </​jsp-config>​ 
 +</​web-app>​ 
 +</​file>​ 
 +==== index.jsp ==== 
 +<file jsp index.jsp>​ 
 +<​html>​ 
 +<​body>​ 
 +<​h2>​Hello World!</​h2>​ 
 +</​body>​ 
 +</​html>​ 
 +</​file>​ 
 +==== pom.xml ==== 
 +<file xml pom.xml>​ 
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​ 
 +<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.gxx</​groupId>​ 
 + <​artifactId>​record</​artifactId>​ 
 + <​packaging>​war</​packaging>​ 
 + <​version>​0.0.1-SNAPSHOT</​version>​ 
 + <​name>​record Maven Webapp</​name>​ 
 + <​url>​http://​maven.apache.org</​url>​ 
 + 
 + <!-- 项目属性 --> 
 + <​properties>​ 
 + <!-- jar 版本设置 --> 
 + <​spring.version>​4.0.5.RELEASE</​spring.version>​ 
 + <​aspectjrt.version>​1.6.9</​aspectjrt.version>​ 
 + <​aspectjweaver.version>​1.6.1</​aspectjweaver.version>​ 
 + <​freemarker.version>​2.3.20</​freemarker.version>​ 
 + <​mybatis.version>​3.2.7</​mybatis.version>​ 
 + <​mybatis-spring.version>​1.2.2</​mybatis-spring.version>​ 
 + <​mybatis-generator-core.version>​1.3.2</​mybatis-generator-core.version>​ 
 + <​servlet-api.version>​2.4</​servlet-api.version>​ 
 + <​jsp-api.version>​2.0</​jsp-api.version>​ 
 + <​jstl.version>​1.2</​jstl.version>​ 
 + <​standard.version>​1.1.2</​standard.version>​ 
 + <​jackson-databind.version>​2.4.0</​jackson-databind.version>​ 
 + <​jackson-annotations.version>​2.4.0</​jackson-annotations.version>​ 
 + <​jackson-module-jaxb-annotations.version>​2.4.0</​jackson-module-jaxb-annotations.version>​ 
 + <​jackson-core.version>​2.4.0</​jackson-core.version>​ 
 + <​junit.version>​4.11</​junit.version>​ 
 + <​log4j.version>​1.2.16</​log4j.version>​ 
 + <​mysql-connector-java.version>​5.1.9</​mysql-connector-java.version>​ 
 + <​commons-dbcp.version>​1.4</​commons-dbcp.version>​ 
 + </​properties>​ 
 + 
 + <!-- scm软件配置管理 --> 
 + <​scm>​ 
 + <​connection>​scm:​svn:​svn://​121.43.104.34/​gxx/​trunk/​record</​connection>​ 
 + <​developerConnection>​scm:​svn:​svn://​121.43.104.34/​gxx/​trunk/​record</​developerConnection>​ 
 + </​scm>​ 
 + 
 + <​dependencies>​ 
 + <!-- 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-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-jdbc</​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>​ 
 +  
 + <!-- aspectj --> 
 + <​dependency>​ 
 + <​groupId>​org.aspectj</​groupId>​ 
 + <​artifactId>​aspectjrt</​artifactId>​ 
 + <​version>​${aspectjrt.version}</​version>​ 
 + </​dependency>​ 
 + <​dependency>​ 
 + <​groupId>​org.aspectj</​groupId>​ 
 + <​artifactId>​aspectjweaver</​artifactId>​ 
 + <​version>​${aspectjweaver.version}</​version>​ 
 + </​dependency>​ 
 +  
 + <!-- freemarker --> 
 + <​dependency>​ 
 + <​groupId>​org.freemarker</​groupId>​ 
 + <​artifactId>​freemarker</​artifactId>​ 
 + <​version>​${freemarker.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>​${mybatis-spring.version}</​version>​ 
 + </​dependency>​ 
 + <​dependency>​ 
 + <​groupId>​org.mybatis.generator</​groupId>​ 
 + <​artifactId>​mybatis-generator-core</​artifactId>​ 
 + <​version>​${mybatis-generator-core.version}</​version>​ 
 + </​dependency>​ 
 +  
 + <!-- j2ee基础 --> 
 + <​dependency>​ 
 + <​groupId>​javax.servlet</​groupId>​ 
 + <​artifactId>​servlet-api</​artifactId>​ 
 + <​version>​${servlet-api.version}</​version>​ 
 + <​scope>​provided</​scope>​ 
 + </​dependency>​ 
 + <​dependency>​ 
 + <​groupId>​javax.servlet.jsp</​groupId>​ 
 + <​artifactId>​jsp-api</​artifactId>​ 
 + <​version>​${jsp-api.version}</​version>​ 
 + <​scope>​provided</​scope>​ 
 + </​dependency>​ 
 + <​dependency>​ 
 + <​groupId>​javax.servlet</​groupId>​ 
 + <​artifactId>​jstl</​artifactId>​ 
 + <​version>​${jstl.version}</​version>​ 
 + </​dependency>​ 
 + <​dependency>​ 
 + <​groupId>​taglibs</​groupId>​ 
 + <​artifactId>​standard</​artifactId>​ 
 + <​version>​${standard.version}</​version>​ 
 + </​dependency>​ 
 +  
 + <!-- jackson --> 
 + <​dependency>​ 
 + <​groupId>​com.fasterxml.jackson.core</​groupId>​ 
 + <​artifactId>​jackson-databind</​artifactId>​ 
 + <​version>​${jackson-databind.version}</​version>​ 
 + </​dependency>​ 
 + <​dependency>​ 
 + <​groupId>​com.fasterxml.jackson.core</​groupId>​ 
 + <​artifactId>​jackson-annotations</​artifactId>​ 
 + <​version>​${jackson-annotations.version}</​version>​ 
 + </​dependency>​ 
 + <​dependency>​ 
 + <​groupId>​com.fasterxml.jackson.module</​groupId>​ 
 + <​artifactId>​jackson-module-jaxb-annotations</​artifactId>​ 
 + <​version>​${jackson-module-jaxb-annotations.version}</​version>​ 
 + </​dependency>​ 
 + <​dependency>​ 
 + <​groupId>​com.fasterxml.jackson.core</​groupId>​ 
 + <​artifactId>​jackson-core</​artifactId>​ 
 + <​version>​${jackson-core.version}</​version>​ 
 + </​dependency>​ 
 + 
 + <!-- log4j --> 
 + <​dependency>​ 
 + <​groupId>​log4j</​groupId>​ 
 + <​artifactId>​log4j</​artifactId>​ 
 + <​version>​${log4j.version}</​version>​ 
 + </​dependency>​ 
 + 
 + <!-- junit --> 
 + <​dependency>​ 
 + <​groupId>​junit</​groupId>​ 
 + <​artifactId>​junit</​artifactId>​ 
 + <​scope>​test</​scope>​ 
 + <​version>​${junit.version}</​version>​ 
 + </​dependency>​ 
 + 
 + <!-- mysql --> 
 + <​dependency>​ 
 + <​groupId>​mysql</​groupId>​ 
 + <​artifactId>​mysql-connector-java</​artifactId>​ 
 + <​version>​${mysql-connector-java.version}</​version>​ 
 + </​dependency>​ 
 + 
 + <!-- dbcp --> 
 + <​dependency>​ 
 + <​groupId>​commons-dbcp</​groupId>​ 
 + <​artifactId>​commons-dbcp</​artifactId>​ 
 + <​version>​${commons-dbcp.version}</​version>​ 
 + </​dependency>​ 
 + </​dependencies>​ 
 + 
 + <!-- 设定除中央仓repo1.maven.org/​maven2/​)外的其他仓库,​按设定顺序进行查 --> 
 + <​repositories>​ 
 + <!-- nexus私服仓库 --> 
 + <​repository>​ 
 + <​id>​nexus</​id>​ 
 + <​name>​Team Nexus Repository</​name>​ 
 + <​url>​http://​121.43.104.34:​8081/​nexus/​content/​groups/​public</​url>​ 
 + </​repository>​ 
 + <​repository>​ 
 + <​id>​offical</​id>​ 
 + <​name>​Maven Official Repository</​name>​ 
 + <​url>​http://​repo1.maven.org/​maven2</​url>​ 
 + <​snapshots>​ 
 + <​enabled>​false</​enabled>​ 
 + </​snapshots>​ 
 + </​repository>​ 
 + <​repository>​ 
 + <​id>​spring-milestone</​id>​ 
 + <​name>​Spring Maven MILESTONE Repository</​name>​ 
 + <​url>​http://​maven.springframework.org/​milestone</​url>​ 
 + </​repository>​ 
 + <​repository>​ 
 + <​id>​jboss</​id>​ 
 + <​name>​Jboss Repository</​name>​ 
 + <​url>​http://​repository.jboss.org/​nexus/​content/​groups/​public-jboss/</​url>​ 
 + <​snapshots>​ 
 + <​enabled>​false</​enabled>​ 
 + </​snapshots>​ 
 + </​repository>​ 
 + <​repository>​ 
 + <​id>​java.net</​id>​ 
 + <​name>​Java.net Repository</​name>​ 
 + <​url>​http://​download.java.net/​maven/​2/</​url>​ 
 + <​snapshots>​ 
 + <​enabled>​false</​enabled>​ 
 + </​snapshots>​ 
 + </​repository>​ 
 + <​repository>​ 
 + <​id>​spring-release</​id>​ 
 + <​name>​Spring Maven Release Repository</​name>​ 
 + <​url>​http://​repo.springsource.org/​libs-release</​url>​ 
 + <​snapshots>​ 
 + <​enabled>​false</​enabled>​ 
 + </​snapshots>​ 
 + </​repository>​ 
 + </​repositories>​ 
 + 
 + <​build>​ 
 + <​finalName>​record</​finalName>​ 
 + <​plugins>​ 
 + <!-- jdk编译插件 --> 
 + <​plugin>​ 
 + <​groupId>​org.apache.maven.plugins</​groupId>​ 
 + <​artifactId>​maven-compiler-plugin</​artifactId>​ 
 + <​version>​2.0.2</​version>​ 
 + <​configuration>​ 
 + <​source>​1.6</​source>​ 
 + <​target>​1.6</​target>​ 
 + <​encoding>​utf8</​encoding>​ 
 + </​configuration>​ 
 + </​plugin>​ 
 + <!-- scm软件配置管理插件 --> 
 + <​plugin>​ 
 + <​groupId>​org.apache.maven.plugins</​groupId>​ 
 + <​artifactId>​maven-scm-plugin</​artifactId>​ 
 + <​version>​1.3</​version>​ 
 + </​plugin>​ 
 + <!-- 版本发布插件 --> 
 + <​plugin>​ 
 + <​groupId>​org.apache.maven.plugins</​groupId>​ 
 + <​artifactId>​maven-release-plugin</​artifactId>​ 
 + <​version>​2.4</​version>​ 
 + <​configuration>​ 
 + <​tagBase>​svn://​121.43.104.34/​gxx/​tags/​record</​tagBase>​ 
 + <​branchBase>​svn://​121.43.104.34/​gxx/​branches/​record</​branchBase>​ 
 + </​configuration>​ 
 + </​plugin>​ 
 + <!-- 原型插件 --> 
 + <​plugin>​ 
 + <​groupId>​org.apache.maven.plugins</​groupId>​ 
 + <​artifactId>​maven-archetype-plugin</​artifactId>​ 
 + <​version>​2.2</​version>​ 
 + </​plugin>​ 
 + </​plugins>​ 
 + </​build>​ 
 + 
 + <!-- 版本发布管理 --> 
 + <​distributionManagement>​ 
 + <!-- release稳定版本 --> 
 + <​repository>​ 
 + <​id>​nexus-releases</​id>​ 
 + <​name>​Nexus Release Repository</​name>​ 
 + <​url>​http://​121.43.104.34:​8081/​nexus/​content/​repositories/​releases/</​url>​ 
 + </​repository>​ 
 + <!-- snapshots快照版本 --> 
 + <​snapshotRepository>​ 
 + <​id>​nexus-snapshots</​id>​ 
 + <​name>​Nexus Snapshot Repository</​name>​ 
 + <​url>​http://​121.43.104.34:​8081/​nexus/​content/​repositories/​snapshots/</​url>​ 
 + </​snapshotRepository>​ 
 + </​distributionManagement>​ 
 +</​project>
 </​file>​ </​file>​
 +===== SQL脚本 =====
 +<code sql database.sql>​
 +create database record;
 +use record;
 +CREATE TABLE `user` (
 +  `id` int(10) unsigned NOT NULL auto_increment COMMENT '​主键',​
 +  `name` varchar(50) NOT NULL COMMENT '​姓名',​
 +  `password` varchar(32) NOT NULL COMMENT '​密码',​
 +  `create_date` varchar(8) NOT NULL COMMENT '​创建日期',​
 +  `create_time` varchar(6) NOT NULL COMMENT '​创建时间',​
 +  PRIMARY KEY  (`id`)
 +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='​用户表'​
 +</​code>​
 +===== 打包下载 =====
 +{{:​分享:​技术:​示例项目:​record.zip|}}
 +===== 使用说明 =====
 +==== 怎么在eclipse中运行项目 ====
 +  - 本地需要安装maven3
 +  - 打包下载
 +  - 导入eclipse中,自动Build Project,​第一次下载maven依赖耗时较长,请耐心等待
 +  - 修改相应配置,比如log4j.properties中的绝对路径
 +  - 开启mysql,运行上面的database.sql
 +  - 部署到eclipse绑定的tomcat中,启动tomcat
 +  - 启动成功之后,访问http://​localhost/​record/​,看到Hello World!,表示项目成功运行
 +  - 访问http://​localhost/​record/​user/​preRegistFtl.htm和http://​localhost/​record/​user/​preRegistJsp.htm进行测试
 +==== 使用mybatis-generator逆向生成框架代码 ====
 +  - 修改generatorConfig.xml中的配置
 +    - 驱动jar包路径
 +    - 数据库连接
 +    - 模型层配置
 +    - 映射配置
 +    - mapper接口配置
 +    - 需要生成的数据表配置
 +  - 运行MybatisGeneratorMain.java
 +  - 刷新目标目录中是否有新文件生成vo,​mapper,​dao
 +  - 注意:重复生成vo和dao会覆盖原文件,mapper会继续写在文件后面,所以重复生成程序运行会出错,需要手动删除再重新生成
分享/技术/示例项目/springmvc_mybatis_spring_freemarker_maven.1436228886.txt.gz · 最后更改: 2015/07/07 08:28 由 gxx