zoukankan      html  css  js  c++  java
  • springMVC + Spring + MyBatis 整合

    整理下SSM(基于注解)的整合

    1. web.xml 配置文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
     5 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     6     
     7     <!-- log4j 配置 -->
     8         <context-param>
     9         <param-name>log4jConfigLocation</param-name>
    10         <param-value>classpath:log4j.properties</param-value>
    11         </context-param>
    12         <context-param>
    13         <param-name>log4jRefreshInterval</param-name>
    14         <param-value>60</param-value>
    15         </context-param>
    16         <listener>
    17         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    18         </listener>
    19     
    20     <!--  设置编码 UTF-8  -->
    21     <filter>
    22         <filter-name>encodingFilter</filter-name>
    23         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    24         <init-param>
    25             <param-name>encoding</param-name>
    26             <param-value>UTF-8</param-value>
    27         </init-param>
    28         <init-param>
    29             <param-name>forceEncoding</param-name>
    30             <param-value>true</param-value>
    31         </init-param>
    32     </filter>
    33     <filter-mapping>
    34         <filter-name>encodingFilter</filter-name>
    35         <url-pattern>/*</url-pattern>
    36     </filter-mapping>  
    37     
    38     <!-- 配置 Spring -->
    39     <context-param>
    40         <param-name>contextConfigLocation</param-name>
    41         <param-value>classpath*:/applicationContext.xml</param-value>
    42     </context-param>
    43     <listener>
    44         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    45     </listener>
    46     <!-- 配置springmvc -->
    47     <servlet>
    48         <servlet-name>springmvc</servlet-name>
    49         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    50         <init-param>
    51             <param-name>contextConfigLocation</param-name>
    52             <param-value>/WEB-INF/springmvc-servlet.xml</param-value>
    53         </init-param>
    54          <load-on-startup>1</load-on-startup>
    55     </servlet>
    56     <servlet-mapping>
    57         <servlet-name>springmvc</servlet-name>
    58         <url-pattern>/</url-pattern>
    59     </servlet-mapping>
    60   <welcome-file-list>
    61     <welcome-file>index.html</welcome-file>
    62   </welcome-file-list>
    63 </web-app>

    2 :log4j.properties

     1 #logger level default is INFO
     2 log4j.rootLogger=debug,console,file
     3  
     4 #append to console
     5 log4j.appender.console=org.apache.log4j.ConsoleAppender
     6 log4j.appender.console.layout=org.apache.log4j.PatternLayout
     7 log4j.appender.console.layout.ConversionPattern=%d %p - %m%n
     8  
     9 #append to file
    10 log4j.appender.file=org.apache.log4j.RollingFileAppender
    11 log4j.appender.file.File=/demo.log
    12 log4j.appender.file.MaxFileSize=1MB
    13 log4j.appender.file.MaxBackupIndex=10000
    14 log4j.appender.file.layout=org.apache.log4j.PatternLayout
    15 log4j.appender.file.layout.ConversionPattern=%d %p - %m%n
    16  
    17  
    18 #ibatis logger config
    19 log4j.logger.com.ibatis=debug
    20 log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
    21 log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
    22 log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
    23 log4j.logger.java.sql.Connection=debug
    24 log4j.logger.java.sql.Statement=debug
    25 log4j.logger.java.sql.PreparedStatement=debug,stdout

    3 :applicationContext.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:mvc="http://www.springframework.org/schema/mvc"
     4     xmlns:context="http://www.springframework.org/schema/context"
     5     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
     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/mvc 
     9             http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
    10             http://www.springframework.org/schema/context 
    11             http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    12             http://www.springframework.org/schema/aop 
    13             http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
    14             http://www.springframework.org/schema/tx 
    15             http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">
    16     <!-- 扫描service、dao组件 -->
    17     <context:component-scan base-package="com.pro.*" />
    18     <!-- 分解配置 jdbc.properites -->
    19     <context:property-placeholder location="classpath:jdbc.properties" />
    20     <!-- 数据源c3p0  ... -->
    21     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    22         <property name="driverClass" value="${jdbc.driverClassName}" />
    23         <property name="jdbcUrl" value="${jdbc.url}" />
    24         <property name="user" value="${jdbc.username}" />
    25         <property name="password" value="${jdbc.password}" />
    26         <property name="maxPoolSize" value="${c3p0.pool.size.max}" />
    27         <property name="minPoolSize" value="${c3p0.pool.size.min}" />
    28         <property name="initialPoolSize" value="${c3p0.pool.size.ini}" />
    29         <property name="acquireIncrement" value="${c3p0.pool.size.increment}" />
    30     </bean>
    31     <!-- sessionFactory 将spring和mybatis整合 -->
    32     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    33         <property name="dataSource" ref="dataSource" />
    34         <property name="configLocation" value="classpath:/mapper/sqlMapConfig.xml" />
    35         <property name="mapperLocations" value="classpath:/mapper/**/*Mapper.xml" />    <!-- 加载mapper文件 -->
    36     </bean>
    37     
    38     <!--       -->
    39     <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 
    40         <constructor-arg index="0" ref="sqlSessionFactory" /> 
    41         <constructor-arg index="1" value="REUSE" />
    42     </bean>
    43      <!--   这个baseDao 主要是一些封装的方法,进行数据的交互    -->
    44     <bean id="baseDao" class="com.pro.common.BaseDao"/>
    45   
    46     
    47     <!-- 事务 -->
    48     <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    49         <property name="dataSource" ref="dataSource" />
    50     </bean>
    51     <tx:advice id="txAdvice" transaction-manager="txManager">
    52         <tx:attributes>
    53             <tx:method name="insert*" propagation="REQUIRED" />
    54             <tx:method name="update*" propagation="REQUIRED" />
    55             <tx:method name="delete*" propagation="REQUIRED" />
    56             <tx:method name="find" read-only="true" />
    57             <tx:method name="get" read-only="true" />
    58             <tx:method name="*" propagation="REQUIRED" />
    59         </tx:attributes>
    60     </tx:advice>
    61     <aop:config>
    62         <aop:pointcut  id="pointCut"  expression="execution(* com.pro.*.*(..))"/>
    63         <aop:advisor advice-ref="txAdvice" pointcut-ref="pointCut" />
    64     </aop:config>
    65     
    66    <!-- 扫描service下的所有类,自动为spring容器管理 -->  
    67     <context:component-scan base-package="com.pro.*.*.service.*"/>  
    68      <!-- 打开面向切面工具 -->  
    69     <aop:aspectj-autoproxy/>   
    70 </beans>            

    4 : 接下来 是springmvc-servlet.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:mvc="http://www.springframework.org/schema/mvc"
     4     xmlns:context="http://www.springframework.org/schema/context"
     5     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
     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/mvc 
     9     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
    10     http://www.springframework.org/schema/context 
    11     http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    12     http://www.springframework.org/schema/aop 
    13     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
    14     http://www.springframework.org/schema/tx 
    15     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">
    16     <!-- 注解方式 -->
    17     <mvc:annotation-driven />
    18     <!-- 自动扫描Controller -->
    19     <context:component-scan base-package="com.pro.*" />
    20     <!-- 配置一个springmvc框架的视图解析器 -->
    21 
    22     <!--          一下暂时注释 ,这个主要是返回到 html 或JSP,ftl 等  如果采用这个 就想下一个配置的去掉就好 -->
    23   <!-- 
    24   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    25 <  !- - 通过setter方法注入前缀 /WEB-INF/jsps/showMsg.jsp-  ->
    26         <property name="prefix" value="/WEB-INF/jsps/"   />
    27         <!- - 通过setter方法注入后缀 -  ->
    28       <  property name="suffix" value=".jsp" />
    29     </bean>
    30     --> 
    31 
    32     <!--   配置这个主要是最近项目采用jQueryEasy 返回json数据 ,如果采用这个就讲上面的去掉就好    -->
    33     
    34     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
    35         <property name="messageConverters">  
    36             <list>  
    37                 <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    38                      <property name="supportedMediaTypes" value="application/json" />
    39                 </bean>  
    40             </list>  
    41         </property>  
    42     </bean>
    43       <!-- 错误页面 --> 
    44     <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
    45         <property name="exceptionMappings">  
    46             <props>   
    47                 <prop key="org.apache.shiro.authz.UnauthorizedException">error/403</prop>  
    48             </props>  
    49         </property>  
    50     </bean>  
    51 
    52 
    53 
    54 
    55     <!-- 支持文件上传 -->
    56     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    57 <!-- 设置上传文件的最大尺寸为50MB -->
    58 <property name="maxUploadSize">  
    59    <value>52428800</value>  
    60         </property>     
    61     </bean>
    62 </beans>

    5:sqlMapConfig.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     <!-- 定义别名 -->
     7     <typeAliases>
     8         <typeAlias alias="SysUser"  type="com.pro.system.entity.SysUser" />  
     9     </typeAliases>
    10     <!-- 这里不需要再注册mybatis的SQL映射文件 ,因为在Spring的配置文件中配置sqlSessionFactory时注册了mapper的路径-->
    11 </configuration>     

    6 :jdbc.properties

    1 jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
    2 jdbc.url=jdbc:oracle:thin:@localhost:1521:dbname
    3 jdbc.username=usename
    4 jdbc.password=password
    5 c3p0.pool.size.max=20
    6 c3p0.pool.size.min=5
    7 c3p0.pool.size.ini=3
    8 c3p0.pool.size.increment=2 

    包结构 :

    QQ:871820604

  • 相关阅读:
    js怎样生成json的数据
    JS中生成与解析JSON
    [转]js动态创建json类型
    handlebars模板库的资源
    一指流沙,倾覆了谁的年华?
    c# const与readonly 关键字的比较
    静态类和静态构造函数
    编写跨浏览器兼容的 CSS 代码的金科玉律
    mysql 分页sql
    EF报LINQ to Entities 不识别方法“Web_JZRepository.Models.copy_materials_details get_Item(Int32) ”,因此该方法无法转换为存储表达式。
  • 原文地址:https://www.cnblogs.com/hjwbla/p/5163858.html
Copyright © 2011-2022 走看看