使用myeclipse搭建带maven的ava web项目(Spring+SpringMVC+Mybatis)
环境说明:
开发环境:win7+Myclipase2015
项目属性:使用maven的javaWeb项目
使用框架:Spring+SpringMVC+MyBatis
使用数据库:sqlserver2008R2
创建项目:
创建一个maven项目
、
下一步,选择带maven的web app
点击Next,创建Maven ArcheType
填写完毕。点击完成。创建maven项目完毕。下面是原始的项目结构和Pom.xml。
感脚项目名后面一个尾巴Maven WebApp,别扭,右键项目,Rafactor,Raname为supermarket.。
点击OK。去修改一下上下文根目录。模糊记得以前修改web工程名字的时候就要修改上下文。
惊喜的发现,竟然自己改好了。好吧,检查一下也是必要的。程序员嘛,步步谨慎。
下面整理一下项目的结构,使用工具New出来的Maven项目有三个地方要改。
1.印象中标准的maven项目除了有resource外还有java目录。那么在main中new一个java文件夹,用于存入java代码。
2.默认使用的jdk是1.5.与本机安装的一般都不符合,我的是1.8.通过右键项目,build path,config build path,双击jreSystemLibrary(如果不是你想要的版本的时候),选择为你想要的版本的jdk,保存。
3.Web.xml默认生成的web.xml与实际我们用的不太相符,增加一个欢迎页面。index.jsp.
index.jsp页面如下:
通过tomcat或jboss部署。我用的是jboss成功后,在地址栏输入http://localhost:28080/supermarket/,出现欢迎页面。
使用maven的webApp创建完毕,也不是非常的简单和轻松,我也是第一次尝试,边摸索边查找,克服了一个又一个问题。下面就开始准备spring+springMVC+mybatis的环境了。
准备依赖包:spring+springMVC+mybatis+sqlserver2008r2。经过到处搜过,终于准备好了,当然也不一定全,其它的缺少时再说吧,我估计是差不多了。不需要的或暂时用不到的我都没有加进来,边做边加。下面是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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hpe</groupId>
<artifactId>supermarket</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>supermarket Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- 这里用来设置公用的参数,下面可以通过${参数名}引用,一处设置,多处引用 -->
<java.version>1.8</java.version>
<spring.version>4.2.2.RELEASE</spring.version>
<servlet.version>3.0.1</servlet.version>
</properties>
<dependencies>
<!-- junit 单元测试类库 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Spring4 相关类库 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mybatis类库 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<!-- mybatis与spring框架整合类库 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 日志类库 -->
<dependency>
<groupId>org.apache.commons.logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 日志类库 -->
<dependency>
<groupId>org.apache.log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<!-- 数据库连接池 jar -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- 数据库连接池相关 jar -->
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
<!-- 微软sqlserver2008驱动包 -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc41</artifactId>
<version>1.1</version>
</dependency>
<!-- 微软sqlserver2008驱动包相关 -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>standard</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
<build>
<finalName>supermarket</finalName>
<plugins>
<!-- 加入以下maven插件防止每次更新依赖版本变成1.5 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>UTF-8</encoding> <!-- 指定Maven字符集,避免更新Maven后,字符集恢复到初始状态。 -->
</configuration>
</plugin>
</plugins>
</build>
</project>
下面是依赖包成功导入后的截图,项目结束后我会把项目打包上传到csdn资源,里面包含该项目所有jar包。
创建项目包结构:
java包结构:
controller包:既然使用到SpingMVC框架,首先是要controller包,用于存入控制器层的各个业务控制器入口。
service包serviceimpl包:controller收到页面请求后,调用业务层处理业务逻辑,那就是到了servrice层,service包里有service接口和service实现类包,service的实现类放在impl包中。
mapper包:service实现类收到controller的调用后,处理自己的业务,当要用数据库操作时,就调用dao去处理数据库,不过现在是用mybatis框架,就用mapper接口来调用Mapper.xml里的语句,所以不需要 dao包了,直接创建一个mapper包用于存储数据库接口。
javabean包:用于存放javabean,或者叫vo,pojo,entity等实体类
utils包:用于存放自定义的工具类,像字符器处理,日期格式处理,密码加密解密处理等,通用函数处理。
资源配置文件结构:mybatis的mapper文件夹用于编辑sql语句的mpper.xml文件,spring的applicationdao.xml用于IOC控制,切面,数据库连接池,属性文件加载,事务管理等。数据库的jdbc.properties用于指定数据库连接,日志包log4j的log4j.properties控制项目的日志输出,springMVC的配置文件spring-mvc.xml控制SpringMVC的视图解析器,注解驱动等配置。
编写配置文件:
web.xml:
增加spring的监听类ContextLoaderListener,这个监听器的作用是启动web容器时,自动装载ApplicationContext.xml的配置信息,它之所以能有这个功能是它实现了ServletContextLister接口。在web.xml中配置了这个监听器后,在web容器启动时就会默认执行它的实现方法。web.xml中声明了ContextLoaderLister监听后,如果在web.xml中不写任何参数配置信息,applicationContext会到默认的路径中查找默认的配置信息。/WEB-INF/applicationContext.xml。名字和路径都是固定的。如果想自定义配置文件,那么需要在web.xml中增加一个context参数,参数名是contextConfigLocation.值里指定相应的xml文件,多个用,分开。也可以使用通配符applicationContext-*.xml。log4jConfigLocation指定log4j的配置文件位置。也需要在web.xml中声明log4j配置的监听器。Log4jConfigListener。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:application-context.xml</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</context-param>
<!-- 两个监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
现在是2018-12-14 23:11分了,明天再继续。祝大家晚安!!!学习很重要,身体更重要!!!