通过前面的步骤可以搭建好 Maven 以及下载依赖框架,那么接下来就是编写框架的配置文件了,配置分为以下三个步骤:

  1. 配置 SpringMVC
  2. 配置 Mybatis
  3. 配置 log

以下配置 SpringMVC:

  • 确定包结构,以及每个包的作用
  • 配置 web.xml 启用 SpringMVC
    Xml代码  
    1. <!DOCTYPE web-app PUBLIC
    2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
    4. <web-app>
    5. <display-name>SSM</display-name>
    6. <!-- Spring MVC -->
    7. <context-param>
    8. <!-- 指定配置文件位置(非默认) -->
    9. <param-name>contextConfigLocation</param-name>
    10. <param-value>classpath:spring/spring-mvc.xml</param-value>
    11. </context-param>
    12. <servlet>
    13. <servlet-name>springMvc</servlet-name>
    14. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    15. <!-- 通知 Web 容器, 启动时初始化 Spring MVC -->
    16. <load-on-startup>1</load-on-startup>
    17. </servlet>
    18. <servlet-mapping>
    19. <servlet-name>springMvc</servlet-name>
    20. <!-- 指定拦截以 .do 结尾的配置, 如果配置为 "/" 则需要在配置文件中排除静态资源, 如: .css, .jsp, .png等等 -->
    21. <url-pattern>*.do</url-pattern>
    22. </servlet-mapping>
    23. </web-app>
  • 配置 spring-mvc.xml 
    Xml代码  
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:aop="http://www.springframework.org/schema/aop"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans
    7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    8. http://www.springframework.org/schema/context
    9. http://www.springframework.org/schema/context/spring-context-3.0.xsd
    10. http://www.springframework.org/schema/mvc
    11. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    12. http://www.springframework.org/schema/aop
    13. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    14. <!-- 配置资源文件 -->
    15. <!-- * 指定 classPath 相对路径 * -->
    16. <context:property-placeholder location="classpath:jdbc.properties" />
    17. <!--
    18. * 指定文件(绝对)路径 *
    19. <context:property-placeholder location="file:D:/home/appadmin/config/jdbc.properties" />
    20. -->
    21. <!-- 加载组件配置 -->
    22. <import resource="classpath:spring-dao.xml" />
    23. <!-- 启用spring mvc 注解, conversion-service 用于注册 Handler 的参数类型转换器 -->
    24. <mvc:annotation-driven conversion-service="conversionService" />
    25. <!-- 注册参数转换器 -->
    26. <bean id="conversionService"
    27. class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    28. <property name="converters">
    29. <set>
    30. <!-- 枚举转换器: 支持 ordinal 和 name(区分大小写) -->
    31. <bean class="org.hy.ssm.web.converter.StringToEnumConverterFactory" />
    32. <!-- 日期转换器: 支持的模式列表查看源码, 可支持毫秒值(字符串) -->
    33. <bean class="org.hy.ssm.web.converter.StringToDate" />
    34. </set>
    35. </property>
    36. </bean>
    37. <!-- 启用spring mvc 注解扫描 -->
    38. <context:annotation-config />
    39. <!-- 自动扫描注解 -->
    40. <context:component-scan base-package="org.hy.ssm" />
    41. <!-- 完成请求和注解POJO的映射 -->
    42. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
    43. <!--
    44. * 将 webapp(WEB-INF同级) 静态资源映射新路径,
    45. * 当前示例 /wabapp/statics/
    46. * statics/ 为静态资源文件夹, 如: csss/templates/images/js/等等
    47. -->
    48. <mvc:resources location="/statics/" mapping="/resource/**" cache-period="31536000" />
    49. <!--
    50. * 视图解析器, (必须)
    51. * 前缀 /WEB-INF/
    52. * 后缀 .jsp
    53. * 示例: handler 返回字符串(视图映射路径)为 user/list, 则映射路径为: /WEB-INF/user/list.jsp
    54. -->
    55. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/" p:suffix=".jsp" />
    56. <!--
    57. * 配置 JSON 转换器(必须)
    58. * handler 返回 Model 数据时需要用到
    59. * 与 @ResponseBody 联合使用
    60. -->
    61. <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    62. <property name="supportedMediaTypes">
    63. <list>
    64. <value>text/html;charset=UTF-8</value>
    65. </list>
    66. </property>
    67. </bean>
    68. <!-- 注册 JSON 转换器 -->
    69. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    70. <property name="messageConverters">
    71. <list>
    72. <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
    73. </list>
    74. </property>
    75. </bean>
    76. <!-- 文件上传 -->
    77. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    78. <property name="defaultEncoding">
    79. <value>UTF-8</value>
    80. </property>
    81. <property name="maxUploadSize">
    82. <value>32505856</value><!-- 上传文件大小限制为31M -->
    83. </property>
    84. <property name="maxInMemorySize">
    85. <value>4096</value>
    86. </property>
    87. </bean>
    88. <!--
    89. * 注册验证拦截器(非 javax.servlet.Filter),
    90. * 拦截器实现需要继承: org.springframework.web.filter.OncePerRequestFilter
    91. -->
    92. <bean id="loginFileter" class="org.hy.ssm.web.filter.LoginFilter"></bean>
    93. <!--
    94. * Spring 邮件配置
    95. * 注意:这里的参数(如用户名、密码)都是针对邮件发送者的
    96. -->
    97. <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    98. <property name="host" value="${email.stmp.server}" />
    99. <property name="defaultEncoding" value="utf-8" />
    100. <property name="username" value="${email.username}" />
    101. <property name="password" value="${email.password}" />
    102. <property name="port" value="${email.stmp.port}" />
    103. <property name="javaMailProperties">
    104. <props>
    105. <prop key="mail.smtp.auth">true</prop>
    106. <prop key="mail.smtp.timeout">25000</prop>
    107. </props>
    108. </property>
    109. </bean>
    110. </beans>
  • spring-dao.xml 配置 (包含Mybatis)
    Xml代码  
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    4. xmlns:aop="http://www.springframework.org/schema/aop"
    5. xsi:schemaLocation="
    6. http://www.springframework.org/schema/beans
    7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    8. http://www.springframework.org/schema/tx
    9. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    10. http://www.springframework.org/schema/aop
    11. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    12. ">
    13. <!-- 配置 alibaba 数据源 -->
    14. <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    15. <property name="url" value="${jdbc_url}" />
    16. <property name="username" value="${jdbc_username}" />
    17. <property name="password" value="${jdbc_password}" />
    18. <property name="initialSize" value="0" />
    19. <property name="maxActive" value="20" />
    20. <property name="minIdle" value="0" />
    21. <property name="maxWait" value="60000" />
    22. <property name="validationQuery" value="${validationQuery}" />
    23. <property name="testOnBorrow" value="false" />
    24. <property name="testOnReturn" value="false" />
    25. <property name="testWhileIdle" value="true" />
    26. <property name="timeBetweenEvictionRunsMillis" value="60000" />
    27. <property name="minEvictableIdleTimeMillis" value="25200000" />
    28. <property name="removeAbandoned" value="true" />
    29. <property name="removeAbandonedTimeout" value="1800" />
    30. <property name="logAbandoned" value="true" />
    31. <property name="filters" value="mergeStat" />
    32. </bean>
    33. <!-- MyBits 的 SessionFactory -->
    34. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    35. <!-- 数据源 -->
    36. <property name="dataSource" ref="dataSource" />
    37. <!-- 数据访问接口对应的 SQL 实现 -->
    38. <property name="mapperLocations" value="classpath:mapping/*.xml" />
    39. <!-- Mybatis 其他配置 -->
    40. <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
    41. </bean>
    42. <!-- Mybatis 托管给 Spring 的接口与扫描配置 -->
    43. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    44. <!--
    45. * 当前数据源所管理的数据访问接口包
    46. * 如果项目中配置了多个数据源时,
    47. * 应避免相同数据访问接口包
    48. -->
    49. <property name="basePackage" value="com.cnp.catalog.dao" />
    50. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    51. </bean>
    52. <!-- 开启spring的事物管理功能 -->
    53. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    54. <property name="dataSource" ref="dataSource" />
    55. </bean>
    56. <!-- 使用注解管理事物 -->
    57. <tx:annotation-driven transaction-manager="transactionManager" />
    58. </beans>

    (如何配置多个数据源:1、jdbc.properties 中新增一套jdbc配置[url/username/pwd];3、配置唯一的dataSource、transactionManager;3、修改 MapperScannerConfigurer.basePackage 的值为新的数据访问接口包,一个数据访问接口包只能绑定一个数据源;4、修改 SqlSessionFactoryBean.mapperLocations 的值为新的数据访问接口 SQL 实现配置,推荐为每个数据源指定不同的实现包)

配置 Mybatis

  • mybatis-config.xml

    Xml代码  
    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    4. <configuration>
    5. <!-- 别名 -->
    6. <typeAliases>
    7. <!--
    8. * 在ParameterType或ResultType中直接使用类名,
    9. * 首字母大小写均可
    10. -->
    11. <package name="org.hy.ssm.model.entities"/>
    12. <!-- 或指定类型, 指定别名 -->
    13. <typeAlias type="org.hy.ssm.model.entities.User" alias="user"/>
    14. </typeAliases>
    15. <!-- 枚举类型处理器 -->
    16. <typeHandlers>
    17. <!--
    18. * handler: 枚举类型转换器, 当前使用 Ordinal, 如: Gender.MALE.ordinal(), 所以数据库应该是短整型
    19. * javaType: 目标枚举类型(Copy Qualified Name)
    20. -->
    21. <typeHandler
    22. handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"
    23. javaType="org.hy.ssm.model.entities.User$Gender"
    24. />
    25. <!-- 多个枚举时配置多套 typeHandler 标签即可 -->
    26. <!--
    27. <typeHandler
    28. handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"
    29. javaType="org.hy.ssm.model.entities.User$JobTitle"
    30. />
    31. -->
    32. </typeHandlers>
    33. </configuration>
  • mapper 示例(UserMapper.xml)
    Xml代码  
    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE mapper PUBLIC
    3. "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd"
    5. >
    6. <!-- namespace 通常使用 DAO 接口的权限命名 -->
    7. <mapper namespace="org.hy.ssm.dao.UserDao">
    8. <!--
    9. * 这里能使用  resultType="user" 是因为配置了 package name="org.hy.ssm.model.entities"
    10. *
    11. * 小技巧:
    12. *   1. 如果查询的数据非常确认只有一条时, 可在SQL的尾部明确的指出: LIMIT 1
    13. *   2. 有 WHERE 的情况下, 先判断条件是否成立而后再使用, 可以提高 SQL 接口复用率
    14. *   以上仅个人观点
    15. -->
    16. <!-- 指定用户账户查询用户 -->
    17. <select id="selectUserByAccount" parameterType="string" resultType="user">
    18. SELECT
    19. *
    20. FROM
    21. ssm_user u
    22. <if test="account != null and account != ''">
    23. <where>
    24. u.account = #{account}
    25. </where>
    26. </if>
    27. LIMIT
    28. 1
    29. </select>
    30. </mapper>

到目前为止必要的配置已经完成 80%,还剩下最后一项日志,本例使用的日志框架为:log4j, slf4j,配置文件(log4.properties):

Java代码  
  1. log4j.rootLogger=DEBUG, stdout, R
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.stdout.layout.ConversionPattern=[catalog] [%5p] [%d{yyyy-MM-dd HH:mm:ss}] (%F:%L) %m%n
  5. log4j.appender.R=org.apache.log4j.RollingFileAppender
  6. log4j.appender.R.File=/home/appadmin/logs/catalog.log
  7. log4j.appender.R.MaxFileSize=5012KB
  8. log4j.appender.R.MaxBackupIndex=50
  9. log4j.appender.R.layout=org.apache.log4j.PatternLayout
  10. log4j.appender.R.layout.ConversionPattern=[catalog][%5p] [%d{yyyy-MM-dd HH:mm:ss}] (%F:%L) %m%n
  11. log4j.logger.org.apache=DEBUG
  12. log4j.logger.com.opensymphony=DEBUG
  13. log4j.logger.org.springframework=DEBUG
  14. log4j.logger.org.mybatis=DEBUG
  15. log4j.logger.org.apache.commons.httpclient=ERROR

当前说明只能让你快速搭建项目,如果想要了解更深层次的原理及其应用则需要更多的其他相关资料。

ssm.zip (25.3 KB)

转载于:https://www.cnblogs.com/xm1-ybtk/p/5112058.html

Eclipse中 搭建 Spring+SpringMVC+Mybatis整合(下)相关推荐

  1. Spring boot(6)---在Eclipse中搭建Spring boot 项目

    Spring boot入门:在Eclipse中搭建Spring boot 项目 Eclipse中的STS插件 打开Eclipse-Help-Eclipse Marketplace-popular 下载 ...

  2. Spring+SpringMVC+MyBatis整合基础篇

    基础篇 Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简介 Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试 Spring+S ...

  3. Spring+SpringMVC +MyBatis整合配置文件案例66666

    Spring+SpringMVC +MyBatis整合配置文件案例 标签: springspringmvcmybatismvcjava 2017-04-13 19:12 228人阅读 评论(1) 收藏 ...

  4. SSM整合——Spring+SpringMVC+MyBatis整合

    文章目录 1. 数据库环境 2. 项目基本结构搭建 3. 配置MyBatis 4. 配置Spring 5. 配置SpringMVC 6. Controller和视图层编写 7. 配置Tomcat,进行 ...

  5. Spring+SpringMVC+Mybatis整合

    一.简单测试工程搭建 1.Mybatis所需要的的jar包(包含数据库驱动包和相关的日志包).SpringMVC和Spring的jar包 2.然后构建一个基本的工程,这里我们使用mapper代理的方式 ...

  6. Spring+SpringMVC+MyBatis整合教程

    2019独角兽企业重金招聘Python工程师标准>>> 1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框 ...

  7. Spring+SpringMVC+Mybatis整合【L】

    我喜欢直接上代码,这里做个解说,代码下载 http://download.csdn.net/detail/q260996583/9905047 项目框架图: 1.pom.xml 文件内容 <pr ...

  8. springmvc教程--整合mybatis开发(spring+springMVC+mybatis整合开发)

    一.整合mybatis 为了更好的学习 springmvc和mybatis整合开发的方法,需要将springmvc和mybatis进行整合. 整合目标:控制层采用springmvc.持久层使用myba ...

  9. Eclipse中实现SpringBoot与Mybatis整合(图文教程带源码)

    场景 数据库中数据 实现效果 项目结构 前面参照 Eclipse中新建SpringBoot项目并输出HelloWorld https://blog.csdn.net/BADAO_LIUMANG_QIZ ...

最新文章

  1. 一篇关于java变量定义的文章
  2. Python自定义:粒子群优化算法
  3. cobalt strick 4.0系列教程(3)---数据管理
  4. 官宣!又一所新大学来了!
  5. Bean context must contain FilterChainProxy
  6. poster--2011 Pacific-RimConference on Multimedia
  7. python字符串函数使用_Python字符串函数用法
  8. ROS学习笔记(一)#ROS系统及RoboWare的安装
  9. 扫描全能王文件上传不了服务器,如何将扫描全能王的文档轻松保存到坚果云?...
  10. Python 使用Gmail发送邮件
  11. python安装失败0x80070005_win10系统运行提示0x80070005错误的解决办法
  12. 栈和队列的区别与栈和堆的区别
  13. 二维码登录原理+Web端即时通讯技术
  14. 如何将m4a音频转换mp3格式,5种简单方法帮你处理
  15. 各种SD卡参数及接口
  16. 西北大学21年计算机考研情况 信科院专硕初试考数一英一分数线265分
  17. 语音识别技术是什么 语音识别基本方法介绍【图文】
  18. 如何在WorkNC中载入机床?
  19. π-Day快乐:Python可视化π
  20. cocoscreator 浏览器调试技巧

热门文章

  1. ABP理论学习之Abp Session
  2. 十一:Cocos2d-x坐标系
  3. DataGridView多线程更新数据的问题的解决办法
  4. 电商价格战 谁才是最大受益者
  5. Ruby 获取 HTTP 回应的编码和内容
  6. 在python中如何将两个list合并成一个list,不用for语句
  7. 蓝桥杯 ALGO-149 算法训练 5-2求指数
  8. 蓝桥杯 BEGIN-4 入门训练 Fibonacci数列
  9. 蓝桥杯 ALGO-83 算法训练 阶乘 java版
  10. 【操作系统】输入输出系统(上)-思维导图