溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

發(fā)布時(shí)間:2020-08-02 20:33:30 來源:網(wǎng)絡(luò) 閱讀:496 作者:你都發(fā)了個(gè) 欄目:數(shù)據(jù)庫
一. 框架詳情
  1. Spring 是一個(gè)輕量級(jí)的Java開發(fā)框架,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 簡單來說,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。

  2. SpringMVC 屬于SpringFrameWork的后續(xù)產(chǎn)品,分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進(jìn)行定制。

  3. MyBatis 是一個(gè)基于Java的持久層框架。MyBatis提供的持久層框架包括SQL Maps和Data Access Objects(DAO)它消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis 使用簡單的 XML或注解用于配置和原始映射,將接口和 Java映射成數(shù)據(jù)庫中的記錄。

二. 創(chuàng)建Maven項(xiàng)目
  1. Eclipse中用Maven創(chuàng)建項(xiàng)目

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

  2. 按默認(rèn)Next

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

  3. 找到maven-archetype-webapp后,點(diǎn)擊next

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

  4. 填寫相應(yīng)的信息,GroupID是項(xiàng)目組織唯一的標(biāo)識(shí)符,實(shí)際對應(yīng)JAVA的包的結(jié)構(gòu)。ArtifactID就是項(xiàng)目的唯一的標(biāo)識(shí)符,實(shí)際對應(yīng)項(xiàng)目的名稱,就是項(xiàng)目根目錄的名稱。Package填了默認(rèn)給你建一個(gè)包,不寫也可以。

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

  5. 剛建好的目錄如下

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

  6. Maven規(guī)定必須添加以下Source Folder:
    src/main/resources
    src/main/java
    src/test/resources
    src/test/java
    在這步之前最好先項(xiàng)目上右鍵選擇properties,然后點(diǎn)擊java build path,在Librarys下,編輯JRE System Library,選擇workspace default jre。

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

  7. 分別修改輸出路徑為,對應(yīng)關(guān)系如下:

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

  8. 將項(xiàng)目轉(zhuǎn)換成Dynamic Web Project,在項(xiàng)目上右鍵Properties,在左側(cè)選擇 Project Facets。

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

  9. 設(shè)置部署時(shí)的文件發(fā)布路徑,刪除test的兩項(xiàng),因?yàn)閠est是測試使用,并不需要部署。
    設(shè)置將Maven的jar包發(fā)布到lib下。Add -> Java Build Path Entries -> Maven Dependencies -> Finish

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】
     

    三. Maven引入需要的JAR包

    Xml代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     
    四. 相關(guān)配置文件配置,整合SSM框架

    web.xml

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     
    spring.xml

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     

    為了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 編寫數(shù)據(jù)訪問對象 (DAO)的代碼,MyBatis-Spring 提供了一個(gè)動(dòng)態(tài)代理的實(shí)現(xiàn):MapperFactoryBean。這個(gè)類 可以讓你直接注入數(shù)據(jù)映射器接口到你的 service 層 bean 中。當(dāng)使用映射器時(shí),你僅僅如調(diào) 用你的 DAO 一樣調(diào)用它們就可以了,但是你不需要編寫任何 DAO 實(shí)現(xiàn)的代碼,因?yàn)?MyBatis-Spring 將會(huì)為你創(chuàng)建代理。

    spring-mybatis.xml

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     
    spring-mvc.xml

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     
    log4j.properties

    Sql代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】


    jdbc.properties

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     


    五. 利用MyBatis Generator自動(dòng)創(chuàng)建實(shí)體類、映射文件以及DAO接口

    MyBatis屬于一種半自動(dòng)的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手寫映射文件很容易出錯(cuò),所以可利用MyBatis生成器自動(dòng)生成實(shí)體類、DAO接口和Mapping映射文件。這樣可以省去很多的功夫,將生成的代碼copy到項(xiàng)目工程中即可。
    生成代碼需要的文件和jar并建立如下目錄結(jié)構(gòu):

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

    在generatorl.xml中配置相關(guān)的數(shù)據(jù)庫連接,已經(jīng)數(shù)據(jù)庫表:

    Xml代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

    打開CMD窗口 進(jìn)入該目錄結(jié)構(gòu),輸入命令行:

    java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite


    運(yùn)行完成后會(huì)生成相應(yīng)的dao mapper 和model,是不是很爽。
     

    六. 建立Service層以及conrorller層

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

     

    七. 建立測試類

    Java代碼  手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

    1. import java.util.List;  

    2.   

    3. import org.apache.log4j.LogManager;  

    4. import org.apache.log4j.Logger;  

    5. import org.junit.Test;  

    6. import org.junit.runner.RunWith;  

    7. import org.springframework.beans.factory.annotation.Autowired;  

    8. import org.springframework.test.context.ContextConfiguration;  

    9. import org.springframework.test.context.junit4.SpringJUnit4Cla***unner;  

    10.   

    11.   

    12.   

    13.   

    14. @RunWith(SpringJUnit4Cla***unner.class)   

    15. @ContextConfiguration(locations = {"classpath:spring.xml"})  

    16. public class TestMybatis {  

    17.   

    18.     @Autowired  

    19.     private OtherServiceI service;  

    20.   

    21.     @Test  

    22.     public void test() {  

    23.            String list=service.getOterList();  

    24.            logger.info(list);  

    25.     }  

    26.       

    27. }  

    28. package com.yingjun.test.controller;  

    29. import org.springframework.beans.factory.annotation.Autowired;  

    30. import org.springframework.stereotype.Controller;  

    31. import org.springframework.web.bind.annotation.RequestMapping;  

    32. import org.springframework.web.bind.annotation.ResponseBody;  

    33.   

    34. import com.alibaba.fastjson.JSON;  

    35. import com.yingjun.test.service.OtherServiceI;  

    36. import com.yingjun.test.service.StockStatusServiceI;  

    37. @Controller  

    38. @RequestMapping(value = "/")  

    39. public class TSSController {  

    40.       

    41.     @Autowired  

    42.     private OtherServiceI otherService;  

    43.       

    44.     @RequestMapping(value="/getOtherList",produces="text/html;charset=UTF-8" )   

    45.     @ResponseBody  

    46.     private String getOtherList(){  

    47.         String json=otherService.getOterList();  

    48.         return json;  

    49.     }  

    50. }  

    51. package com.yingjun.test.service;  

    52. import java.util.ArrayList;  

    53. import java.util.Arrays;  

    54. import java.util.HashSet;  

    55. import java.util.List;  

    56. import java.util.Map;  

    57. import java.util.Set;  

    58.   

    59. import org.springframework.beans.factory.annotation.Autowired;  

    60. import org.springframework.stereotype.Service;  

    61.   

    62. import com.alibaba.fastjson.JSON;  

    63. import com.alibaba.fastjson.serializer.SerializerFeature;  

    64. import com.yingjun.test.dao.OtherListMapper;  

    65. import com.yingjun.test.model.OtherList;  

    66. import com.yingjun.test.model.OtherListDomain;  

    67. @Service  

    68. public class OtherServiceImpl implements OtherServiceI {  

    69.   

    70.       

    71.     @Autowired  

    72.     private OtherListMapper otherListMapper;  

    73.       

    74.     @Override  

    75.     public String getOterList() {  

    76.         Set<String> set=new HashSet<String>();  

    77.         List<OtherList> list=otherListMapper.selectAll();  

    78.         List<OtherListDomain> jsonList=new ArrayList<OtherListDomain>();  

    79.         for(OtherList other:list){  

    80.             String title=other.getTitle();  

    81.             if(set.contains(title)){  

    82.                 continue;  

    83.             }else{  

    84.                 List<OtherList> t_list=new ArrayList<OtherList>();  

    85.                 for(OtherList data:list){  

    86.                     if(title.equals(data.getTitle())){  

    87.                         t_list.add(data);  

    88.                     }  

    89.                 }  

    90.                 OtherListDomain domain=new OtherListDomain();  

    91.                 domain.setTitle(title);  

    92.                 domain.setItems(t_list);  

    93.                 jsonList.add(domain);  

    94.                 set.add(other.getTitle());  

    95.             }  

    96.         }  

    97.         return JSON.toJSONString(jsonList, SerializerFeature.WriteMapNullValue);  

    98.     }  

    99.   

    100. }  

    1. package com.yingjun.test.service;  

    2.   

    3. public interface OtherServiceI {  

    4.       

    5.     public String getOterList();  

    6.   

    7. }  

    8. <?xml version="1.0" encoding="UTF-8"?>    

    9. <!DOCTYPE generatorConfiguration    

    10.   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"    

    11.   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  

    12.     

    13. <generatorConfiguration>  

    14.     <!-- 數(shù)據(jù)庫驅(qū)動(dòng) -->  

    15.     <classPathEntry location="mysql-connector-java-5.1.34.jar" />  

    16.     <context id="DB2Tables" targetRuntime="MyBatis3">  

    17.         <commentGenerator>  

    18.             <property name="suppressDate" value="true" />  

    19.             <!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->  

    20.             <property name="suppressAllComments" value="true" />  

    21.         </commentGenerator>  

    22.         <!--數(shù)據(jù)庫鏈接URL,用戶名、密碼 -->  

    23.         <jdbcConnection driverClass="com.mysql.jdbc.Driver"  

    24.             connectionURL="jdbc:mysql://192.168.1.194:3306/noc"   

    25.             userId="root" password="root">  

    26.         </jdbcConnection>  

    27.         <javaTypeResolver>  

    28.             <property name="forceBigDecimals" value="false" />  

    29.         </javaTypeResolver>  

    30.         <!-- 生成模型的包名和位置 -->  

    31.         <javaModelGenerator targetPackage="com.yingjun.test.model"  

    32.             targetProject="src">  

    33.             <property name="enableSubPackages" value="true" />  

    34.             <property name="trimStrings" value="true" />  

    35.         </javaModelGenerator>  

    36.         <!-- 生成映射文件的包名和位置 -->  

    37.         <sqlMapGenerator targetPackage="com.yingjun.test.mapping"  

    38.             targetProject="src">  

    39.             <property name="enableSubPackages" value="true" />  

    40.         </sqlMapGenerator>  

    41.         <!-- 生成DAO的包名和位置 -->  

    42.         <javaClientGenerator type="XMLMAPPER" targetPackage="com.yingjun.test.dao"   

    43.              targetProject="src">  

    44.              <property name="enableSubPackages" value="true" />  

    45.         </javaClientGenerator>  

    46.         <!-- 要生成的表 tableName是數(shù)據(jù)庫中的表名或視圖名 domainObjectName是實(shí)體類名 -->  

    47.         <table tableName="other_list" domainObjectName="OtherList"  

    48.             enableCountByExample="fasle" enableUpdateByExample="false"  

    49.             enableDeleteByExample="false" enableSelectByExample="false"  

    50.             selectByExampleQueryId="false" >  

    51.         </table>  

    52.     </context>  

    53. </generatorConfiguration>    

    1. log4j.rootLogger=info, console, debug, app, error  

    2.   

    3. ###Console ###  

    4. log4j.appender.console = org.apache.log4j.ConsoleAppender  

    5. log4j.appender.console.Target = System.out  

    6. log4j.appender.console.layout = org.apache.log4j.PatternLayout  

    7. log4j.appender.console.layout.ConversionPattern = %d %p[%C:%L]- %m%n  

    8.   

    9. ### debug ###    

    10. log4j.appender.debug = org.apache.log4j.DailyRollingFileAppender  

    11. log4j.appender.debug.File = log/debug.log  

    12. log4j.appender.debug.Append = true  

    13. log4j.appender.debug.Threshold = DEBUG  

    14. log4j.appender.debug.DatePattern='.'yyyy-MM-dd  

    15. log4j.appender.debug.layout = org.apache.log4j.PatternLayout  

    16. log4j.appender.debug.layout.ConversionPattern = %d %p[%c:%L] - %m%n  

    17.   

    18. ### app ###    

    19. log4j.appender.app = org.apache.log4j.DailyRollingFileAppender  

    20. log4j.appender.app.File = log/app.log  

    21. log4j.appender.app.Append = true  

    22. log4j.appender.app.Threshold = INFO  

    23. log4j.appender.app.DatePattern='.'yyyy-MM-dd  

    24. log4j.appender.app.layout = org.apache.log4j.PatternLayout  

    25. log4j.appender.app.layout.ConversionPattern = %d %p[%c:%L] - %m%n  

    26.   

    27. ### Error ###  

    28. log4j.appender.error = org.apache.log4j.DailyRollingFileAppender  

    29. log4j.appender.error.File = log/error.log  

    30. log4j.appender.error.Append = true  

    31. log4j.appender.error.Threshold = ERROR   

    32. log4j.appender.error.DatePattern='.'yyyy-MM-dd  

    33. log4j.appender.error.layout = org.apache.log4j.PatternLayout  

    34. log4j.appender.error.layout.ConversionPattern =%d %p[%c:%L] - %m%n  

    35. jdbc.driverClassName=com.mysql.jdbc.Driver  

    36. jdbc.url=jdbc:mysql://192.168.1.194:3306/test?useUnicode=true&characterEncoding=UTF-8  

    37. jdbc.username=root  

    38. jdbc.password=root  

    39.   

    40. c3p0.pool.size.max=20  

    41. c3p0.pool.size.min=5  

    42. c3p0.pool.size.ini=3  

    43. c3p0.pool.size.increment=2  

    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:p="http://www.springframework.org/schema/p"  

    4.     xmlns:context="http://www.springframework.org/schema/context"  

    5.     xmlns:mvc="http://www.springframework.org/schema/mvc"  

    6.     xsi:schemaLocation="  

    7.     http://www.springframework.org/schema/beans  

    8.     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  

    9.     http://www.springframework.org/schema/context  

    10.     http://www.springframework.org/schema/context/spring-context-3.0.xsd  

    11.     http://www.springframework.org/schema/mvc    

    12.     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  

    13.   

    14.     <!-- 默認(rèn)的注解映射的支持 -->  

    15.     <mvc:annotation-driven />  

    16.   

    17.     <!-- 自動(dòng)掃描該包,使SpringMVC認(rèn)為包下用了@controller注解的類是控制器 -->  

    18.     <context:component-scan base-package="com.yingjun.test.controller" />  

    19.   

    20.     <!--避免IE執(zhí)行AJAX時(shí),返回JSON出現(xiàn)下載文件 -->  

    21.     <bean id="mappingJacksonHttpMessageConverter"  

    22.         class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  

    23.         <property name="supportedMediaTypes">  

    24.             <list>  

    25.                 <value>text/html;charset=UTF-8</value>  

    26.             </list>  

    27.         </property>  

    28.     </bean>  

    29.   

    30.     <!-- 定義跳轉(zhuǎn)的文件的前后綴 ,視圖模式配置 -->  

    31.     <bean  

    32.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  

    33.         <!-- 這里的配置我的理解是自動(dòng)給后面action的方法return的字符串加上前綴和后綴,變成一個(gè) 可用的url地址 -->  

    34.         <property name="prefix" value="/WEB-INF/jsp/" />  

    35.         <property name="suffix" value=".jsp" />  

    36.     </bean>  

    37.   

    38.     <!-- 配置文件上傳,如果沒有使用文件上傳可以不用配置,當(dāng)然如果不配,那么配置文件中也不必引入上傳組件包 -->  

    39.     <bean id="multipartResolver"  

    40.         class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  

    41.         <!-- 默認(rèn)編碼 -->  

    42.         <property name="defaultEncoding" value="utf-8" />  

    43.         <!-- 文件大小最大值 -->  

    44.         <property name="maxUploadSize" value="10485760000" />  

    45.         <!-- 內(nèi)存中的最大值 -->  

    46.         <property name="maxInMemorySize" value="40960" />  

    47.     </bean>  

    48.   

    49. </beans>  

    50. <?xml version="1.0" encoding="UTF-8" ?>  

    51. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">  

    52. <configuration>  

    53.     <!-- 暫時(shí)不需要其他配置-->  

    54. </configuration>       

    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.     <!-- 掃描service、dao組件 -->  

    18.     <context:component-scan base-package="com.yingjun.test" />  

    19.     <!-- 分解配置 jdbc.properites -->  

    20.     <context:property-placeholder location="classpath:jdbc.properties" />  

    21.       

    22.     <!-- 數(shù)據(jù)源c3p0 -->  

    23.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  

    24.         <property name="driverClass" value="${jdbc.driverClassName}" />  

    25.         <property name="jdbcUrl" value="${jdbc.url}" />  

    26.         <property name="user" value="${jdbc.username}" />  

    27.         <property name="password" value="${jdbc.password}" />  

    28.         <property name="maxPoolSize" value="${c3p0.pool.size.max}" />  

    29.         <property name="minPoolSize" value="${c3p0.pool.size.min}" />  

    30.         <property name="initialPoolSize" value="${c3p0.pool.size.ini}" />  

    31.         <property name="acquireIncrement" value="${c3p0.pool.size.increment}" />  

    32.     </bean>  

    33.   

    34.   

    35.     <!-- sessionFactory 將spring和mybatis整合 -->  

    36.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  

    37.         <property name="dataSource" ref="dataSource" />  

    38.         <property name="configLocation" value="classpath:spring-mybatis.xml" />  

    39.         <property name="mapperLocations" value="classpath*:com/yingjun/test/mapping/**/*.xml" />  

    40.     </bean>  

    41.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  

    42.         <property name="basePackage" value="com,yingjun.test.dao" />  

    43.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />  

    44.     </bean>  

    45.   

    46.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  

    47.         <property name="dataSource" ref="dataSource" />  

    48.     </bean>  

    49.     <tx:advice id="transactionAdvice" transaction-manager="transactionManager">  

    50.         <tx:attributes>  

    51.             <tx:method name="add*" propagation="REQUIRED" />  

    52.             <tx:method name="append*" propagation="REQUIRED" />  

    53.             <tx:method name="insert*" propagation="REQUIRED" />  

    54.             <tx:method name="save*" propagation="REQUIRED" />  

    55.             <tx:method name="update*" propagation="REQUIRED" />  

    56.             <tx:method name="modify*" propagation="REQUIRED" />  

    57.             <tx:method name="edit*" propagation="REQUIRED" />  

    58.             <tx:method name="delete*" propagation="REQUIRED" />  

    59.             <tx:method name="remove*" propagation="REQUIRED" />  

    60.             <tx:method name="repair" propagation="REQUIRED" />  

    61.             <tx:method name="delAndRepair" propagation="REQUIRED" />  

    62.   

    63.             <tx:method name="get*" propagation="SUPPORTS" />  

    64.             <tx:method name="find*" propagation="SUPPORTS" />  

    65.             <tx:method name="load*" propagation="SUPPORTS" />  

    66.             <tx:method name="search*" propagation="SUPPORTS" />  

    67.             <tx:method name="datagrid*" propagation="SUPPORTS" />  

    68.   

    69.             <tx:method name="*" propagation="SUPPORTS" />  

    70.         </tx:attributes>  

    71.     </tx:advice>  

    72.     <aop:config>  

    73.         <aop:pointcut id="transactionPointcut" expression="execution(* com.yingjun.test.service..*Impl.*(..))" />  

    74.         <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />  

    75.     </aop:config>  

    76. </beans>              

    77. <?xml version="1.0" encoding="UTF-8"?>  

    78. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    79.     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"  

    80.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"  

    81.     version="2.4">  

    82.   

    83.     <!-- 配置 Spring -->  

    84.     <context-param>  

    85.         <param-name>contextConfigLocation</param-name>  

    86.         <param-value>classpath:spring.xml</param-value>  

    87.     </context-param>  

    88.     <listener>  

    89.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  

    90.     </listener>  

    91.     <!-- 防止Spring內(nèi)存溢出監(jiān)聽器 -->  

    92.     <listener>  

    93.         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  

    94.     </listener>  

    95.   

    96.     <!-- 配置springmvc -->  

    97.     <servlet>  

    98.         <servlet-name>springMVC</servlet-name>  

    99.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  

    100.         <init-param>  

    101.             <param-name>contextConfigLocation</param-name>  

    102.             <param-value>classpath:spring-mvc.xml</param-value>  

    103.         </init-param>  

    104.         <load-on-startup>1</load-on-startup>  

    105.     </servlet>  

    106.     <servlet-mapping>  

    107.         <servlet-name>springMVC</servlet-name>  

    108.         <url-pattern>/</url-pattern>  

    109.     </servlet-mapping>  

    110.       

    111.     <!-- 字符集過濾器 -->  

    112.     <filter>  

    113.         <filter-name>encodingFilter</filter-name>  

    114.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  

    115.         <init-param>  

    116.             <param-name>encoding</param-name>  

    117.             <param-value>UTF-8</param-value>  

    118.         </init-param>  

    119.         <init-param>  

    120.             <param-name>forceEncoding</param-name>  

    121.             <param-value>true</param-value>  

    122.         </init-param>  

    123.     </filter>  

    124.     <filter-mapping>  

    125.         <filter-name>encodingFilter</filter-name>  

    126.         <url-pattern>/*</url-pattern>  

    127.     </filter-mapping>  

    128.       

    129. </web-app>  

    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

    2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  

    3.     <modelVersion>4.0.0</modelVersion>  

    4.     <groupId>com.yingjun.test</groupId>  

    5.     <artifactId>TradingState</artifactId>  

    6.     <packaging>war</packaging>  

    7.     <version>2.0.1</version>  

    8.   

    9.     <properties>  

    10.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  

    11.         <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>  

    12.         <spring.version>3.2.9.RELEASE</spring.version>  

    13.         <mybatis.version>3.1.1</mybatis.version>  

    14.         <mybatisspring.version>1.1.1</mybatisspring.version>  

    15.     </properties>  

    16.   

    17.     <dependencies>  

    18.         <dependency>  

    19.             <groupId>org.springframework</groupId>  

    20.             <artifactId>spring-core</artifactId>  

    21.             <version>${spring.version}</version>  

    22.         </dependency>  

    23.         <dependency>  

    24.             <groupId>org.springframework</groupId>  

    25.             <artifactId>spring-webmvc</artifactId>  

    26.             <version>${spring.version}</version>  

    27.         </dependency>  

    28.         <dependency>  

    29.             <groupId>org.springframework</groupId>  

    30.             <artifactId>spring-test</artifactId>  

    31.             <version>${spring.version}</version>  

    32.         </dependency>  

    33.         <dependency>  

    34.             <groupId>org.mybatis</groupId>  

    35.             <artifactId>mybatis</artifactId>  

    36.             <version>${mybatis.version}</version>  

    37.         </dependency>  

    38.         <dependency>  

    39.             <groupId>org.mybatis</groupId>  

    40.             <artifactId>mybatis-spring</artifactId>  

    41.             <version>${mybatisspring.version}</version>  

    42.         </dependency>  

    43.         <dependency>  

    44.             <groupId>mysql</groupId>  

    45.             <artifactId>mysql-connector-java</artifactId>  

    46.             <version>5.1.34</version>  

    47.         </dependency>  

    48.         <dependency>  

    49.             <groupId>junit</groupId>  

    50.             <artifactId>junit</artifactId>  

    51.             <version>4.11</version>  

    52.             <scope>test</scope>  

    53.         </dependency>  

    54.         <dependency>  

    55.             <groupId>c3p0</groupId>  

    56.             <artifactId>c3p0</artifactId>  

    57.             <version>0.9.1.2</version>  

    58.         </dependency>  

    59.         <dependency>  

    60.             <groupId>org.aspectj</groupId>  

    61.             <artifactId>aspectjweaver</artifactId>  

    62.             <version>1.8.1</version>  

    63.         </dependency>  

    64.         <dependency>  

    65.             <groupId>javax.servlet</groupId>  

    66.             <artifactId>jstl</artifactId>  

    67.             <version>1.2</version>  

    68.         </dependency>  

    69.         <dependency>  

    70.             <groupId>javax.servlet</groupId>  

    71.             <artifactId>servlet-api</artifactId>  

    72.             <version>3.0</version>  

    73.             <scope>provided</scope>  

    74.         </dependency>  

    75.         <dependency>  

    76.             <groupId>javax.servlet.jsp</groupId>  

    77.             <artifactId>jsp-api</artifactId>  

    78.             <version>2.2</version>  

    79.             <scope>provided</scope>  

    80.         </dependency>  

    81.         <dependency>  

    82.             <groupId>commons-fileupload</groupId>  

    83.             <artifactId>commons-fileupload</artifactId>  

    84.             <version>1.3.1</version>  

    85.         </dependency>  

    86.         <dependency>  

    87.             <groupId>commons-lang</groupId>  

    88.             <artifactId>commons-lang</artifactId>  

    89.             <version>2.6</version>  

    90.         </dependency>  

    91.         <dependency>  

    92.             <groupId>commons-codec</groupId>  

    93.             <artifactId>commons-codec</artifactId>  

    94.             <version>1.9</version>  

    95.         </dependency>  

    96.         <dependency>  

    97.             <groupId>org.apache.httpcomponents</groupId>  

    98.             <artifactId>httpclient</artifactId>  

    99.             <version>4.5</version>  

    100.         </dependency>  

    101.         <dependency>  

    102.             <groupId>org.slf4j</groupId>  

    103.             <artifactId>slf4j-api</artifactId>  

    104.             <version>1.7.10</version>  

    105.         </dependency>  

    106.         <dependency>  

    107.             <groupId>org.slf4j</groupId>  

    108.             <artifactId>slf4j-log4j12</artifactId>  

    109.             <version>1.7.10</version>  

    110.         </dependency>  

    111.         <dependency>  

    112.             <groupId>log4j</groupId>  

    113.             <artifactId>log4j</artifactId>  

    114.             <version>1.2.17</version>  

    115.         </dependency>  

    116.         <dependency>  

    117.             <groupId>com.alibaba</groupId>  

    118.             <artifactId>fastjson</artifactId>  

    119.             <version>1.1.41</version>  

    120.         </dependency>  

    121.         <dependency>  

    122.             <groupId>org.codehaus.jackson</groupId>  

    123.             <artifactId>jackson-mapper-asl</artifactId>  

    124.             <version>1.9.13</version>  

    125.         </dependency>  

    126.     </dependencies>  

    127.   

    128.     <build>  

    129.         <plugins>  

    130.             <plugin>  

    131.                 <artifactId>maven-compiler-plugin</artifactId>  

    132.                 <version>2.3.2</version>  

    133.                 <configuration>  

    134.                     <source>1.7</source>  

    135.                     <target>1.7</target>  

    136.                 </configuration>  

    137.             </plugin>  

    138.             <plugin>  

    139.                 <artifactId>maven-war-plugin</artifactId>  

    140.                 <version>2.2</version>  

    141.                 <configuration>  

    142.                     <version>3.0</version>  

    143.                     <failOnMissingWebXml>false</failOnMissingWebXml>  

    144.                 </configuration>  

    145.             </plugin>  

    146.         </plugins>  

    147.         <finalName>${project.artifactId}_${project.version}_${maven.build.timestamp}</finalName>  

    148.     </build>  

    149. </project>  

 框架/平臺(tái)構(gòu)成:

Maven+Springmvc + Mybatis + Shiro(權(quán)限)+ Tiles(模板) +ActiveMQ(消息隊(duì)列) + Rest(服務(wù)) + WebService(服務(wù))+ EHcache(緩存) + Quartz(定時(shí)調(diào)度)+ Html5(支持PC、IOS、Android)

用戶權(quán)限系統(tǒng):
組織結(jié)構(gòu):角色、用戶、用戶組、組織機(jī)構(gòu);權(quán)限點(diǎn):頁面、方法、按鈕、數(shù)據(jù)權(quán)限、分級(jí)授權(quán)

項(xiàng)目管理新體驗(yàn)
快速出原型系統(tǒng)、組件樹、版本控制、模塊移植、協(xié)同開發(fā)、實(shí)時(shí)監(jiān)控、發(fā)布管理

可持續(xù)集成:
所有組件可移植、可定制、可擴(kuò)充,開發(fā)成果不斷積累,形成可持續(xù)發(fā)展的良性循環(huán)

支持平臺(tái)平臺(tái): 
Windows XP、Windows 7 、Windows 10 、 Linux 、 Unix

服務(wù)器容器:
Tomcat 5/6/7 、Jetty、JBoss、WebSphere 8.5 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】

 

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)【轉(zhuǎn)】


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI