当前位置:   article > 正文

Spring+SpringMVC+Mybatis 整合【非maven项目】_不用maven spring整合mybatis步骤

不用maven spring整合mybatis步骤

入行一年多了,总是在用框架,却很少自己搭建过框架,最近有时间终于自己搭了一套简单的框架,分享一下,以便后面在用的到。

项目采用Spring4.0和Mybatis3.3的版本。

源码下载地址

1、准备工作。

首先是准备工作,创建数据库连接地址的配置文件jdbc.properties,日志配置文件log4j.properties,Mybatis特性配置文件mybatis-config.xml。

jdbc.properties文件内容:

  1. #MySQL数据库连接地址
  2. jdbc.driver=com.mysql.jdbc.Driver
  3. jdbc.url=jdbc:mysql://127.0.0.1:3306/firstSpringMVCproject?useUnicode=true&characterEncoding=utf8
  4. jdbc.username=root
  5. jdbc.password=root
  6. #定义初始连接数
  7. initialSize=0
  8. #定义最大连接数
  9. maxActive=20
  10. #定义最大空闲
  11. maxIdle=20
  12. #定义最小空闲
  13. minIdle=1
  14. #定义最长等待时间
  15. maxWait=60000

log4j.properties文件内容:

  1. log4j.rootLogger=INFO,Console,File,DEBUG
  2. #定义日志输出目的地为控制台
  3. log4j.appender.Console=org.apache.log4j.ConsoleAppender
  4. log4j.appender.Console.Target=System.out
  5. #可以灵活地指定日志输出格式,下面一行是指定具体的格式
  6. log4j.appender.Console.layout = org.apache.log4j.PatternLayout
  7. log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
  8. #文件大小到达指定尺寸的时候产生一个新的文件
  9. log4j.appender.File = org.apache.log4j.RollingFileAppender
  10. #指定输出目录
  11. log4j.appender.File.File = logs/ssm.log
  12. #定义文件最大大小
  13. log4j.appender.File.MaxFileSize = 10MB
  14. # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
  15. log4j.appender.File.Threshold = ALL
  16. log4j.appender.File.layout = org.apache.log4j.PatternLayout
  17. log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
  18. #输出sql语句及参数
  19. log4j.logger.java.sql.Connection=DEBUG
  20. log4j.logger.java.sql.Statement=DEBUG
  21. log4j.logger.java.sql.PreparedStatement=DEBUG
  22. log4j.logger.java.sql.ResultSet=DEBUG


mybatis-config.xml文件内容:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <settings>
  7. <setting name="cacheEnabled" value="true" /><!-- 全局映射器启用缓存 -->
  8. <setting name="useGeneratedKeys" value="true" />
  9. <setting name="callSettersOnNulls" value="true"/><!--返回null的字段 -->
  10. <setting name="defaultExecutorType" value="REUSE" />
  11. <setting name="defaultExecutorType" value="REUSE" />
  12. <setting name="logImpl" value="STDOUT_LOGGING" />
  13. </settings>
  14. </configuration>


2、导入相关jar包

创建好配置文件之后,导入相关的Spring,SpringMVC,Mybatis的jar包,【jar包链接地址,可自行下载


3、创建Spring配置文件

创建Spring配置文件spring-context.xml,有些人喜欢起名applicationContext.xml,这个都行,根据个人喜好随意起名。犹豫Spring是一个容器,所以可以将任何框架都已Bean的形式注入到Spring容器中,这里就采用这种方式将数据源(dataSource)也以Bean的形式注入Spring中。值得注意的是在Spring的配置文件中,是不扫描controller的,只扫描service层和dao层还有mapper层。如果项目中没有用到aop或者事务部分的东西,可以暂时不用配置。注意扫包的路径配置正确。

spring-context.xml中的内容:

  1. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xmlns:context="http://www.springframework.org/schema/context"
  3. xmlns:jdbc="http://www.springframework.org/schema/jdbc"
  4. xmlns:jee="http://www.springframework.org/schema/jee"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xmlns:util="http://www.springframework.org/schema/util"
  7. xmlns:task="http://www.springframework.org/schema/task"
  8. xmlns:p="http://www.springframework.org/schema/p"
  9. xmlns:aop="http://www.springframework.org/schema/aop"
  10. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  11. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  12. http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
  13. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
  14. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
  15. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
  16. http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd
  17. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"
  18. default-lazy-init="true">
  19. <!-- 引入配置文件 -->
  20. <bean id="propertyConfigurer"
  21. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  22. <property name="location" value="classpath:jdbc.properties" />
  23. </bean>
  24. <!-- 自动扫描 -->
  25. <!-- 使用Annotation自动注册Bean,解决事物失效问题:在主容器中不扫描@Controller注解,在SpringMvc中只扫描@Controller注解。 -->
  26. <!-- <context:component-scan base-package="com.weikai" /> -->
  27. <context:component-scan base-package="com.weikai">
  28. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  29. </context:component-scan>
  30. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  31. <property name="driverClassName" value="${jdbc.driver}" />
  32. <property name="url" value="${jdbc.url}" />
  33. <property name="username" value="${jdbc.username}" />
  34. <property name="password" value="${jdbc.password}" />
  35. <!-- 初始化连接大小 -->
  36. <property name="initialSize" value="${initialSize}"></property>
  37. <!-- 连接池最大数量 -->
  38. <property name="maxActive" value="${maxActive}"></property>
  39. <!-- 连接池最大空闲 -->
  40. <property name="maxIdle" value="${maxIdle}"></property>
  41. <!-- 连接池最小空闲 -->
  42. <property name="minIdle" value="${minIdle}"></property>
  43. <!-- 获取连接最大等待时间 -->
  44. <property name="maxWait" value="${maxWait}"></property>
  45. </bean>
  46. <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
  47. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  48. <property name="dataSource" ref="dataSource" />
  49. <!-- 自动扫描mapping.xml文件 -->
  50. <property name="configLocation" value="classpath:mybatis-config.xml"></property>
  51. <property name="mapperLocations" value="classpath:mapper/**/*.xml"></property>
  52. </bean>
  53. <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
  54. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  55. <property name="basePackage" value="com.weikai.*.dao" />
  56. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
  57. </bean>
  58. <!-- 加载service -->
  59. <context:component-scan base-package="com.weikai.*.service" use-default-filters="false"><!-- base-package 如果多个,用“,”分隔 -->
  60. <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
  61. </context:component-scan>
  62. <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
  63. <bean id="transactionManager"
  64. class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  65. <property name="dataSource" ref="dataSource" />
  66. </bean>
  67. </beans>
至此实际上已经完成了Spring和Mybatis的整合,接下来需要加入SpringMVC的配置。

4、配置SpringMVC配置文件

接下来就是配置spring-mvc.xml,将SpringMVC配置在项目中。需要注意的是 一定要在配置文件中 打开注解扫描,不然请求不到controller地址,其次就是视图的配置,配置jsp,html单视图多视图都可以(可参考之前文章)。

spring-mvc.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"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:p="http://www.springframework.org/schema/p"
  7. xmlns:aop="http://www.springframework.org/schema/aop"
  8. xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  9. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  10. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
  11. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
  12. <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
  13. <context:component-scan base-package="com.weikai" use-default-filters="false">
  14. <!-- base-package 如果多个,用“,”分隔 -->
  15. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  16. </context:component-scan>
  17. <!-- 开启Spring注解扫描的功能 这个一定要打开,不然扫不到相关注解-->
  18. <mvc:annotation-driven />
  19. <!--避免IE执行AJAX时,返回JSON出现下载文件 -->
  20. <bean id="mappingJacksonHttpMessageConverter"
  21. class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  22. <property name="supportedMediaTypes">
  23. <list>
  24. <value>text/html;charset=UTF-8</value>
  25. </list>
  26. </property>
  27. </bean>
  28. <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->
  29. <!-- <bean
  30. class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  31. <property name="messageConverters">
  32. <list>
  33. <ref bean="mappingJacksonHttpMessageConverter" /> JSON转换器
  34. </list>
  35. </property>
  36. </bean> -->
  37. <!-- 定义跳转的文件的前后缀 ,视图模式配置-->
  38. <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  39. <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
  40. <property name="order" value="0" />
  41. <property name="prefix" value="/views/"/>
  42. <property name="suffix" value=".jsp"/>
  43. </bean>
  44. <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
  45. <bean id="multipartResolver"
  46. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  47. <!-- 默认编码 -->
  48. <property name="defaultEncoding" value="utf-8" />
  49. <!-- 文件大小最大值 -->
  50. <property name="maxUploadSize" value="10485760000" />
  51. <!-- 内存中的最大值 -->
  52. <property name="maxInMemorySize" value="40960" />
  53. </bean>
  54. <!-- 对静态资源文件的访问, 将无法mapping到Controller的path交给default servlet handler处理 -->
  55. <mvc:default-servlet-handler />
  56. <!-- 静态资源映射 -->
  57. <mvc:resources mapping="/static/*" location="/static/" cache-period="31536000"/>
  58. <!-- 定义无Controller的path<->view直接映射 -->
  59. <mvc:view-controller path="/" view-name="/index"/>
  60. </beans>
至此三大框架已经整合完毕,接下来需要在web.xml中注册。

5、注册web.xml

再启动项目之前,需要将刚才配置的几个xml文件注册到web.xml中,让tomcat启动的时候来加载容器。

因为Spring是一个容器,后期会向其中加入更多的配置内容进去,所以web.xml中采用了通配符的方式来配置.

web.xml文件内容:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. version="3.0">
  6. <display-name>Archetype Created Web Application</display-name>
  7. <!-- Spring和mybatis的配置文件 -->
  8. <context-param>
  9. <param-name>contextConfigLocation</param-name>
  10. <param-value>classpath:spring-context.xml</param-value>
  11. </context-param>
  12. <!-- 编码过滤器 -->
  13. <filter>
  14. <filter-name>encodingFilter</filter-name>
  15. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  16. <async-supported>true</async-supported>
  17. <init-param>
  18. <param-name>encoding</param-name>
  19. <param-value>UTF-8</param-value>
  20. </init-param>
  21. </filter>
  22. <filter-mapping>
  23. <filter-name>encodingFilter</filter-name>
  24. <url-pattern>/*</url-pattern>
  25. </filter-mapping>
  26. <!-- 配置Spring配置文件路径 -->
  27. <context-param>
  28. <param-name>contextConfigLocation</param-name>
  29. <param-value>classpath*:/spring-context*.xml</param-value>
  30. </context-param>
  31. <!-- log4j日志文件配置 -->
  32. <context-param>
  33. <param-name>log4jConfigLocation</param-name>
  34. <param-value>classpath:log4j.properties</param-value>
  35. </context-param>
  36. <context-param>
  37. <param-name>log4jRefreshInterval</param-name>
  38. <param-value>60000</param-value>
  39. </context-param>
  40. <!-- Spring监听器 -->
  41. <listener>
  42. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  43. </listener>
  44. <!-- 防止Spring内存溢出监听器 -->
  45. <listener>
  46. <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
  47. </listener>
  48. <!-- Spring MVC servlet -->
  49. <servlet>
  50. <servlet-name>springServlet</servlet-name>
  51. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  52. <init-param>
  53. <param-name>contextConfigLocation</param-name>
  54. <param-value>classpath:/spring-mvc.xml</param-value>
  55. </init-param>
  56. <load-on-startup>1</load-on-startup>
  57. <async-supported>true</async-supported>
  58. </servlet>
  59. <servlet-mapping>
  60. <servlet-name>springServlet</servlet-name>
  61. <url-pattern>/</url-pattern>
  62. </servlet-mapping>
  63. <welcome-file-list>
  64. <welcome-file>/index.jsp</welcome-file>
  65. </welcome-file-list>
  66. <error-page>
  67. <error-code>500</error-code>
  68. <location>/views/common/500.jsp</location>
  69. </error-page>
  70. <error-page>
  71. <error-code>404</error-code>
  72. <location>/views/common/404.jsp</location>
  73. </error-page>
  74. </web-app>

至此所以配置工作已经全部完成,可以启动项目。若项目启动成功,并能到首页,则说明配置没有问题。若不能欢迎留下你的问题。





6、项目测试

连接数据库,对库中单表进行操作,并将数据返回页面。即在项目中写一套查寻方法,然后通过SpringMVC的http请求来访问项目,验证SpringMVC是否配置正确。

代码已上传可下载查看。下载地址



第一个项目搭建完毕,可以后续向其中加入shiro验证或者dubbo等配置。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/118696
推荐阅读
相关标签
  

闽ICP备14008679号