idea下SSM(Spring+SpringMVC+Mybatis)Maven脚手架搭建及Generator生成代码

原创 2018年04月17日 09:38:02

本文章仅作为个人笔记

  • 项目搭建参考于博客:http://blog.csdn.net/zhshulin/article/details/37921705
  • 本人项目源码:https://github.com/makai554892700/SSMByMaven.git
  • 创建空壳web项目:
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
  • 于pom.xml添加项目依赖及插件:
  • jar包分为spring核心包/mybatis核心包/mybatis-spring包/javaee包/mysql连接包/dbcp包/JSTL包/日志包/JSON转换包/上传组件包
  • 插件包分为Mybatis-generator插件/Tomcat插件
  • 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/maven-v4_0_0.xsd">
        <parent>
            <artifactId>SSSMByMavenModules</artifactId>
            <groupId>com.mayousheng.www</groupId>
            <version>1.0</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>web</artifactId>
        <packaging>war</packaging>
        <name>web Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <dependencies>
            <!-- JSTL标签类 -->
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>com.mayousheng.www</groupId>
                <artifactId>service</artifactId>
                <version>1.0</version>
            </dependency>
        </dependencies>
        <build>
            <finalName>web</finalName>
            <plugins>
                <plugin>
                    <!--Mybatis-generator插件,用于自动生成Mapper和POJO-->
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.2</version>
                    <configuration>
                        <!--配置文件的位置-->
                        <configurationFile>src/main/resources/generator/generator-config.xml</configurationFile>
                        <verbose>true</verbose>
                        <overwrite>true</overwrite>
                    </configuration>
                    <executions>
                        <execution>
                            <id>Generate MyBatis Artifacts</id>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.mybatis.generator</groupId>
                            <artifactId>mybatis-generator-core</artifactId>
                            <version>1.3.2</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <!-- 配置Tomcat插件 -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <configuration>
                        <!-- 指定端口 -->
                        <port>8080</port>
                        <!-- 请求路径 -->
                        <path>/</path>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    
  • 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"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
        <!-- 引入配置文件 -->
        <bean id="propertyConfigurer"
              class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="classpath:properties/jdbc.properties"/>
        </bean>
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
              destroy-method="close">
            <property name="driverClassName" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
            <!-- 初始化连接大小 -->
            <property name="initialSize" value="${initialSize}"/>
            <!-- 连接池最大数量 -->
            <property name="maxActive" value="${maxActive}"/>
            <!-- 连接池最大空闲 -->
            <property name="maxIdle" value="${maxIdle}"/>
            <!-- 连接池最小空闲 -->
            <property name="minIdle" value="${minIdle}"/>
            <!-- 获取连接最大等待时间 -->
            <property name="maxWait" value="${maxWait}"/>
        </bean>
        <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!-- 自动扫描mapping.xml文件 -->
            <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>
        </bean>
        <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.mayousheng.www.mapper"/>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        </bean>
        <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
        <bean id="transactionManager"
              class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
    
    </beans>
    
  • 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:p="http://www.springframework.org/schema/p"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                            http://www.springframework.org/schema/context
                            http://www.springframework.org/schema/context/spring-context-3.1.xsd
                            http://www.springframework.org/schema/mvc
                            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
        <!-- 开启注解 -->
        <context:annotation-config/>
        <!-- 开启mvc的注解驱动 -->
        <mvc:annotation-driven/>
        <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
        <context:component-scan base-package="com.mayousheng.www"/>
        <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/"
              p:suffix=".jsp"/>
        <!--IE避免AJAX 返回JSON出现下载文件-->
        <bean id="mappingJacksonHttpMessageConverter"
              class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=UTF-8</value>
                </list>
            </property>
        </bean>
    </beans>
    
  • jdbc.properties文件内容如下:

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/test
    username=root
    password=root
    #定义初始连接数
    initialSize=1
    #定义最大连接数
    maxActive=2000
    #定义最大空闲
    maxIdle=200
    #定义最小空闲
    minIdle=20
    #定义最长等待时间
    maxWait=60000
    * log4j.properties文件内容如下:
    log4j.rootLogger=INFO,Console,File
    #定义日志输出目的地为控制台
    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.Target=System.out
    #可以灵活地指定日志输出格式,下面一行是指定具体的格式
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=[%c]-%m%n
    #文件大小到达指定尺寸的时候产生一个新的文件
    log4j.appender.File=org.apache.log4j.RollingFileAppender
    #指定输出目录
    log4j.appender.File.File=logs/ssm.log
    #定义文件最大大小
    log4j.appender.File.MaxFileSize=10MB
    #输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
    log4j.appender.File.Threshold=ALL
    log4j.appender.File.layout=org.apache.log4j.PatternLayout
    log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-ddHH:mm:ss}][%c]%m%n
    * generator.properties配置文件如下:
    jdbc.driverLocation=C:\\Users\\marking\\.m2\\repository\\mysql\\mysql-connector-java\\5.1.30\\mysql-connector-java-5.1.30.jar
    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.connectionURL=jdbc:mysql://127.0.0.1:3306/test
    jdbc.userId=root
    jdbc.password=root
    
  • generator-config.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>
        <!--数据库驱动包路径 -->
        <classPathEntry location="${driverLocation}"/>
    
        <context id="MySQLTables" targetRuntime="MyBatis3">
            <!--关闭注释 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
            <!--数据库连接信息 -->
            <jdbcConnection driverClass="${driverClass}"
                            connectionURL="${connectionURL}"
                            userId="${userId}"
                            password="${password}">
            </jdbcConnection>
            <!-- 生成model路径 -->
            <javaModelGenerator
                    targetPackage="${modelPackage}"
                    targetProject="${src_main_java}">
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
            <!-- 生成mapper路径 -->
            <sqlMapGenerator
                    targetPackage="${sqlMapperPackage}"
                    targetProject="${src_main_resources}">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
            <!-- 生成的Dao接口 的包路径 -->
            <javaClientGenerator type="XMLMAPPER"
                                 targetPackage="${mapperPackage}"
                                 targetProject="${src_main_java}">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
            <!-- sql占位符,表示所有的表 -->
            <table tableName="%" enableCountByExample="false"
                   enableUpdateByExample="false" enableDeleteByExample="false"
                   enableSelectByExample="false" selectByExampleQueryId="false">
                <generatedKey column="epa_id" sqlStatement="Mysql" identity="true"/>
            </table>
        </context>
    </generatorConfiguration>
    
  • 配置文件结构如图:
    image.png

  • 配置各文件:
  • 配置web.xml添加spring-mybatis.xml配置文件包含,配置编码过滤防止乱码,配置Spring监听,配置防止Spring内存溢出监听,配置SpringMVC配置文件包含,配置项目拦截路径,配置根访问。
  • 具体内容可于源码查看
  • 运行及技巧:
  • 从git下载好代码导入后需根据个人mysql情况更改jdbc.properties,另外如果想直接跑这个项目需要运行sql目录下的test.sql文件以创建数据库及生成测试数据,跑起来后于浏览器访问http://localhost:8080/user/showUser?id=1即可验证是否完成整个项目的初始化
  • idea下Tomcat配置运行:
    image.png
    image.png
    image.png
    image.png
    image.png
  • generator生成代码:
    image.png
  • 直接下载并打开git:
    image.png
    image.png

maven+Spring+SpringMVC+mybatis+mybatis-generator 搭建SSM开发环境

项目整合完成后目录结构 1、创建maven项目参考: http://blog.csdn.net/u012081441/article/details/75201197 https://jingy...
  • xiangyuanhong08
  • xiangyuanhong08
  • 2017-09-05 15:46:48
  • 395

一、使用IDEA,利用maven整合ssm框架(spring+springmvc+mybatis+mysql))

1.工具 apache-tomcat 7 apache-maven(后面详细讲!这东西我一开始也很懵逼) mysql 5以上的版本 navicat(有了这个就不用cmd了,可以直接显示数据库,如下图,...
  • zyf2333
  • zyf2333
  • 2017-08-27 21:54:28
  • 985

Idea+Maven+Spring+SpringMVC+MyBatis环境搭建

首先搭建Spring+MyBatis环境 在单独MyBatis中,使用SqlSessionFactoryBuilder创建SqlSessionFactory,然后创建SqlSession. Mybat...
  • z3881006
  • z3881006
  • 2016-12-26 14:56:56
  • 299

IDEA基于Maven管理的SSM(Spring+SpringMVC+mybatis)项目搭建

IDEA基于Maven管理的SSM(Spring+SpringMVC+mybatis)项目搭建第一步: File -> New Module。IDEA新建Maven项目勾选Creat...
  • l554725722
  • l554725722
  • 2017-06-29 19:50:41
  • 367

手把手搭建最简单的SSM框架Maven,idea(spring+springmvc+mybatis)附源代码

总结了在网上看到的几篇ssm教程,希望有一份自己自己的框架能够随时使用,并且是最简单的。所以在这里没有附加上log4j和junit,需要的同学可衣看其他教程,我这边就是要搭建一个最简单的ssm项目,方...
  • wujunwen
  • wujunwen
  • 2017-08-23 15:31:37
  • 1959

自定义项目脚手架- Maven Archetypes

在上篇Intellij修改archetype Plugin配置 中我们已经简单介绍了关于archetype的作用。 简单来说maven archetype插件就是创建项目的脚手架,你可以通过命令...
  • x1066988452
  • x1066988452
  • 2016-12-05 11:28:44
  • 632

IntelliJ IDEA Maven Mybatis generator 自动生成代码

  • 2017年10月20日 11:00
  • 43KB
  • 下载

使用IDEA maven搭建SSM框架

小弟作为初学者,很多不足之处,欢迎指教
  • Fly_0_Pig
  • Fly_0_Pig
  • 2016-10-22 17:39:50
  • 526

Idea SpringMVC+Spring+MyBatis+Maven整合

创建项目 File-New Project 选中左侧的Maven,选中右侧上方的Create from archetype,然后选中下方列表中的webapp,然后点击Next 在GroupI...
  • u011403655
  • u011403655
  • 2015-07-11 17:33:03
  • 28525

使用maven构建ssm(spring+springmvc+mybatis)框架

使用maven搭建ssm(spring+springmvc+mybatis)框架
  • u010653283
  • u010653283
  • 2017-07-11 17:01:47
  • 2943
收藏助手
不良信息举报
您举报文章:idea下SSM(Spring+SpringMVC+Mybatis)Maven脚手架搭建及Generator生成代码
举报原因:
原因补充:

(最多只允许输入30个字)