Intellij-IDEA-maven+springMVC+mybatis整合DEMO
之前都是在已经建立好的项目基础上开发,没有自己建立过IDEA的maven+springMVC+Mybatis项目,今天刚好学习一下。
maven的本地安装自行度娘~
首先,打开IDEA后新建一个project:
选择maven项目和JDK版本后,勾选Create from archetype创建原型,因为我们这是一个web项目,因此选择maven-archetype-webapp,点击“next”:
此时跳出的窗口是对maven仓库的基本配置,groupID中填写本项目仓库路径(默认小写),artifactID为项目名称。Version一般分两种,SNAPSHOT为快照版本,RELEASE为最终发布版本,前面的编号为版本号:
接下来进入maven配置阶段,我的本地安装路径为D:\apache-maven-3.5.0,接下来两个分别是maven配置文件地址和本地仓库地址:
最后审查一下我们的配置,点击"finish":
IDEA生成的项目目录src下并没有源码文件夹,需要在main下新建一个Java文件夹:
新建文件夹后,IDEA仍然不能识别源码和resources文件地址,需要我们手动设置一下。
右键新建的Java文件夹,mark directory as sources root:
对同目录下的resources文件夹也是同样的操作,mark directory as resources root:
完成后项目目录是这样的:
web.xml为JavaWEB核心配置文件,也是程序的入口,因此我们首要配置它。IDEA自动生成的web.xml并不是规范的,是DOCTYPE规范,而我们WEB-INF下的web.xml是XML文件。这里需要清空后全部覆盖,此处贴上我的一个初始配置:
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
CharacterEncodingFilter
/*
html encoding
JSPConfiguration
*.html
true
UTF-8
false
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
1
springmvc
/
配置完web.xml之后,紧接着就是项目根目录下的pom文件,该文件用于管理源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
配置pom前,首先是技术选型,也就是这个项目所需要用到哪些技术栈。如果不知道自己dependency怎么写,可以直接去https://mvnrepository.com/中搜索。eg:搜索mybatis弹出mybatis相关,点击mybatis后进入版本列表,点击其中一个版本,出现其配置方法:
现在贴入本DEMO的pom.xml(注意MyBatis Generator的配置,下面会讲到):
4.0.0
com.zyx.freemarkerworddemo
FreemarkerWordDemo
war
1.0-SNAPSHOT
FreemarkerWordDemo Maven Webapp
http://maven.apache.org
4.1.3.RELEASE
3.2.8
1.2.2
1.3.5
5.1.32
1.0.9
1.6.4
1.2
2.5
2.0
3.3.2
2.5
3.3
2.3.23
UTF-8
org.apache.commons
commons-lang3
${commons-lang3.version}
commons-io
commons-io
${commons-io.version}
commons-net
commons-net
${commons-net.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis.spring.version}
mysql
mysql-connector-java
${mysql.version}
com.alibaba
druid
${druid.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-test
${spring.version}
org.springframework
spring-context-support
${spring.version}
jstl
jstl
${jstl.version}
javax.servlet
servlet-api
${servlet-api.version}
provided
javax.servlet
jsp-api
${jsp-api.version}
provided
org.freemarker
freemarker
${freemarker.version}
org.mybatis.generator
mybatis-generator-core
${mybatis-generator.version}
junit
junit
3.8.1
test
FreemarkerWordDemo
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
80
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/*.properties
**/*.xml
generatorConfig.xml
false
一般resources文件夹下存放的都是我们项目集成的配置文件,springMVC、Mybatis等文件配置都放在这里。本DEMO中的配置文件目录如下:
首先是spring配置文件applicationContext.xml,此处有两个地方需要注意,一个是阿里的druid数据库连接池,我们的jdbc.properties在这里被加载;一个是整合mybatis和spring,需要在MapperScannerConfigurer中配置DAO路径以便创建MapperFactoryBean。
jdbc.properties:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/demofreeword?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
applicationContext.xml:
1
5
1
60000
stat
60000
300000
其余配置文件大同小异,在此就不一一列举了。详情可下载源码。
配置文件完成后就是建立J2EE的项目目录了,源码文件都在Java文件夹下,具体目录见下图:
到此,项目目录已完成。
mybatis-generator是mybatis的一个插件,用于自动生成model及DAO(mapper)层的代码,需要开发者事前在数据库中设置好数据库表及其字段、属性等,以便自动映射JAVA对象。此处只写其配置及使用。
先在pom.xml文件中配置Tomcat插件和MyBatis Generator(上文pom.xml已给出),并定义包含generatorConfig.xml,此处直接贴入generatorConfiguration:
generatorConfig.xml:
在generatorConfiguration中:
配置完成后,点击右上角
点击“+”添加一个新的configuration,选择“maven”:
在弹出的对话框Name填写插件的名字mybatis-generator(这里是自己定义的,最好写上插件的名字),command line中填写mybatis-generator:generate -e(这里**-e后面不能出现空格**,-e表示在控制台显示错误信息):
点击确定后,可看出右上角已显示配置好的mybatis-generator,先点击右侧的maven project弹出maven相关操作按钮,进入run configurations,选择mybatis-generator。双击运行或者右键run:
出现下图结果后,表示项目建成:
备注:在上述生成文件中,dao目录下接口文件会以Mapper为后缀,可选择手动更改为DAO文件。当rename文件成功后,mapper.xml中namespace将自动更改,无需更多操作。