前言:不会配置 spring mvc,不知道为什么那样配置,也不知道从何下手,那么看这里就对了。

在 IDEA 中搭建 maven + springmvc + mybatis:

一、在 IDEA 中首先创建好一个新的 maven web 项目

可以参考:https://www.cnblogs.com/yuxiaole/p/9223309.html

二、pom 文件

1、添加 pom.xml 中的相关依赖

  需要如下依赖:spring、springmvc、mybatis、oracle、jsp、servlet、访问数据库

  添加 pom 的 oracle 依赖:https://www.cnblogs.com/yuxiaole/p/9479536.html

  1. <!-- springframework 的相关依赖 start -->
  2. <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
  3. <dependency>
  4. <groupId>org.springframework</groupId>
  5. <artifactId>spring-context</artifactId>
  6. <version>4.3.14.RELEASE</version>
  7. </dependency>
  8. <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
  9. <dependency>
  10. <groupId>org.springframework</groupId>
  11. <artifactId>spring-beans</artifactId>
  12. <version>4.3.14.RELEASE</version>
  13. </dependency>
  14. <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
  15. <dependency>
  16. <groupId>org.springframework</groupId>
  17. <artifactId>spring-core</artifactId>
  18. <version>4.3.14.RELEASE</version>
  19. </dependency>
  20. <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
  21. <dependency>
  22. <groupId>org.springframework</groupId>
  23. <artifactId>spring-web</artifactId>
  24. <version>4.3.14.RELEASE</version>
  25. </dependency>
  26. <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
  27. <dependency>
  28. <groupId>org.springframework</groupId>
  29. <artifactId>spring-webmvc</artifactId>
  30. <version>4.3.14.RELEASE</version>
  31. </dependency>
  32. <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
  33. <dependency>
  34. <groupId>org.springframework</groupId>
  35. <artifactId>spring-jdbc</artifactId>
  36. <version>4.3.14.RELEASE</version>
  37. </dependency>
  38. <!-- springframework 的相关依赖 end -->
  39.  
  40. <!--mybatis-->
  41. <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
  42. <dependency>
  43. <groupId>org.mybatis</groupId>
  44. <artifactId>mybatis</artifactId>
  45. <version>3.4.5</version>
  46. </dependency>
  47. <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
  48. <dependency>
  49. <groupId>commons-dbcp</groupId>
  50. <artifactId>commons-dbcp</artifactId>
  51. <version>1.4</version>
  52. </dependency>
  53.  
  54. <!--spring-mybatis 整合-->
  55. <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
  56. <dependency>
  57. <groupId>org.mybatis</groupId>
  58. <artifactId>mybatis-spring</artifactId>
  59. <version>1.3.1</version>
  60. </dependency>
  61.  
  62. <!--orcale-->
  63. <dependency>
  64. <groupId>com.oracle</groupId>
  65. <artifactId>ojdbc6</artifactId>
  66. <version>11.2.0.1.0</version>
  67. </dependency>
  68.  
  69. <!--servlet-->
  70. <!-- jsp start -->
  71. <dependency>
  72. <groupId>javax.servlet</groupId>
  73. <artifactId>javax.servlet-api</artifactId>
  74. <version>3.1.0</version>
  75. </dependency>
  76. <dependency>
  77. <groupId>javax.servlet.jsp</groupId>
  78. <artifactId>jsp-api</artifactId>
  79. <version>2.2</version>
  80. </dependency>
  81. <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
  82. <dependency>
  83. <groupId>javax.servlet</groupId>
  84. <artifactId>jstl</artifactId>
  85. <version>1.2</version>
  86. </dependency>
  87. <!-- jsp end -->
  88. <!--jsp-->

3、maven 编译之后,需要能读取到 xml 文件,所以在 pom.xml 中 <build></build>加如下代码:

  1. <resources>
  2. <resource>
  3. <directory>src/main/java</directory>
  4. <includes>
  5. <include>**/*.xml</include>
  6. </includes>
  7. <filtering>true</filtering>
  8. </resource>
  9. </resources>

4、maven 编译之后,还需要读取 properties 文件,因为我们一般都将系统配置统一放在 properties 里面

  1. <resource>
  2. <directory>src/main/resources</directory>
  3. <includes>
  4. <include>**/*.properties</include>
  5. <include>**/*.xml</include>
  6. </includes>
  7. <filtering>true</filtering>
  8. </resource>

三、web.xml 文件

使用 Spring MVC,在 web.xml 中配置 DispatcherServlet 是第一步

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  3. <display-name>sdemo</display-name>
  4.  
  5. <!--配置springmvc的分发器-->
  6. <servlet>
  7. <servlet-name>springMVC</servlet-name>
  8. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  9. <init-param>
  10. <!--设置mvc的配置文件地址-->
  11. <param-name>contextConfigLocation</param-name>
  12. <param-value>/WEB-INF/spring-mvc.xml</param-value>
  13. </init-param>
  14. <!--启动加载的顺序-->
  15. <load-on-startup>1</load-on-startup>
  16. </servlet>
  17. <servlet-mapping>
  18. <servlet-name>springMVC</servlet-name>
  19. <!--“/”: 会拦截所有请求,包括js、jsp、html等-->
  20. <url-pattern>/</url-pattern>
  21. </servlet-mapping>
  22.  
  23. <!--配置默认的地址-->
  24. <!--welcome-file-list元素可以包含一个或多个welcome-file子元素。如果在第一个welcome-file元素中没有找到指定的文件,Web容器就会尝试显示第二个,以此类推。-->
  25. <welcome-file-list>
  26. <welcome-file>demoIndex.jsp</welcome-file>
  27. </welcome-file-list>
  28.  
  29. </web-app>

还需要在 web.xml 配置读取所有相关的 spring 配置文件

  1. <context-param>
  2. <param-name>contextConfigLocation</param-name>
  3. <param-value>classpath*:spring/system/spring-*.xml</param-value>
  4. </context-param>
  5. <listener>
  6. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  7. </listener>

四、spring-mvc.xml 文件

配置注解扫描文件,注册相关 Bean

配置试图解析器等

  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. xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  9.  
  10. <!--会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,这是Spring MVC为@Controller分发请求所必需的,
  11. 并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能-->
  12. <mvc:annotation-driven />
  13.  
  14. <!-- spring 可以自动去扫描 com.demo 下面的包或子包下面的Java文件,
  15. 如果扫描到有Spring的相关注解(@Component @Controller@Service等)的类,则把这些类注册为Spring的bean,
  16. 可以发现这种扫描的粒度有点太大-->
  17. <!--有一个use-default-filters属性,该属性默认为true,这就意味着会扫描指定包下的全部的标有@Component的类,
  18. 并注册成bean.也就是@Component的子注解@Service,@Reposity等-->
  19. <!--如果配置了<context:component-scan>那么<context:annotation-config/>标签就可以不用再xml中配置了,因为前者包含了后者-->
  20. <!--另外<context:component-scan>还提供了两个子标签 <context:include-filter> 和 <context:exclude-filter>-->
  21. <!--Use-dafault-filters=”false”的情况下:<context:exclude-filter>表示指定的不扫描,<context:include-filter>表示指定的扫描-->
  22. <!-- <context:component-scan base-package="com.yule"/>-->
  23.  
  24. <!-- 只需要扫描 com.yule 下的 @Controller 并注册成bean -->
  25. <context:component-scan base-package="com.yule" use-default-filters="false">
  26. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  27. </context:component-scan>
  28.  
  29. <!-- 视图解析器: 定义JSP文件的位置 -->
  30. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  31. <!--前缀-->
  32. <property name="prefix" value="/WEB-INF/views/"/>
  33. <!--后缀-->
  34. <property name="suffix" value=".jsp"/>
  35. </bean>
  36.  
  37. <!-- 容器默认的DefaultServletHandler处理
  38. 所有静态内容 和 无RequestMapping处理的URL都将经过这里,
  39. 然后将该请求交由WEB应用服务器默认的Servlet进行处理。
  40. 如果不是静态资源的请求和 无RequestMapping处理的URL,才由DispatcherServlet继续进行处理。-->
  41. <mvc:default-servlet-handler/>
  42.  
  43. <!-- 将地址重定向:"/"是访问的path,"/demoCtrl/index"是重定向后的path:
  44. 定义无需Controller的url<->view直接映射-->
  45. <mvc:view-controller path="/" view-name="redirect:/demoCtrl/index"/>
  46.  
  47. <!-- 配置上传文件拦截,设置最大上传文件大小,和最大内存大小 -->
  48. <bean id="multipartResolver" name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  49. <!-- set the max upload size100MB 100M=100*1024*1024(B)=104857600 bytes-->
  50. <property name="maxUploadSize">
  51. <value>104857600</value>
  52. </property>
  53. <property name="maxInMemorySize">
  54. <value>4096</value>
  55. </property>
  56. </bean>
  57.  
  58. </beans>

以上配置即可启动系统,访问到 ctrl 层(使用@Controller),并且系统启动有默认打开的页面 demoIndex.jsp 。

五、配置 mybatis 相关的配置文件

db.properties

  1. db.driver=oracle.jdbc.OracleDriver
  2. db.datasourceurl=jdbc:oracle:thin:@localhost:1521:ORCL
  3. db.username=testdev
  4. db.password=test1234

mybatis-configuration.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. <settings>
  6. <setting name="defaultStatementTimeout" value="25000" />
  7. <setting name="logPrefix" value="dao." />
  8. </settings>
  9. </configuration>

spring-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"
  4. xmlns:p="http://www.springframework.org/schema/p"
  5. xmlns:jee="http://www.springframework.org/schema/jee"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xmlns:context="http://www.springframework.org/schema/context"
  8. xmlns:aop="http://www.springframework.org/schema/aop"
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  10. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
  11. http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
  12. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
  13. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  14. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"
  15. default-lazy-init="true"
  16. default-autowire="byName">
  17.  
  18. <description>整合spring与mybatis</description>
  19. <!--采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean-->
  20.  
  21. <!-- mybatis为spring提供的jar,其配置时不支持正则表达式配置 -->
  22. <bean id="mySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  23. <property name="dataSource" ref="dataSource"/>
  24. <property name="typeAliasesPackage" value="com.yule.*.*.entity,com.yule.*.*.*.entity"/>
  25. <property name="configLocation" value="classpath:/spring/system/mybatis-configuration.xml"/>
  26. </bean>
  27. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  28. <property name="basePackage" value="com.yule.*.*.dao,com.yule.*.*.*.dao"/>
  29. <property name="sqlSessionFactoryBeanName" value="mySqlSessionFactory"/>
  30. </bean>
  31.  
  32. <!-- 加载配置文件 -->
  33. <context:property-placeholder location="classpath*:conf/system/*.properties"/>
  34. <!-- 扫描注解 -->
  35. <context:annotation-config/>
  36.  
  37. <!-- 需要 commons.dbcp 包 -->
  38. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  39. <property name="driverClassName" value="${db.driver}"/>
  40. <property name="url" value="${db.datasourceurl}"/>
  41. <property name="username" value="${db.username}"/>
  42. <property name="password" value="${db.password}"/>
  43.  
  44. <property name="maxActive" value="100"/>
  45. <property name="maxIdle" value="20"/>
  46. <property name="maxWait" value="1000"/>
  47. <property name="defaultAutoCommit" value="true"/>
  48. <property name="removeAbandoned" value="true"/>
  49. <property name="removeAbandonedTimeout" value="60"/>
  50. <property name="validationQuery" value="select count(*) from dual"/>
  51. <property name="testOnBorrow" value="true"/>
  52. <property name="testOnReturn" value="true"/>
  53. <property name="testWhileIdle" value="true"/>
  54. </bean>
  55.  
  56. <!--配置事务-->
  57. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  58. <property name="dataSource" ref="dataSource"/>
  59. </bean>
  60. <!-- 支持注解形式 enable transaction annotation support -->
  61. <tx:annotation-driven transaction-manager="txManager" />
  62.  
  63. <!--大字段处理-->
  64. <!--<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler"></bean>-->
  65.  
  66. </beans>

六、配置 spring-service 自动注册 service

想在想要访问到 service 层,则可以在 spring-service.xml 中加入以下代码

  1. <!-- 自动注册service -->
  2. <context:component-scan base-package="com.yule">
  3. <context:include-filter type="regex" expression=".*\.service\..*" />
  4. </context:component-scan>

java 代码:不需要写 @Service

七、集成日志 logback

可以参考:https://www.cnblogs.com/yuxiaole/p/9297266.html

pom.xml 中加入依赖

  1.   <!-- slf4j-->
  2. <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
  3. <dependency>
  4. <groupId>org.slf4j</groupId>
  5. <artifactId>slf4j-api</artifactId>
  6. <version>1.7.25</version>
  7. </dependency>
  8.  
  9. <!--logback-->
  10. <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
  11. <dependency>
  12. <groupId>ch.qos.logback</groupId>
  13. <artifactId>logback-classic</artifactId>
  14. <version>1.2.3</version>
  15. </dependency>

logback.xml 配置文件一般放在src/main/resources文件夹,在该文件夹中新建 logback.xml 文件。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  4. <encoder>
  5. <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  6. </encoder>
  7. </appender>
  8.  
  9. <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
  10. <file>D:/log/demo.log</file>
  11. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  12. <fileNamePattern>D:/log/demo.%d{yyyy-MM-dd}.log</fileNamePattern>
  13. </rollingPolicy>
  14. <encoder>
  15. <pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  16. </encoder>
  17. </appender>
  18.  
  19. <!-- project default level -->
  20. <logger name="com.yule" level="INFO" />
  21.  
  22. <!--log4jdbc -->
  23. <logger name="jdbc.sqltiming" level="INFO"/>
  24. <logger name="dao" level="DEBUG" >
  25. <appender-ref ref="console" />
  26. </logger>
  27.  
  28. <root level="INFO">
  29. <appender-ref ref="console" />
  30. <appender-ref ref="rollingFile" />
  31. </root>
  32. </configuration>

八、配置支持注解 @ResponseBody

  @Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中

  该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

在 pom.xml 文件中加入以下依赖:

  1. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
  2. <dependency>
  3. <groupId>com.fasterxml.jackson.core</groupId>
  4. <artifactId>jackson-core</artifactId>
  5. <version>2.9.5</version>
  6. </dependency>
  7. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
  8. <dependency>
  9. <groupId>com.fasterxml.jackson.core</groupId>
  10. <artifactId>jackson-annotations</artifactId>
  11. <version>2.9.5</version>
  12. </dependency>
  13. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
  14. <dependency>
  15. <groupId>com.fasterxml.jackson.core</groupId>
  16. <artifactId>jackson-databind</artifactId>
  17. <version>2.9.5</version>
  18. </dependency>

在 spring-mvc.xml 中配置转化器

  1. <mvc:annotation-driven>
  2. <mvc:message-converters register-defaults="true">
  3. <!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
  4. <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  5. <property name="prettyPrint" value="true"/>
  6. <!-- 兼容ie -->
  7. <property name="supportedMediaTypes">
  8. <list>
  9. <value>application/json</value>
  10. <value>text/json</value>
  11. </list>
  12. </property>
  13. </bean>
  14. </mvc:message-converters>
  15. </mvc:annotation-driven>

九、统一处理异常打日志

Spring MVC定义了异常的统一处理机制,其工作原理是:

 不管是应用程序的哪里出现异常,都向上层抛出异常,最后异常被提交到Spring MVC的Dispatcher Servlet中,Dispatcher Servlet在调用系统统一的异常处理器来处理异常。(图片取自https://www.jianshu.com/p/20dd0d28c758)
实现:

添加一个类 MyHandlerExceptionResolver,继承 HandlerExceptionResolver(org.springframework.web.servlet.HandlerExceptionResolver)

实现方法 resolveException,这里先简单实现一下:

  1. /**
  2. * 统一异常处理,交给DispatcherServlet
  3. * @author yule
  4. * @date 2018/9/22 19:01
  5. */
  6. public class MyHandlerExceptionResolver implements HandlerExceptionResolver {
  7.  
  8. private Logger logger = LoggerFactory.getLogger(MyHandlerExceptionResolver.class);
  9.  
  10. @Override
  11. public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
  12. logger.error("服务器端未知错误", e);
  13. return new ModelAndView("system/error/error");
  14. }
  15. }

然后在 spring-mvc.xml 中加入通过bean声明注册到IoC容器

  1. <!--统一异常处理,记录日志-->
  2. <bean class="com.yule.system.exception.MyHandlerExceptionResolver" id="myHandlerExceptionResolver"/>

十、测试事务,修改问题

测试事务,发现事务不起作用,即注解 @Transactional 不起作用。

解决方案参考自:https://blog.csdn.net/awp0011/article/details/50735616

所以发现是自己配置的顺序问题导致的,自动注册 service 需要在配置事务之前:

  1. <!-- 自动注册service 必须在配置事务之上,否则@Transactional不起作用-->
  2. <context:component-scan base-package="com.yule">
  3. <context:include-filter type="regex" expression=".*\.service\..*" />
  4. </context:component-scan>
  5.  
  6. <!--配置事务-->
  7. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  8. <property name="dataSource" ref="myDataSource"/>
  9. </bean>
  10. <!-- 支持注解形式 enable transaction annotation support -->
  11. <tx:annotation-driven transaction-manager="txManager" />

十一、总结

pom.xml 文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6.  
  7. <groupId>springmvc-mybatis-test</groupId>
  8. <artifactId>springmvc-mybatis-test</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10. <packaging>war</packaging>
  11.  
  12. <name>springmvc-mybatis-test Maven Webapp</name>
  13. <!-- FIXME change it to the project's website -->
  14. <url>http://www.example.com</url>
  15.  
  16. <properties>
  17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18. <maven.compiler.source>1.7</maven.compiler.source>
  19. <maven.compiler.target>1.7</maven.compiler.target>
  20. </properties>
  21.  
  22. <dependencies>
  23. <dependency>
  24. <groupId>junit</groupId>
  25. <artifactId>junit</artifactId>
  26. <version>4.11</version>
  27. <scope>test</scope>
  28. </dependency>
  29.  
  30. <!-- springframework 的相关依赖 start -->
  31. <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
  32. <dependency>
  33. <groupId>org.springframework</groupId>
  34. <artifactId>spring-context</artifactId>
  35. <version>4.3.14.RELEASE</version>
  36. </dependency>
  37. <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
  38. <dependency>
  39. <groupId>org.springframework</groupId>
  40. <artifactId>spring-beans</artifactId>
  41. <version>4.3.14.RELEASE</version>
  42. </dependency>
  43. <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-core</artifactId>
  47. <version>4.3.14.RELEASE</version>
  48. </dependency>
  49. <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
  50. <dependency>
  51. <groupId>org.springframework</groupId>
  52. <artifactId>spring-web</artifactId>
  53. <version>4.3.14.RELEASE</version>
  54. </dependency>
  55. <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
  56. <dependency>
  57. <groupId>org.springframework</groupId>
  58. <artifactId>spring-webmvc</artifactId>
  59. <version>4.3.14.RELEASE</version>
  60. </dependency>
  61. <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
  62. <dependency>
  63. <groupId>org.springframework</groupId>
  64. <artifactId>spring-jdbc</artifactId>
  65. <version>4.3.14.RELEASE</version>
  66. </dependency>
  67. <!-- springframework 的相关依赖 end -->
  68.  
  69. <!--mybatis-->
  70. <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
  71. <dependency>
  72. <groupId>org.mybatis</groupId>
  73. <artifactId>mybatis</artifactId>
  74. <version>3.4.5</version>
  75. </dependency>
  76. <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
  77. <dependency>
  78. <groupId>commons-dbcp</groupId>
  79. <artifactId>commons-dbcp</artifactId>
  80. <version>1.4</version>
  81. </dependency>
  82.  
  83. <!--spring-mybatis 整合-->
  84. <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
  85. <dependency>
  86. <groupId>org.mybatis</groupId>
  87. <artifactId>mybatis-spring</artifactId>
  88. <version>1.3.1</version>
  89. </dependency>
  90.  
  91. <!--orcale-->
  92. <dependency>
  93. <groupId>com.oracle</groupId>
  94. <artifactId>ojdbc6</artifactId>
  95. <version>11.2.0.1.0</version>
  96. </dependency>
  97.  
  98. <!--servlet-->
  99. <!-- jsp start -->
  100. <dependency>
  101. <groupId>javax.servlet</groupId>
  102. <artifactId>javax.servlet-api</artifactId>
  103. <version>3.1.0</version>
  104. </dependency>
  105. <dependency>
  106. <groupId>javax.servlet.jsp</groupId>
  107. <artifactId>jsp-api</artifactId>
  108. <version>2.2</version>
  109. </dependency>
  110. <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
  111. <dependency>
  112. <groupId>javax.servlet</groupId>
  113. <artifactId>jstl</artifactId>
  114. <version>1.2</version>
  115. </dependency>
  116. <!-- jsp end -->
  117. <!--jsp-->
  118.  
  119. <!--日志-->
  120. <!-- slf4j-->
  121. <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
  122. <dependency>
  123. <groupId>org.slf4j</groupId>
  124. <artifactId>slf4j-api</artifactId>
  125. <version>1.7.25</version>
  126. </dependency>
  127.  
  128. <!--logback-->
  129. <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
  130. <dependency>
  131. <groupId>ch.qos.logback</groupId>
  132. <artifactId>logback-classic</artifactId>
  133. <version>1.2.3</version>
  134. </dependency>
  135.  
  136. <!--支持@ResponseBody 返回json-->
  137. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
  138. <dependency>
  139. <groupId>com.fasterxml.jackson.core</groupId>
  140. <artifactId>jackson-core</artifactId>
  141. <version>2.9.5</version>
  142. </dependency>
  143. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
  144. <dependency>
  145. <groupId>com.fasterxml.jackson.core</groupId>
  146. <artifactId>jackson-annotations</artifactId>
  147. <version>2.9.5</version>
  148. </dependency>
  149. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
  150. <dependency>
  151. <groupId>com.fasterxml.jackson.core</groupId>
  152. <artifactId>jackson-databind</artifactId>
  153. <version>2.9.5</version>
  154. </dependency>
  155.  
  156. </dependencies>
  157.  
  158. <build>
  159. <finalName>springmvc-mybatis-test</finalName>
  160. <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
  161. <plugins>
  162. <plugin>
  163. <artifactId>maven-clean-plugin</artifactId>
  164. <version>3.0.0</version>
  165. </plugin>
  166. <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
  167. <plugin>
  168. <artifactId>maven-resources-plugin</artifactId>
  169. <version>3.0.2</version>
  170. </plugin>
  171. <plugin>
  172. <artifactId>maven-compiler-plugin</artifactId>
  173. <version>3.7.0</version>
  174. </plugin>
  175. <plugin>
  176. <artifactId>maven-surefire-plugin</artifactId>
  177. <version>2.20.1</version>
  178. </plugin>
  179. <plugin>
  180. <artifactId>maven-war-plugin</artifactId>
  181. <version>3.2.0</version>
  182. </plugin>
  183. <plugin>
  184. <artifactId>maven-install-plugin</artifactId>
  185. <version>2.5.2</version>
  186. </plugin>
  187. <plugin>
  188. <artifactId>maven-deploy-plugin</artifactId>
  189. <version>2.8.2</version>
  190. </plugin>
  191. </plugins>
  192. </pluginManagement>
  193.  
  194. <resources>
  195. <resource>
  196. <directory>src/main/java</directory>
  197. <includes>
  198. <include>**/*.xml</include>
  199. </includes>
  200. <filtering>true</filtering>
  201. </resource>
  202. <resource>
  203. <directory>src/main/resources</directory>
  204. <includes>
  205. <include>**/*.properties</include>
  206. <include>**/*.xml</include>
  207. </includes>
  208. <filtering>true</filtering>
  209. </resource>
  210. </resources>
  211. </build>
  212. </project>

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. xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  9.  
  10. <!--会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,这是Spring MVC为@Controller分发请求所必需的,
  11. 并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能-->
  12. <mvc:annotation-driven />
  13.  
  14. <!-- 只需要扫描 com.yule 下的 @Controller 并注册成bean -->
  15. <context:component-scan base-package="com.yule" use-default-filters="false">
  16. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  17. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
  18. </context:component-scan>
  19.  
  20. <mvc:annotation-driven>
  21. <mvc:message-converters register-defaults="true">
  22. <!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
  23. <!--支持@ResponseBody 返回json-->
  24. <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  25. <property name="prettyPrint" value="true"/>
  26. <!-- 兼容ie -->
  27. <property name="supportedMediaTypes">
  28. <list>
  29. <value>application/json</value>
  30. <value>text/json</value>
  31. </list>
  32. </property>
  33. </bean>
  34. </mvc:message-converters>
  35. </mvc:annotation-driven>
  36.  
  37. <!-- 视图解析器: 定义JSP文件的位置 -->
  38. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  39. <!--前缀-->
  40. <property name="prefix" value="/WEB-INF/views/"/>
  41. <!--后缀-->
  42. <property name="suffix" value=".jsp"/>
  43. </bean>
  44.  
  45. <!-- 容器默认的DefaultServletHandler处理
  46. 所有静态内容 和 无RequestMapping处理的URL都将经过这里,
  47. 然后将该请求交由WEB应用服务器默认的Servlet进行处理。
  48. 如果不是静态资源的请求和 无RequestMapping处理的URL,才由DispatcherServlet继续进行处理。-->
  49. <mvc:default-servlet-handler/>
  50.  
  51. <!-- 将地址重定向:"/"是访问的path,"/demoCtrl/index"是重定向后的path:
  52. 定义无需Controller的url<->view直接映射-->
  53. <!--<mvc:view-controller path="/" view-name="redirect:/demoCtrl/index"/>-->
  54.  
  55. <!--统一异常处理,记录日志-->
  56. <bean class="com.yule.system.exception.MyHandlerExceptionResolver" id="myHandlerExceptionResolver"/>
  57.  
  58. </beans>

mybatis-datasource.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:p="http://www.springframework.org/schema/p"
  5. xmlns:jee="http://www.springframework.org/schema/jee"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xmlns:context="http://www.springframework.org/schema/context"
  8. xmlns:aop="http://www.springframework.org/schema/aop"
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  10. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
  11. http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
  12. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
  13. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  14. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"
  15. default-lazy-init="true"
  16. default-autowire="byName">
  17.  
  18. <description>配置mybatis数据源</description>
  19.  
  20. <!-- 加载配置文件 -->
  21. <context:property-placeholder location="classpath*:conf/system/*.properties"/>
  22.  
  23. <!-- 需要 commons.dbcp 包 -->
  24. <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  25. <property name="driverClassName" value="${db.driver}"/>
  26. <property name="url" value="${db.datasourceurl}"/>
  27. <property name="username" value="${db.username}"/>
  28. <property name="password" value="${db.password}"/>
  29.  
  30. <property name="maxActive" value="100"/>
  31. <property name="maxIdle" value="20"/>
  32. <property name="maxWait" value="1000"/>
  33. <property name="defaultAutoCommit" value="true"/>
  34. <property name="removeAbandoned" value="true"/>
  35. <property name="removeAbandonedTimeout" value="60"/>
  36. <property name="validationQuery" value="select count(*) from dual"/>
  37. <property name="testOnBorrow" value="true"/>
  38. <property name="testOnReturn" value="true"/>
  39. <property name="testWhileIdle" value="true"/>
  40. </bean>
  41.  
  42. <!--大字段处理-->
  43. <!--<bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler"></bean>-->
  44.  
  45. </beans>

spring-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"
  4. xmlns:p="http://www.springframework.org/schema/p"
  5. xmlns:jee="http://www.springframework.org/schema/jee"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xmlns:context="http://www.springframework.org/schema/context"
  8. xmlns:aop="http://www.springframework.org/schema/aop"
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  10. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
  11. http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
  12. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
  13. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  14. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"
  15. default-lazy-init="true"
  16. default-autowire="byName">
  17.  
  18. <description>整合spring与mybatis</description>
  19. <!--采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean-->
  20.  
  21. <!-- mybatis为spring提供的jar,其配置时不支持正则表达式配置 -->
  22. <bean id="mySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  23. <property name="dataSource" ref="myDataSource"/>
  24. <property name="typeAliasesPackage" value="com.yule.*.entity,com.yule.*.*.entity,com.yule.*.*.*.entity"/>
  25. <property name="configLocation" value="classpath:/mybatis/system/mybatis-configuration.xml"/>
  26. </bean>
  27. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  28. <property name="basePackage" value="com.yule.*.dao,com.yule.*.*.dao,com.yule.*.*.*.dao"/>
  29. <property name="sqlSessionFactoryBeanName" value="mySqlSessionFactory"/>
  30. </bean>
  31.  
  32. </beans>

mybatis-configuration.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. <settings>
  6. <setting name="defaultStatementTimeout" value="25000" />
  7. <setting name="logPrefix" value="dao." />
  8. </settings>
  9. </configuration>

spring-service.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:p="http://www.springframework.org/schema/p"
  5. xmlns:jee="http://www.springframework.org/schema/jee"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xmlns:context="http://www.springframework.org/schema/context"
  8. xmlns:aop="http://www.springframework.org/schema/aop"
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  10. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
  11. http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
  12. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
  13. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  14. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"
  15. default-lazy-init="true"
  16. default-autowire="byName">
  17.  
  18. <description>spring service 层的自动注册和事务配置</description>
  19. <!--采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean-->
  20.  
  21. <!-- 自动注册service 必须在配置事务之上,否则@Transactional不起作用-->
  22. <context:component-scan base-package="com.yule">
  23. <context:include-filter type="regex" expression=".*\.service\..*" />
  24. </context:component-scan>
  25.  
  26. <!--配置事务-->
  27. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  28. <property name="dataSource" ref="myDataSource"/>
  29. </bean>
  30. <!-- 支持注解形式 enable transaction annotation support -->
  31. <tx:annotation-driven transaction-manager="txManager" />
  32.  
  33. </beans>

十二、贴个例子

ctrl 层

  1. package com.yule.component.dbcomponent.web.ctrl;
  2.  
  3. import com.yule.component.dbcomponent.entity.UserTables;
  4. import com.yule.component.dbcomponent.service.DbComponentService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.ResponseBody;
  9.  
  10. import java.util.List;
  11.  
  12. /**
  13. * @author yule
  14. * @date 2018/9/22 15:57
  15. */
  16. @Controller
  17. @RequestMapping("/dbComponentCtrl")
  18. public class DbComponentCtrl {
  19. @Autowired
  20. private DbComponentService dbComponentService;
  21.  
  22. @RequestMapping("/index")
  23. public String index(){
  24. return "yule/component/dbcomponent/dbComponent";
  25. }
  26.  
  27. /**
  28. * 查询所有表名
  29. * @return
  30. */
  31. @RequestMapping("/selectUserTablesNameList")
  32. @ResponseBody
  33. public List<UserTables> selectUserTablesNameList(){
  34. List<UserTables> userTablesList = this.dbComponentService.selectUserTablesNameList();
  35. return userTablesList;
  36. }
  37. }

service 层

  1. package com.yule.component.dbcomponent.service.impl;
  2.  
  3. import com.yule.component.dbcomponent.dao.UserColCommentsDao;
  4. import com.yule.component.dbcomponent.dao.UserTablesDao;
  5. import com.yule.component.dbcomponent.entity.UserColComments;
  6. import com.yule.component.dbcomponent.entity.UserTables;
  7. import com.yule.component.dbcomponent.service.DbComponentService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.transaction.annotation.Transactional;
  10.  
  11. import java.util.List;
  12.  
  13. /**
  14. * @author yule
  15. * @date 2018/9/22 15:57
  16. */
  17. public class DbComponentServiceImpl implements DbComponentService {
  18. @Autowired
  19. private UserTablesDao userTablesDao;
  20. @Autowired
  21. private UserColCommentsDao userColCommentsDao;
  22.  
  23. @Transactional
  24. @Override
  25. public List<UserTables> selectUserTablesNameList() {
  26. return this.userTablesDao.selectUserTablesNameList();
  27. }
  28.  
  29. @Override
  30. public List<UserColComments> selectUserColCommentsListByTbName(String tableName){
  31. return this.userColCommentsDao.selectUserColCommentsListByTbName(tableName);
  32. }
  33.  
  34. }

dao 接口 层

  1. package com.yule.component.dbcomponent.dao;
  2.  
  3. import com.yule.component.dbcomponent.entity.UserColComments;
  4.  
  5. import java.util.List;
  6.  
  7. /**
  8. * @author yule
  9. * @date 2018/9/22 15:37
  10. */
  11. public interface UserColCommentsDao {
  12. /**
  13. * 查询某个表下的所有字段
  14. * @param tableName
  15. * @return
  16. */
  17. List<UserColComments> selectUserColCommentsListByTbName(String tableName);
  18. }

dao xml 层

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.yule.component.dbcomponent.dao.UserColCommentsDao">
  4.  
  5. <!--查询某个表下的所有字段-->
  6. <select id="selectUserColCommentsListByTbName" resultType="com.yule.component.dbcomponent.entity.UserColComments">
  7. select t.table_name tableName,
  8. t.column_name columnName,
  9. comments
  10. from user_col_comments t
  11. where upper(t.TABLE_NAME) = upper(#{tableName})
  12. </select>
  13.  
  14. </mapper>

entity

  1. package com.yule.component.dbcomponent.entity;
  2.  
  3. /**
  4. * @author yule
  5. * @date 2018/9/22 15:38
  6. */
  7. public class UserColComments {
  8. /**
  9. * 列名所属表
  10. */
  11. private String tableName;
  12. /**
  13. * 列字段名
  14. */
  15. private String columnName;
  16. /**
  17. * 列注释
  18. */
  19. private String comments;
  20.  
  21. public String getTableName() {
  22. return tableName;
  23. }
  24.  
  25. public void setTableName(String tableName) {
  26. this.tableName = tableName;
  27. }
  28.  
  29. public String getColumnName() {
  30. return columnName;
  31. }
  32.  
  33. public void setColumnName(String columnName) {
  34. this.columnName = columnName;
  35. }
  36.  
  37. public String getComments() {
  38. return comments;
  39. }
  40.  
  41. public void setComments(String comments) {
  42. this.comments = comments;
  43. }
  44. }

jsp

  1. <%@ page language="java" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>数据库单表查询组件</title>
  8. </head>
  9. <body>
  10.  
  11. <h1>水电费水电费水电费</h1>
  12.  
  13. </body>
  14. </html>

完。

好文:http://elf8848.iteye.com/blog/875830

记录:springmvc + mybatis + maven 搭建配置流程的更多相关文章

  1. SSM Spring+SpringMVC+mybatis+maven+mysql环境搭建

    SSM Spring+SpringMVC+mybatis+maven环境搭建 1.首先右键点击项目区空白处,选择new->other..在弹出框中输入maven,选择Maven Project. ...

  2. Spring+SpringMVC+Mybatis+MAVEN+Eclipse+项目完整环境搭建

    1.新建一个Maven项目,创建父项目. 2.创建子项目模块 3.创建javaWeb项目 4.创建后的项目目录结构 5.Maven文件配置 parent父项目pom.xml文件配置 <?xml ...

  3. Spring+SpringMVC+MyBatis+Maven框架整合

    本文记录了Spring+SpringMVC+MyBatis+Maven框架整合的记录,主要记录以下几点 一.Maven需要引入的jar包 二.Spring与SpringMVC的配置分离 三.Sprin ...

  4. 学习笔记_J2EE_SSM_01_spring+springMVC+Mybatis整合_XML配置示例

    spring+springMVC+Mybatis整合_XML配置示例 1.概述 spring+springMVC+Mybatis整合  XML配置方式 1.1 测试环境说明 名称 版本 备注 操作系统 ...

  5. (转)springMVC+mybatis+ehcache详细配置

    一. Mybatis+Ehcache配置 为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方 ...

  6. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  7. IntelliJ IDEA下Maven SpringMVC+Mybatis入门搭建例子

    很久之前写了一篇SSH搭建例子,由于工作原因已经转到SpringMVC+Mybatis,就以之前SSH实现简单登陆的例子,总结看看SpringMVC+Mybatis怎么实现. Spring一开始是轻量 ...

  8. Maven 搭建 SSM框架——Spring+SpringMVC+Mybatis的搭建教程

    一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP.Sp ...

  9. SSM框架——Spring+SpringMVC+Mybatis的搭建

    1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One  ...

随机推荐

  1. Mac OS 10.12 - 在VMwear Workstation12.5.2中大写键和中英文输入法的切换!

    大小写切换: Alt+CapsLock(不过必须在英文状态下)!! 输入法切换: CapsLock进行中英文输入法的切换

  2. 用redis统计大量用户的登陆情况[只判断是否活跃]

    有这样的一个场景需求:有上亿的用户,要统计这批用户的登陆情况,例如一周连续登陆,连续三天是是否登陆,一周活跃天数等用户 存在的挑战 数据如何尽可能用小的空间存储 如何能快速获取指定的数据 如果使用文件 ...

  3. String-680. Valid Palindrome II

    Given a non-empty string s, you may delete at most one character. Judge whether you can make it a pa ...

  4. JS获取开始、结束时间

    /** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今天 ...

  5. 电脑网络IP固定地址自动改变!

    今天电脑的固定IP地址每次重启设备,会自动改变一次.所以每次重启电脑都要手动重设IP地址.网关.DNS及高级选项中的ip设置. 高级选项中的ip设置每次都有2个ip,都要我删除一个.我都崩溃了,还以为 ...

  6. 汽车检测SIFT+BOW+SVM

    项目来源于 <opencv 3计算机视觉 python语言实现> 整个执行过程如下: 1)获取一个训练数据集. 2)创建BOW训练器并获得视觉词汇. 3)采用词汇训练SVM. 4)尝试对测 ...

  7. [Noi2014]购票 斜率优化DP+可持久化凸包

    貌似网上大部分题解都是CDQ分治+点分治然后再斜率优化DP,我貌似并没有用这个方法. 这一题跟这题有点像,只不过多了一个l的限制 如果说直接跑斜率优化DP,存储整个序列的话,显然是不行的,如图所示(图 ...

  8. POJ 2370

    //我的解题思路是先把输入的含有n个元素的数组a排序(从小到大),然后对前(n+1)/2个元素作如下的处理, //s+= (a[i]+1)/2 #include <iostream> #i ...

  9. Windows平台下Git服务器搭建--------gitblit

    Windows(server)平台下Git服务器搭建 第一步:下载Java,安装,配置环境变量. 第二步:下载Gitblit.下载地址:http://www.gitblit.com/ 第三步:解压缩下 ...

  10. Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果

    Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果 一.详细说明及代码 tc.py =============================================== ...