Spring+MyBatis双数据库配置

来源:互联网 发布:碧姬芭铎 知乎 编辑:程序博客网 时间:2024/06/14 04:42

 最近项目中遇到要调用其他数据库的情况,本来只使用一个MySQL数据库,但随着项目内容越来越多,逻辑越来越复杂。原来一个数据库已经不够用了,需要分库分表,所以决定扩充数据库,正好Spring可以灵活的扩充数据库。下面简单写一篇博文,记录下多数据库配置的过程。

       1.项目结构如下图:

       

      其中mkhl和ulab分别对应两个数据库模块,同时也对应两个不同的功能模块。

      2.整个Maven项目的配置文件:pom.xml

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  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/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.   
  5.     <groupId>ULAB_UsersProvider</groupId>  
  6.     <artifactId>ULAB_UsersProvider</artifactId>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <packaging>jar</packaging>  
  9.   
  10.     <name>ULAB_UsersProvider</name>  
  11.     <url>http://maven.apache.org</url>  
  12.   
  13.     <properties>  
  14.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  15.         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
  16.         <spring.version>4.0.0.RELEASE</spring.version>  
  17.         <jackson.version>2.5.0</jackson.version>  
  18.     </properties>  
  19.   
  20.     <dependencies>  
  21.         <!-- junit -->  
  22.         <dependency>  
  23.             <groupId>junit</groupId>  
  24.             <artifactId>junit</artifactId>  
  25.             <version>4.8.1</version>  
  26.             <scope>test</scope>  
  27.         </dependency>  
  28.           
  29.         <dependency>  
  30.             <groupId>javax.activation</groupId>  
  31.             <artifactId>activation</artifactId>  
  32.             <version>1.1</version>  
  33.         </dependency>  
  34.         <dependency>  
  35.             <groupId>commons-lang</groupId>  
  36.             <artifactId>commons-lang</artifactId>  
  37.             <version>2.6</version>  
  38.         </dependency>  
  39.   
  40.         <!-- spring -->  
  41.         <dependency>  
  42.             <groupId>org.springframework</groupId>  
  43.             <artifactId>spring-web</artifactId>  
  44.             <version>${spring.version}</version>  
  45.         </dependency>  
  46.         <dependency>  
  47.             <groupId>org.springframework</groupId>  
  48.             <artifactId>spring-context</artifactId>  
  49.             <version>${spring.version}</version>  
  50.         </dependency>  
  51.         <dependency>  
  52.             <groupId>org.springframework</groupId>  
  53.             <artifactId>spring-webmvc</artifactId>  
  54.             <version>${spring.version}</version>  
  55.         </dependency>  
  56.         <dependency>  
  57.             <groupId>org.springframework</groupId>  
  58.             <artifactId>spring-aspects</artifactId>  
  59.             <version>${spring.version}</version>  
  60.         </dependency>  
  61.         <dependency>  
  62.             <groupId>org.springframework</groupId>  
  63.             <artifactId>spring-context-support</artifactId>  
  64.             <version>${spring.version}</version>  
  65.         </dependency>  
  66.         <dependency>  
  67.             <groupId>org.springframework</groupId>  
  68.             <artifactId>spring-tx</artifactId>  
  69.             <version>${spring.version}</version>  
  70.         </dependency>  
  71.         <dependency>  
  72.             <groupId>org.springframework</groupId>  
  73.             <artifactId>spring-jdbc</artifactId>  
  74.             <version>${spring.version}</version>  
  75.         </dependency>  
  76.         <dependency>  
  77.             <groupId>org.springframework</groupId>  
  78.             <artifactId>spring-orm</artifactId>  
  79.             <version>${spring.version}</version>  
  80.         </dependency>  
  81.         <dependency>  
  82.             <groupId>org.springframework</groupId>  
  83.             <artifactId>spring-oxm</artifactId>  
  84.             <version>${spring.version}</version>  
  85.         </dependency>  
  86.   
  87.         <!-- dubbo -->  
  88.         <dependency>  
  89.             <groupId>com.alibaba</groupId>  
  90.             <artifactId>dubbo</artifactId>  
  91.             <version>2.5.3</version>  
  92.         </dependency>  
  93.           
  94.         <!-- zookeeper -->  
  95.         <dependency>  
  96.             <groupId>org.apache.zookeeper</groupId>  
  97.             <artifactId>zookeeper</artifactId>  
  98.             <version>3.4.6</version>  
  99.         </dependency>  
  100.         <dependency>  
  101.             <groupId>com.github.sgroschupf</groupId>  
  102.             <artifactId>zkclient</artifactId>  
  103.             <version>0.1</version>  
  104.         </dependency>  
  105.   
  106.         <!-- mysql连接 -->  
  107.         <dependency>  
  108.             <groupId>mysql</groupId>  
  109.             <artifactId>mysql-connector-java</artifactId>  
  110.             <version>5.1.34</version>  
  111.         </dependency>  
  112.           
  113.         <dependency>  
  114.             <groupId>commons-pool</groupId>  
  115.             <artifactId>commons-pool</artifactId>  
  116.             <version>1.6</version>  
  117.         </dependency>  
  118.         <dependency>  
  119.             <groupId>commons-dbcp</groupId>  
  120.             <artifactId>commons-dbcp</artifactId>  
  121.             <version>1.4</version>  
  122.         </dependency>  
  123.   
  124.         <!-- oracle连接 -->  
  125.         <!-- <dependency>  
  126.             <groupId>com.oracle</groupId>  
  127.             <artifactId>ojdbc14</artifactId>  
  128.             <version>10.2.0.1.0</version>  
  129.         </dependency> -->  
  130.           
  131.         <!-- SQL Server连接 -->  
  132.         <dependency>  
  133.           <groupId>com.microsoft.sqlserver</groupId>  
  134.           <artifactId>sqljdbc4</artifactId>  
  135.           <version>4.0</version>  
  136.         </dependency>  
  137.   
  138.         <!-- 数据源 -->  
  139.         <dependency>  
  140.             <groupId>com.alibaba</groupId>  
  141.             <artifactId>druid</artifactId>  
  142.             <version>1.0.12</version>  
  143.         </dependency>  
  144.         <dependency>  
  145.             <groupId>org.aspectj</groupId>  
  146.             <artifactId>aspectjweaver</artifactId>  
  147.             <version>1.8.4</version>  
  148.         </dependency>  
  149.           
  150.         <!-- ehcache -->  
  151.         <dependency>  
  152.             <groupId>net.sf.ehcache</groupId>  
  153.             <artifactId>ehcache-core</artifactId>  
  154.             <version>2.6.10</version>  
  155.         </dependency>  
  156.         <dependency>  
  157.             <groupId>org.mybatis</groupId>  
  158.             <artifactId>mybatis-ehcache</artifactId>  
  159.             <version>1.0.0</version>  
  160.         </dependency>  
  161.           
  162.         <!-- log4j -->  
  163.         <dependency>  
  164.             <groupId>log4j</groupId>  
  165.             <artifactId>log4j</artifactId>  
  166.             <version>1.2.17</version>  
  167.         </dependency>  
  168.         <dependency>  
  169.             <groupId>com.googlecode.log4jdbc</groupId>  
  170.             <artifactId>log4jdbc</artifactId>  
  171.             <version>1.2</version>  
  172.             <scope>runtime</scope>  
  173.         </dependency>  
  174.         <dependency>  
  175.             <groupId>net.bull.javamelody</groupId>  
  176.             <artifactId>javamelody-core</artifactId>  
  177.             <version>1.50.0</version>  
  178.         </dependency>  
  179.   
  180.         <!-- servlet -->  
  181.         <!-- <dependency>  
  182.             <groupId>javax.servlet</groupId>  
  183.             <artifactId>servlet-api</artifactId>  
  184.             <version>2.5</version>  
  185.         </dependency>  
  186.         <dependency>  
  187.             <groupId>javax.servlet</groupId>  
  188.             <artifactId>jstl</artifactId>  
  189.             <version>1.2</version>  
  190.         </dependency> -->  
  191.   
  192.         <!-- json -->  
  193.         <dependency>  
  194.             <groupId>org.codehaus.jackson</groupId>  
  195.             <artifactId>jackson-mapper-asl</artifactId>  
  196.             <version>1.9.13</version>  
  197.         </dependency>  
  198.         <dependency>  
  199.             <groupId>com.alibaba</groupId>  
  200.             <artifactId>fastjson</artifactId>  
  201.             <version>1.2.3</version>  
  202.         </dependency>  
  203.         <dependency>  
  204.             <groupId>com.fasterxml.jackson.core</groupId>  
  205.             <artifactId>jackson-annotations</artifactId>  
  206.             <version>${jackson.version}</version>  
  207.         </dependency>  
  208.         <dependency>  
  209.             <groupId>com.fasterxml.jackson.core</groupId>  
  210.             <artifactId>jackson-core</artifactId>  
  211.             <version>${jackson.version}</version>  
  212.         </dependency>  
  213.         <dependency>  
  214.             <groupId>com.fasterxml.jackson.core</groupId>  
  215.             <artifactId>jackson-databind</artifactId>  
  216.             <version>${jackson.version}</version>  
  217.         </dependency>  
  218.   
  219.         <!-- mybatis核心包 -->  
  220.         <dependency>  
  221.             <groupId>org.mybatis</groupId>  
  222.             <artifactId>mybatis</artifactId>  
  223.             <version>3.2.4</version>  
  224.         </dependency>  
  225.   
  226.         <!-- mybatis/spring包 -->  
  227.         <dependency>  
  228.             <groupId>org.mybatis</groupId>  
  229.             <artifactId>mybatis-spring</artifactId>  
  230.             <version>1.2.2</version>  
  231.         </dependency>  
  232.   
  233.         <!-- 文件上传 -->  
  234.         <!-- <dependency>  
  235.             <groupId>commons-io</groupId>  
  236.             <artifactId>commons-io</artifactId>  
  237.             <version>2.4</version>  
  238.         </dependency>  
  239.         <dependency>  
  240.             <groupId>commons-fileupload</groupId>  
  241.             <artifactId>commons-fileupload</artifactId>  
  242.             <version>1.2.2</version>  
  243.         </dependency>  
  244.         <dependency>  
  245.             <groupId>jexcelapi</groupId>  
  246.             <artifactId>jxl</artifactId>  
  247.             <version>2.4.2</version>  
  248.         </dependency>  
  249.         <dependency>  
  250.             <groupId>org.apache.poi</groupId>  
  251.             <artifactId>poi</artifactId>  
  252.             <version>3.9</version>  
  253.         </dependency>  
  254.         <dependency>  
  255.             <groupId>org.apache.poi</groupId>  
  256.             <artifactId>poi-ooxml</artifactId>  
  257.             <version>3.9</version>  
  258.         </dependency> -->  
  259.           
  260.         <!-- <dependency>  
  261.             <groupId>redis.clients</groupId>  
  262.             <artifactId>jedis</artifactId>  
  263.             <version>2.0.0</version>  
  264.             <type>jar</type>  
  265.         </dependency>   
  266.           
  267.         <dependency>  
  268.             <groupId>javax.xml.rpc</groupId>  
  269.             <artifactId>javax.xml.rpc-api</artifactId>  
  270.             <version>1.1.1</version>  
  271.         </dependency>  
  272.           
  273.         <dependency>  
  274.             <groupId>wsdl4j</groupId>  
  275.             <artifactId>wsdl4j</artifactId>  
  276.             <version>1.6.3</version>  
  277.         </dependency>  
  278.           
  279.         <dependency>  
  280.             <groupId>org.codehaus.xfire</groupId>  
  281.             <artifactId>xfire-all</artifactId>  
  282.             <version>1.2.6</version>  
  283.         </dependency> -->  
  284.           
  285.         <!-- axis2 -->  
  286.         <!-- <dependency>  
  287.             <groupId>org.apache.axis2</groupId>  
  288.             <artifactId>axis2</artifactId>  
  289.             <version>1.6.2</version>  
  290.         </dependency>  
  291.         <dependency>  
  292.             <groupId>org.apache.axis2</groupId>  
  293.             <artifactId>axis2-aar-maven-plugin</artifactId>  
  294.             <version>1.6.2</version>  
  295.         </dependency>  
  296.         <dependency>  
  297.             <groupId>org.apache.axis2</groupId>  
  298.             <artifactId>axis2-adb</artifactId>  
  299.             <version>1.6.2</version>  
  300.         </dependency>  
  301.         <dependency>  
  302.             <groupId>org.apache.axis2</groupId>  
  303.             <artifactId>axis2-adb-codegen</artifactId>  
  304.             <version>1.6.2</version>  
  305.         </dependency>  
  306.         <dependency>  
  307.             <groupId>org.apache.axis2</groupId>  
  308.             <artifactId>axis2-ant-plugin</artifactId>  
  309.             <version>1.6.2</version>  
  310.         </dependency>  
  311.         <dependency>  
  312.             <groupId>org.apache.axis2</groupId>  
  313.             <artifactId>axis2-clustering</artifactId>  
  314.             <version>1.6.2</version>  
  315.         </dependency>  
  316.         <dependency>  
  317.             <groupId>org.apache.axis2</groupId>  
  318.             <artifactId>axis2-codegen</artifactId>  
  319.             <version>1.6.2</version>  
  320.         </dependency>  
  321.         <dependency>  
  322.             <groupId>org.apache.axis2</groupId>  
  323.             <artifactId>axis2-integration</artifactId>  
  324.             <version>1.6.2</version>  
  325.         </dependency>  
  326.         <dependency>  
  327.             <groupId>org.apache.axis2</groupId>  
  328.             <artifactId>axis2-java2wsdl</artifactId>  
  329.             <version>1.6.2</version>  
  330.         </dependency>  
  331.         <dependency>  
  332.             <groupId>org.apache.axis2</groupId>  
  333.             <artifactId>axis2-java2wsdl-maven-plugin</artifactId>  
  334.             <version>1.6.2</version>  
  335.         </dependency>  
  336.         <dependency>  
  337.             <groupId>org.apache.axis2</groupId>  
  338.             <artifactId>axis2-jaxbri</artifactId>  
  339.             <version>1.6.2</version>  
  340.         </dependency>  
  341.         <dependency>  
  342.             <groupId>org.apache.axis2</groupId>  
  343.             <artifactId>axis2-jaxws</artifactId>  
  344.             <version>1.6.2</version>  
  345.         </dependency>  
  346.         <dependency>  
  347.             <groupId>org.apache.axis2</groupId>  
  348.             <artifactId>axis2-jaxws-integration</artifactId>  
  349.             <version>1.6.2</version>  
  350.         </dependency>  
  351.         <dependency>  
  352.             <groupId>org.apache.axis2</groupId>  
  353.             <artifactId>axis2-jibx</artifactId>  
  354.             <version>1.6.2</version>  
  355.         </dependency>  
  356.         <dependency>  
  357.             <groupId>org.apache.axis2</groupId>  
  358.             <artifactId>axis2-json</artifactId>  
  359.             <version>1.6.2</version>  
  360.         </dependency>  
  361.         <dependency>  
  362.             <groupId>org.apache.axis2</groupId>  
  363.             <artifactId>axis2-kernel</artifactId>  
  364.             <version>1.6.2</version>  
  365.         </dependency>  
  366.         <dependency>  
  367.             <groupId>org.apache.axis2</groupId>  
  368.             <artifactId>axis2-mar-maven-plugin</artifactId>  
  369.             <version>1.6.2</version>  
  370.         </dependency>  
  371.         <dependency>  
  372.             <groupId>org.apache.axis2</groupId>  
  373.             <artifactId>axis2-metadata</artifactId>  
  374.             <version>1.6.2</version>  
  375.         </dependency>  
  376.         <dependency>  
  377.             <groupId>org.apache.axis2</groupId>  
  378.             <artifactId>axis2-mtompolicy</artifactId>  
  379.             <version>1.6.2</version>  
  380.         </dependency>  
  381.         <dependency>  
  382.             <groupId>org.apache.axis2</groupId>  
  383.             <artifactId>axis2-repo-maven-plugin</artifactId>  
  384.             <version>1.6.2</version>  
  385.         </dependency>  
  386.         <dependency>  
  387.             <groupId>org.apache.axis2</groupId>  
  388.             <artifactId>axis2-resource-bundle</artifactId>  
  389.             <version>1.6.2</version>  
  390.         </dependency>  
  391.         <dependency>  
  392.             <groupId>org.apache.axis2</groupId>  
  393.             <artifactId>axis2-saaj</artifactId>  
  394.             <version>1.6.2</version>  
  395.         </dependency>  
  396.         <dependency>  
  397.             <groupId>org.apache.axis2</groupId>  
  398.             <artifactId>axis2-soapmonitor-servlet</artifactId>  
  399.             <version>1.6.2</version>  
  400.         </dependency>  
  401.         <dependency>  
  402.             <groupId>org.apache.axis2</groupId>  
  403.             <artifactId>axis2-spring</artifactId>  
  404.             <version>1.6.2</version>  
  405.         </dependency>  
  406.         <dependency>  
  407.             <groupId>org.apache.axis2</groupId>  
  408.             <artifactId>axis2-transport-http</artifactId>  
  409.             <version>1.6.2</version>  
  410.         </dependency>  
  411.         <dependency>  
  412.             <groupId>org.apache.axis2</groupId>  
  413.             <artifactId>axis2-transport-local</artifactId>  
  414.             <version>1.6.2</version>  
  415.         </dependency>  
  416.         <dependency>  
  417.             <groupId>org.apache.axis2</groupId>  
  418.             <artifactId>axis2-wsdl2code-maven-plugin</artifactId>  
  419.             <version>1.6.2</version>  
  420.         </dependency>  
  421.         <dependency>  
  422.             <groupId>org.apache.axis2</groupId>  
  423.             <artifactId>axis2-xmlbeans</artifactId>  
  424.             <version>1.6.2</version>  
  425.         </dependency>  
  426.         <dependency>  
  427.             <groupId>org.apache.axis2</groupId>  
  428.             <artifactId>org.apache.axis2.osgi</artifactId>  
  429.             <version>1.6.2</version>  
  430.         </dependency> -->  
  431.           
  432.         <!-- Mybatis_pagehelper -->  
  433.         <dependency>  
  434.             <groupId>com.github.pagehelper</groupId>  
  435.             <artifactId>pagehelper</artifactId>  
  436.             <version>4.0.1</version>  
  437.         </dependency>  
  438.           
  439.     </dependencies>  
  440.   
  441.     <build>  
  442.         <finalName>ULAB_UsersProvider1.0</finalName>  
  443.         <plugins>  
  444.             <plugin>  
  445.                 <groupId>org.apache.maven.plugins</groupId>  
  446.                 <artifactId>maven-compiler-plugin</artifactId>  
  447.                 <version>3.1</version>  
  448.                 <configuration>  
  449.                     <source>1.7</source>  
  450.                     <target>1.7</target>  
  451.                 </configuration>  
  452.             </plugin>  
  453.   
  454.             <plugin>  
  455.                 <groupId>org.apache.maven.plugins</groupId>  
  456.                 <artifactId>maven-shade-plugin</artifactId>  
  457.                 <version>1.4</version>  
  458.                 <executions>  
  459.                     <execution>  
  460.                         <phase>package</phase>  
  461.                         <goals>  
  462.                             <goal>shade</goal>  
  463.                         </goals>  
  464.                         <configuration>  
  465.                             <filters>  
  466.                                 <filter>  
  467.                                     <artifact>*:*</artifact>  
  468.                                     <excludes>  
  469.                                         <exclude>META-INF/*.SF</exclude>  
  470.                                         <exclude>META-INF/*.DSA</exclude>  
  471.                                         <exclude>META-INF/*.RSA</exclude>  
  472.                                     </excludes>  
  473.                                 </filter>  
  474.                             </filters>  
  475.                             <transformers>  
  476.                                 <transformer  
  477.                                     implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
  478.                                     <mainClass>com.ouc.ulab.main.UsersProvider</mainClass>  
  479.                                 </transformer>  
  480.                                 <transformer  
  481.                                     implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
  482.                                     <resource>META-INF/spring.handlers</resource>  
  483.                                 </transformer>  
  484.                                 <transformer  
  485.                                     implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
  486.                                     <resource>META-INF/spring.schemas</resource>  
  487.                                 </transformer>  
  488.                             </transformers>  
  489.                         </configuration>  
  490.                     </execution>  
  491.                 </executions>  
  492.             </plugin>  
  493.   
  494.         </plugins>  
  495.   
  496.     </build>  
  497. </project>  

   3.接下来介绍与Spring和MyBatis相关的配置文件:

     1)数据库配置文件:jdbc.properties

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. #jdbc.driverClassName=oracle.jdbc.driver.OracleDriver  
  2. #jdbc.url=jdbc\:oracle\:thin\:@192.168.151.239\:1521\:orcl  
  3. #jdbc.username=ULab  
  4. #jdbc.password=123456  
  5. #jdbc.validationQuery=SELECT 1 FROM DUAL  
  6.   
  7. jdbc.B.driverClassName=com.mysql.jdbc.Driver  
  8. jdbc.B.url=jdbc\:mysql\://110.126.70.48\:3310/ulab?useUnicode\=true&characterEncoding\=UTF-8  
  9. jdbc.B.username=mkhl  
  10. jdbc.B.password=123456  
  11.   
  12. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver  
  13. jdbc.url=jdbc\:sqlserver\://110.135.60.233\:1433;DatabaseName=OUCJiance  
  14. jdbc.username=OUCUser  
  15. jdbc.password=OUC,789  
  16.   
  17. jdbc.initialSize=1  
  18. jdbc.maxActive=20  
  19. jdbc.minIdle=0  
  20. jdbc.maxWait=60000  
  21. jdbc.validationQuery=SELECT 1  
  22. jdbc.testOnBorrow=false  
  23. jdbc.testOnReturn=false  
  24. jdbc.testWhileIdle=true  
  25. jdbc.timeBetweenEvictionRunsMillis=60000  
  26. jdbc.minEvictableIdleTimeMillis=25200000  
  27. jdbc.removeAbandoned=true  
  28. jdbc.removeAbandonedTimeout=1800  
  29. jdbc.logAbandoned=true  
  30. jdbc.filters=stat  

     2)ehcache缓存配置:ehcache.xml

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect"   
  2.          dynamicConfig="true">   
  3. <diskStore path="java.io.tmpdir" />   
  4. <defaultCache   
  5.             maxElementsInMemory="10000"   
  6.             eternal="false"   
  7.             timeToIdleSeconds="120"   
  8.             timeToLiveSeconds="120"   
  9.             overflowToDisk="true"   
  10.             diskSpoolBufferSizeMB="30"   
  11.             maxElementsOnDisk="10000000"   
  12.             diskExpiryThreadIntervalSeconds="120"   
  13.             memoryStoreEvictionPolicy="LRU"   
  14.             />   
  15.     <cache name="mavenCache"   
  16.             maxElementsInMemory="10000"   
  17.             eternal="false"   
  18.             timeToIdleSeconds="120"   
  19.             timeToLiveSeconds="120"   
  20.             overflowToDisk="true"   
  21.             diskSpoolBufferSizeMB="30"   
  22.             maxElementsOnDisk="10000000"   
  23.             diskExpiryThreadIntervalSeconds="120"   
  24.             memoryStoreEvictionPolicy="LRU"   
  25.             />        
  26. </ehcache>   

    3)日志配置:log4j.properties

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. log4j.rootLogger=INFO,stdout,logfile  
  2.   
  3. log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
  4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   
  5. log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n    
  6.   
  7. log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender  
  8. log4j.appender.logfile.File=D:/log4j/U-LAB/usersProvide_log  
  9. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
  10. log4j.appender.logfile.DatePattern='_'yyyy-MM-dd'.log'  
  11. log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %-5p [%t] %c.%M(%L) - %m%n  
  12.     
  13. log4j.logger.com.ibatis=debug  
  14. log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug  
  15. log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug  
  16. log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug  
  17. log4j.logger.java.sql.Connection=debug  
  18. log4j.logger.java.sql.Statement=debug  
  19. log4j.logger.java.sql.PreparedStatement=debug,stdout  
  20.   
  21. log4j.logger.jdbc.sqlonly=OFF  
  22. log4j.logger.jdbc.sqltiming=OFF  
  23. log4j.logger.jdbc.audit=OFF  
  24. log4j.logger.jdbc.resultset=OFF  
  25. log4j.logger.jdbc.connection=OFF  

    4)mybatis基础配置:mybatis-configure.xml

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>     
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">     
  3. <configuration>     
  4.     <settings>  
  5.      <setting name="cacheEnabled" value="true" />  
  6.      <setting name="jdbcTypeForNull" value="NULL" />  
  7.    </settings>   
  8. </configuration>     

    5)数据库连接池Druid配置:spring-druid.xml

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  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:aop="http://www.springframework.org/schema/aop"  
  6.     xmlns:cache="http://www.springframework.org/schema/cache"  
  7.     xmlns:task="http://www.springframework.org/schema/task"     
  8.     xmlns:context="http://www.springframework.org/schema/context"    
  9.     xmlns:jee="http://www.springframework.org/schema/jee"    
  10.     xmlns:tx="http://www.springframework.org/schema/tx"    
  11.     xsi:schemaLocation="      
  12.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
  13.         http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd  
  14.         http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd    
  15.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd    
  16.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd    
  17.         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd    
  18.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">     
  19.   
  20.     <!-- 配置druid监控spring jdbc -->  
  21.     <bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor" />  
  22.   
  23.     <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">  
  24.         <property name="patterns">  
  25.             <list>  
  26.                 <value>com.ouc.ulab.service.*</value>  
  27.                 <value>com.ouc.mkhl.service.*</value>  
  28.             </list>  
  29.         </property>  
  30.     </bean>  
  31.     <aop:config>  
  32.         <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" />  
  33.     </aop:config>  
  34.   
  35. </beans>  

    6)MyBatis数据库相关的配置,双数据库配置主要内容在这里:spring-mybatis.xml

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  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:aop="http://www.springframework.org/schema/aop" xmlns:cache="http://www.springframework.org/schema/cache"  
  5.     xmlns:task="http://www.springframework.org/schema/task" xmlns:context="http://www.springframework.org/schema/context"  
  6.     xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"  
  7.     xsi:schemaLocation="      
  8.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
  9.         http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd  
  10.         http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd    
  11.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd    
  12.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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.   
  16.     <!-- 配置数据源1:SQLServer -->  
  17.     <bean name="dataSource1" class="com.alibaba.druid.pool.DruidDataSource"  
  18.         init-method="init" destroy-method="close">  
  19.         <property name="driverClassName" value="${jdbc.driverClassName}" />  
  20.         <property name="url" value="${jdbc.url}" />  
  21.         <property name="username" value="${jdbc.username}" />  
  22.         <property name="password" value="${jdbc.password}" />  
  23.   
  24.         <!-- 初始化连接大小 -->  
  25.         <property name="initialSize" value="${jdbc.initialSize}" />  
  26.         <!-- 连接池最大使用连接数量 -->  
  27.         <property name="maxActive" value="${jdbc.maxActive}" />  
  28.         <!-- 连接池最小空闲 -->  
  29.         <property name="minIdle" value="${jdbc.minIdle}" />  
  30.         <!-- 获取连接最大等待时间 -->  
  31.         <property name="maxWait" value="${jdbc.maxWait}" />  
  32.   
  33.         <property name="validationQuery" value="${jdbc.validationQuery}" />  
  34.         <property name="testOnBorrow" value="${jdbc.testOnBorrow}" />  
  35.         <property name="testOnReturn" value="${jdbc.testOnReturn}" />  
  36.         <property name="testWhileIdle" value="${jdbc.testWhileIdle}" />  
  37.   
  38.         <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
  39.         <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" />  
  40.         <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
  41.         <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" />  
  42.   
  43.         <!-- 打开removeAbandoned功能 -->  
  44.         <property name="removeAbandoned" value="${jdbc.removeAbandoned}" />  
  45.         <!-- 1800秒,也就是30分钟 -->  
  46.         <property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" />  
  47.         <!-- 关闭abanded连接时输出错误日志 -->  
  48.         <property name="logAbandoned" value="${jdbc.logAbandoned}" />  
  49.   
  50.         <!-- 监控数据库 -->  
  51.         <property name="filters" value="${jdbc.filters}" />  
  52.     </bean>  
  53.   
  54.     <!-- 配置数据源2:MySQL -->  
  55.     <bean name="dataSource2" class="com.alibaba.druid.pool.DruidDataSource"  
  56.         init-method="init" destroy-method="close">  
  57.         <property name="driverClassName" value="${jdbc.B.driverClassName}" />  
  58.         <property name="url" value="${jdbc.B.url}" />  
  59.         <property name="username" value="${jdbc.B.username}" />  
  60.         <property name="password" value="${jdbc.B.password}" />  
  61.   
  62.         <!-- 初始化连接大小 -->  
  63.         <property name="initialSize" value="${jdbc.initialSize}" />  
  64.         <!-- 连接池最大使用连接数量 -->  
  65.         <property name="maxActive" value="${jdbc.maxActive}" />  
  66.         <!-- 连接池最小空闲 -->  
  67.         <property name="minIdle" value="${jdbc.minIdle}" />  
  68.         <!-- 获取连接最大等待时间 -->  
  69.         <property name="maxWait" value="${jdbc.maxWait}" />  
  70.   
  71.         <property name="validationQuery" value="${jdbc.validationQuery}" />  
  72.         <property name="testOnBorrow" value="${jdbc.testOnBorrow}" />  
  73.         <property name="testOnReturn" value="${jdbc.testOnReturn}" />  
  74.         <property name="testWhileIdle" value="${jdbc.testWhileIdle}" />  
  75.   
  76.         <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
  77.         <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" />  
  78.         <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
  79.         <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" />  
  80.   
  81.         <!-- 打开removeAbandoned功能 -->  
  82.         <property name="removeAbandoned" value="${jdbc.removeAbandoned}" />  
  83.         <!-- 1800秒,也就是30分钟 -->  
  84.         <property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" />  
  85.         <!-- 关闭abanded连接时输出错误日志 -->  
  86.         <property name="logAbandoned" value="${jdbc.logAbandoned}" />  
  87.   
  88.         <!-- 监控数据库 -->  
  89.         <property name="filters" value="${jdbc.filters}" />  
  90.     </bean>  
  91.       
  92.     <!-- myBatis文件 -->  
  93.     <bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">  
  94.         <property name="dataSource" ref="dataSource1" />  
  95.         <property name="mapperLocations" value="classpath:com/ouc/ulab/mapping/*.xml" />  
  96.         <property name="typeAliasesPackage" value="com.ouc.ulab.model" />  
  97.         <property name="plugins">  
  98.             <array>  
  99.                 <bean class="com.github.pagehelper.PageHelper">  
  100.                     <property name="properties">  
  101.                         <value>  
  102.                             dialect=sqlserver  
  103.                         </value>  
  104.                     </property>  
  105.                 </bean>  
  106.             </array>  
  107.         </property>  
  108.         <property name="configLocation" value="classpath:mybatis-configure.xml" />  
  109.     </bean>  
  110.       
  111.     <bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean">  
  112.         <property name="dataSource" ref="dataSource2" />  
  113.         <property name="mapperLocations" value="classpath:com/ouc/mkhl/mapping/*.xml" />  
  114.         <property name="typeAliasesPackage" value="com.ouc.mkhl.model" />  
  115.         <property name="configLocation" value="classpath:mybatis-configure.xml" />  
  116.     </bean>  
  117.   
  118.     <bean id = "mapperScannerConfigurer1" class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  119.         <property name="basePackage" value="com.ouc.ulab.dao" />  
  120.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory1" />  
  121.     </bean>  
  122.   
  123.     <bean id = "mapperScannerConfigurer2" class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  124.         <property name="basePackage" value="com.ouc.mkhl.dao" />  
  125.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory2" />  
  126.     </bean>  
  127.       
  128.     <!-- 事务管理 -->  
  129.     <bean id="transactionManager"  
  130.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  131.         <property name="dataSource" ref="dataSource1" />  
  132.     </bean>  
  133.   
  134. </beans>  

    7)Spring中Bean的注解扫描识别配置:spring.xml,此处为了发布Dubbo服务。

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"  
  4.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:util="http://www.springframework.org/schema/util"  
  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/tx  
  10.        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
  11.        http://www.springframework.org/schema/aop  
  12.        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
  13.        http://www.springframework.org/schema/util  
  14.        http://www.springframework.org/schema/util/spring-util-3.1.xsd  
  15.        http://www.springframework.org/schema/context  
  16.        http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
  17.       
  18.     <aop:aspectj-autoproxy/>  
  19.     <!-- 自动扫描含有@Service将其注入为bean -->  
  20.     <context:component-scan base-package="com.ouc.ulab.service"/>  
  21.     <context:component-scan base-package="com.ouc.ulab.service.impl"/>  
  22.     <context:component-scan base-package="com.ouc.mkhl.service"/>  
  23.     <context:component-scan base-package="com.ouc.mkhl.service.impl"/>  
  24.       
  25.     <context:annotation-config />  
  26.     <!--引入配置属性文件  -->  
  27.     <context:property-placeholder location="classpath:jdbc.properties"/>  
  28. </beans>  

    8)发布Dubbo接口配置:spring-dubbo.xml,此处配置注册中心地址,发布接口等内容。

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  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:dubbo="http://code.alibabatech.com/schema/dubbo"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.         http://www.springframework.org/schema/beans/spring-beans.xsd  
  7.         http://code.alibabatech.com/schema/dubbo  
  8.         http://code.alibabatech.com/schema/dubbo/dubbo.xsd">  
  9.   
  10.     <!-- 提供方应用信息,用于计算依赖关系 -->  
  11.     <dubbo:application name="ULAB_DubboProvider" />  
  12.   
  13.     <!-- 使用multicast广播注册中心暴露服务地址 <dubbo:registry address="multicast://224.5.6.7:1234" /> -->  
  14.   
  15.     <dubbo:registry id="localUsersRegistry" address="zookeeper://127.0.0.1:2181"></dubbo:registry>  
  16.   
  17.     <!-- 用dubbo协议在21000端口暴露服务 -->  
  18.     <dubbo:protocol name="dubbo" port="21000" />  
  19.       
  20.     <!-- 声明需要暴露的服务接口 -->  
  21.     <dubbo:service interface="com.ouc.ulab.service.VSupplierUsersService" ref="vSupplierUsersService" registry="localUsersRegistry" />  
  22.       
  23.     <dubbo:service interface="com.ouc.mkhl.service.UsersEvaluateService" ref="usersEvaluateService" registry="localUsersRegistry" />  
  24.       
  25. </beans>  


    4.以下以ulab模块为例,介绍相关的功能包:dao,model,mapping,service,service.impl,main。

       1)model数据库表实体类包:VSupplyUser类

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.ouc.ulab.model;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. public class VSupplyUser implements Serializable {  
  6.       
  7.     private static final long serialVersionUID = 12L;  
  8.       
  9.     private String supplycode;  
  10.   
  11.     private String supplyname;  
  12.   
  13.     private String supplypass;  
  14.   
  15.     public String getSupplycode() {  
  16.         return supplycode;  
  17.     }  
  18.   
  19.     public void setSupplycode(String supplycode) {  
  20.         this.supplycode = supplycode == null ? null : supplycode.trim();  
  21.     }  
  22.   
  23.     public String getSupplyname() {  
  24.         return supplyname;  
  25.     }  
  26.   
  27.     public void setSupplyname(String supplyname) {  
  28.         this.supplyname = supplyname == null ? null : supplyname.trim();  
  29.     }  
  30.   
  31.     public String getSupplypass() {  
  32.         return supplypass;  
  33.     }  
  34.   
  35.     public void setSupplypass(String supplypass) {  
  36.         this.supplypass = supplypass == null ? null : supplypass.trim();  
  37.     }  
  38. }  

     2)数据接口Dao包:VSupplyUserMapper

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.ouc.ulab.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.ouc.ulab.model.VSupplyUser;  
  6.   
  7. public interface VSupplyUserMapper {  
  8.       
  9.     int insert(VSupplyUser record);  
  10.   
  11.     int insertSelective(VSupplyUser record);  
  12.       
  13.     public VSupplyUser getVSupplyUserByCode(String supplycode);  
  14.       
  15.     public List <VSupplyUser> getAllVSupplyUser();  
  16.       
  17. }  

     3)SQL语句配置包:VSupplyUserMapper.xml

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  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.ouc.ulab.dao.VSupplyUserMapper" >  
  4.   <resultMap id="BaseResultMap" type="VSupplyUser" >  
  5.     <result column="SupplyCode" property="supplycode" jdbcType="NVARCHAR" />  
  6.     <result column="SupplyName" property="supplyname" jdbcType="NVARCHAR" />  
  7.     <result column="SupplyPass" property="supplypass" jdbcType="NVARCHAR" />  
  8.   </resultMap>  
  9.     
  10.   <select id="getVSupplyUserByCode" resultType="VSupplyUser" parameterType="java.lang.String" >  
  11.     select * from V_SupplyUser  
  12.     where SupplyCode = #{#{supplycode,jdbcType=NVARCHAR}  
  13.   </select>  
  14.     
  15.   <select id="getAllVSupplyUser" resultMap="BaseResultMap" >  
  16.     select * from V_SupplyUser  
  17.   </select>  
  18.     
  19.   <insert id="insert" parameterType="VSupplyUser" >  
  20.     insert into V_SupplyUser (SupplyCode, SupplyName, SupplyPass  
  21.       )  
  22.     values (#{supplycode,jdbcType=NVARCHAR}, #{supplyname,jdbcType=NVARCHAR}, #{supplypass,jdbcType=NVARCHAR}  
  23.       )  
  24.   </insert>  
  25.   <insert id="insertSelective" parameterType="VSupplyUser" >  
  26.     insert into V_SupplyUser  
  27.     <trim prefix="(" suffix=")" suffixOverrides="," >  
  28.       <if test="supplycode != null" >  
  29.         SupplyCode,  
  30.       </if>  
  31.       <if test="supplyname != null" >  
  32.         SupplyName,  
  33.       </if>  
  34.       <if test="supplypass != null" >  
  35.         SupplyPass,  
  36.       </if>  
  37.     </trim>  
  38.     <trim prefix="values (" suffix=")" suffixOverrides="," >  
  39.       <if test="supplycode != null" >  
  40.         #{supplycode,jdbcType=NVARCHAR},  
  41.       </if>  
  42.       <if test="supplyname != null" >  
  43.         #{supplyname,jdbcType=NVARCHAR},  
  44.       </if>  
  45.       <if test="supplypass != null" >  
  46.         #{supplypass,jdbcType=NVARCHAR},  
  47.       </if>  
  48.     </trim>  
  49.   </insert>  
  50. </mapper>  

    4)Dubbo服务接口包:VSupplierUsersService

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.ouc.ulab.service;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.ouc.ulab.model.VSupplyUser;  
  6.   
  7. public interface VSupplierUsersService {  
  8.       
  9.     public VSupplyUser getVSupplyUserByCode(String supplycode);  
  10.       
  11.     public List <VSupplyUser> getAllVSupplyUser();  
  12. }  

    5)Dubbo服务接口具体实现包:VSupplierUsersSerImpl

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.ouc.ulab.service.impl;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.springframework.stereotype.Service;  
  7.   
  8. import com.ouc.ulab.dao.VSupplyUserMapper;  
  9. import com.ouc.ulab.model.VSupplyUser;  
  10. import com.ouc.ulab.service.VSupplierUsersService;  
  11.   
  12. @Service("vSupplierUsersService")  
  13. public class VSupplierUsersSerImpl implements VSupplierUsersService{  
  14.       
  15.     @Autowired  VSupplyUserMapper vSuppUserMapper;  
  16.   
  17.     @Override  
  18.     public VSupplyUser getVSupplyUserByCode(String supplycode){  
  19.          return vSuppUserMapper.getVSupplyUserByCode(supplycode);  
  20.     }  
  21.       
  22.     @Override  
  23.     public List <VSupplyUser> getAllVSupplyUser(){  
  24.         return vSuppUserMapper.getAllVSupplyUser();  
  25.     }  
  26. }  

     5.发布接口测试Main:UsersProvider

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.ouc.ulab.main;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import org.apache.log4j.Logger;  
  7. import org.springframework.beans.factory.annotation.Autowired;  
  8. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  9.   
  10. import com.ouc.ulab.service.VSupplierUsersService;  
  11. import com.ouc.ulab.model.VSupplyUser;  
  12. import com.ouc.mkhl.service.UsersEvaluateService;  
  13. import com.ouc.mkhl.model.PlanCount;  
  14.   
  15. public class UsersProvider {  
  16.   
  17.     private static VSupplierUsersService vSuppUsersSer;  
  18.   
  19.     private static UsersEvaluateService usersEvaluateSer;  
  20.       
  21.     @Autowired  
  22.     public static void main(String[] args) throws Exception {  
  23.     try {  
  24.         @SuppressWarnings("resource")  
  25.         ClassPathXmlApplicationContext cxt = new ClassPathXmlApplicationContext(  
  26.             new String[] { "classpath:spring.xml",  
  27.                 "classpath:spring-mybatis.xml",  
  28.                 "classpath:spring-dubbo.xml" });  
  29.   
  30.         cxt.start();  
  31.   
  32.         vSuppUsersSer = (VSupplierUsersService) cxt  
  33.             .getBean("vSupplierUsersService");  
  34.   
  35.         String supplyCode = "V98758";  
  36.         VSupplyUser user = vSuppUsersSer.getVSupplyUserByCode(supplyCode);  
  37.         System.out.println("供应商用户信息:");  
  38.         System.out.println("V码:" + user.getSupplycode());  
  39.         System.out.println("供应商名称:" + user.getSupplyname());  
  40.         System.out.println("供应商登录密码:" + user.getSupplypass());  
  41.               
  42.         List<VSupplyUser> supplyUserList = new ArrayList<VSupplyUser>();  
  43.         supplyUserList = vSuppUsersSer.getAllVSupplyUser();  
  44.         System.out.println("供应商用户总量:"+supplyUserList.size());  
  45.           
  46.        
  47.         usersEvaluateSer = (UsersEvaluateService) cxt.getBean("usersEvaluateService");  
  48.         List<PlanCount> planCountList = new ArrayList<PlanCount>();  
  49.         planCountList = usersEvaluateSer.getPlanCountByYearAndVCode("2016""V13187");  
  50.         System.out.println("问题方案统计结果:" + planCountList.size());  
  51.           
  52.         PlanCount planCount = new PlanCount();  
  53.         planCount = usersEvaluateSer.getPlanCountByYearAndMonthAndVCode("2016""V13187"4);  
  54.         System.out.println("问题方案:" + planCount.getPlanNum() + planCount.getQuestionNum());  
  55.           
  56.         System.in.read(); // 模拟开启  
  57.   
  58.     } catch (Exception e) {  
  59.         e.printStackTrace();  
  60.         System.out.println(e.getMessage());  
  61.         Logger log = Logger.getLogger(UsersProvider.class);  
  62.         log.error(e.getMessage()); // 将异常输出到文件  
  63.     }  
  64.   
  65.     }  
  66. }  

     6.运行结果如下图:

    

0 0
原创粉丝点击