maven+springmvc+spring+mybatis
一、项目搭建
1)创建maven项目
选择apache的maven-archetype-webapp
填入groupID : 例如 com.mracale
artifactId :例如 shopping
确认项目名称
maven插件会自动生成项目结构
2)添加其他目录
在src/main下添加java目录,设置为源码根目录(Source Root)
注: 有需要的话可以在src下载添加测试相关代码目录
建立如下目录结构
com.xxx.common
com.xxx.vip
entity
dao
function
web
-formbean
-handler
在src/main下添加resources目录,设置为资源根目录(Resource Root)
在webapp下添加
static目录用于存放静态资源,如图片,js,css等
放入jquery和bootstrap
在web-inf目录添加views目录,用于存放jsp等视图文件
修改web.xml中的文档声明 使用3.0(如果不是的话)
3)修改项目和模块的语言级别为1.8
默认的LanguageLevel和JavaCompiler都是1.5
在pom.xml中添加如下代码,指定maven编译插件maven-compiler-plugin的版本
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
二、集成springmvc
在http://mvnrepository.com/网站搜索依赖库
1)在pom.xml中添加依赖
spring-mvc
servlet-api
jstl
2)在src/main/resources目录下添加spring-mvc.xml配置文件
a)添加注解驱动<mvc:annotation-driven/>
b)注册视图解析器
c)扫描mvc组件
3)在web.xml中配置spring-mvc前端控制器DispatcherServlet
a)配置随服务器启动而初始化
b)配置参数contextConfigLocation,指向spring-mvc的路径
c)配置servlet-mapping
仅处理*.do请求
4)web.xml配置请求和应答字符编码处理过滤器
CharacterEncodingFilter
5)配置404,500,欢迎界面等特殊页面(略)
6)编写测试案例
三、集成Spring
1)添加spring依赖
2)编写配置文件spring-context.xml
扫描业务层组件
3)在web.xml中配置ContextLoaderListener监听器,启用Spring容器
配置contextConfigLocation,指定spring-context.xml路径
四、集成c3p0
1)添加依赖
c3p0
jdbc-mysql
2)在spring-context中定义c3p数据源ComboPooledDataSource
配置属性
基础信息
driverClass/jdbcurl/user/password
连接数相关
initialPoolSize/minPoolSize/maxPoolSize/acquireIncrement
其他属性请参见相关文档
五、配置声明式事务管理
1)添加依赖
spring-tx
spring-jdbc
2)配置数据源事务管理DataSourceTransactionManager
指定数据源
3)指定通过注解控制事物
<tx:annotation-driven>
指定事务管理器
六、集成mybatis
1)添加依赖
mybatis
mybatis-spring
pagehelper
cglib
2)编写mybatis配置文件
相关配置
<setting name="cacheEnabled" value="true"/>
<setting name="defaultStatementTimeout" value="3000"/>
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="proxyFactory" value="CGLIB"/>
<setting name="lazyLoadingEnabled" value="true" />
集成分页插件
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql" />
<!-- 该参数默认为false -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 和startPage中的pageNum效果一样 -->
<property name="offsetAsPageNum" value="true" />
<!-- 该参数默认为false -->
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true" />
<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
<!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型) -->
<property name="pageSizeZero" value="true" />
</plugin>
3)在spring-context.xml中配置SqlSessionFactoryBean
指定数据源
指定mybatis配置文件路径
指定mapper文件路径
4)在spring-context.xml配置扫描mapper生成dao(MapperScannerConfigurer)
指定SqlSessionFactoryBean
指定要扫描的包
七、编写一个登录示例
编写实体
编写mapper
编写function
编写handler