Commit 64e192a2 authored by 邢足健's avatar 邢足健

coding

parents
milk
\ No newline at end of file
<component name="ArtifactManager">
<artifact type="war" name="web:war">
<output-path>$PROJECT_DIR$/web/target</output-path>
<root id="archive" name="milk.war">
<element id="artifact" artifact-name="web:war exploded" />
</root>
</artifact>
</component>
\ No newline at end of file
<component name="ArtifactManager">
<artifact type="exploded-war" name="web:war exploded">
<output-path>$PROJECT_DIR$/web/target/web</output-path>
<root id="root">
<element id="directory" name="WEB-INF">
<element id="directory" name="classes">
<element id="module-output" name="web" />
</element>
<element id="directory" name="lib">
<element id="archive" name="service-0.0.1-SNAPSHOT.jar">
<element id="module-output" name="service" />
</element>
<element id="archive" name="dao-0.0.1-SNAPSHOT.jar">
<element id="module-output" name="dao" />
</element>
<element id="archive" name="domain-0.0.1-SNAPSHOT.jar">
<element id="module-output" name="domain" />
</element>
<element id="library" level="project" name="Maven: org.apache.httpcomponents:httpclient:4.5.3" />
<element id="library" level="project" name="Maven: org.apache.httpcomponents:httpcore:4.4.6" />
<element id="library" level="project" name="Maven: commons-logging:commons-logging:1.2" />
<element id="library" level="project" name="Maven: commons-codec:commons-codec:1.9" />
<element id="library" level="project" name="Maven: org.springframework.data:spring-data-jpa:1.9.1.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework.data:spring-data-commons:1.11.1.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-aop:4.1.8.RELEASE" />
<element id="library" level="project" name="Maven: aopalliance:aopalliance:1.0" />
<element id="library" level="project" name="Maven: org.aspectj:aspectjrt:1.8.7" />
<element id="library" level="project" name="Maven: org.slf4j:slf4j-api:1.7.13" />
<element id="library" level="project" name="Maven: org.slf4j:jcl-over-slf4j:1.7.13" />
<element id="library" level="project" name="Maven: org.springframework:spring-core:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-jdbc:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-beans:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-context-support:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-context:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-expression:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-tx:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-web:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-webmvc:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework:spring-orm:4.1.4.RELEASE" />
<element id="library" level="project" name="Maven: mysql:mysql-connector-java:5.1.38" />
<element id="library" level="project" name="Maven: commons-httpclient:commons-httpclient:3.1" />
<element id="library" level="project" name="Maven: org.apache.hadoop:hadoop-common:2.3.0" />
<element id="library" level="project" name="Maven: org.apache.hadoop:hadoop-annotations:2.3.0" />
<element id="library" level="project" name="Maven: commons-cli:commons-cli:1.2" />
<element id="library" level="project" name="Maven: org.apache.commons:commons-math3:3.1.1" />
<element id="library" level="project" name="Maven: xmlenc:xmlenc:0.52" />
<element id="library" level="project" name="Maven: commons-net:commons-net:3.1" />
<element id="library" level="project" name="Maven: commons-collections:commons-collections:3.2.1" />
<element id="library" level="project" name="Maven: org.mortbay.jetty:jetty:6.1.26" />
<element id="library" level="project" name="Maven: org.mortbay.jetty:jetty-util:6.1.26" />
<element id="library" level="project" name="Maven: com.sun.jersey:jersey-core:1.9" />
<element id="library" level="project" name="Maven: com.sun.jersey:jersey-json:1.9" />
<element id="library" level="project" name="Maven: org.codehaus.jettison:jettison:1.1" />
<element id="library" level="project" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.3-1" />
<element id="library" level="project" name="Maven: javax.xml.bind:jaxb-api:2.2.2" />
<element id="library" level="project" name="Maven: javax.xml.stream:stax-api:1.0-2" />
<element id="library" level="project" name="Maven: javax.activation:activation:1.1" />
<element id="library" level="project" name="Maven: org.codehaus.jackson:jackson-jaxrs:1.8.3" />
<element id="library" level="project" name="Maven: org.codehaus.jackson:jackson-xc:1.8.3" />
<element id="library" level="project" name="Maven: com.sun.jersey:jersey-server:1.9" />
<element id="library" level="project" name="Maven: tomcat:jasper-compiler:5.5.23" />
<element id="library" level="project" name="Maven: tomcat:jasper-runtime:5.5.23" />
<element id="library" level="project" name="Maven: javax.servlet.jsp:jsp-api:2.1" />
<element id="library" level="project" name="Maven: commons-el:commons-el:1.0" />
<element id="library" level="project" name="Maven: log4j:log4j:1.2.17" />
<element id="library" level="project" name="Maven: net.java.dev.jets3t:jets3t:0.9.0" />
<element id="library" level="project" name="Maven: com.jamesmurty.utils:java-xmlbuilder:0.4" />
<element id="library" level="project" name="Maven: commons-lang:commons-lang:2.6" />
<element id="library" level="project" name="Maven: commons-configuration:commons-configuration:1.6" />
<element id="library" level="project" name="Maven: commons-digester:commons-digester:1.8" />
<element id="library" level="project" name="Maven: commons-beanutils:commons-beanutils-core:1.8.0" />
<element id="library" level="project" name="Maven: org.slf4j:slf4j-log4j12:1.7.5" />
<element id="library" level="project" name="Maven: org.codehaus.jackson:jackson-core-asl:1.8.8" />
<element id="library" level="project" name="Maven: org.apache.avro:avro:1.7.4" />
<element id="library" level="project" name="Maven: com.thoughtworks.paranamer:paranamer:2.3" />
<element id="library" level="project" name="Maven: org.xerial.snappy:snappy-java:1.0.4.1" />
<element id="library" level="project" name="Maven: com.google.protobuf:protobuf-java:2.5.0" />
<element id="library" level="project" name="Maven: org.apache.hadoop:hadoop-auth:2.3.0" />
<element id="library" level="project" name="Maven: com.jcraft:jsch:0.1.42" />
<element id="library" level="project" name="Maven: com.google.code.findbugs:jsr305:1.3.9" />
<element id="library" level="project" name="Maven: org.apache.zookeeper:zookeeper:3.4.5" />
<element id="library" level="project" name="Maven: org.apache.commons:commons-compress:1.4.1" />
<element id="library" level="project" name="Maven: org.tukaani:xz:1.0" />
<element id="library" level="project" name="Maven: com.alibaba:fastjson:1.2.3" />
<element id="library" level="project" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.9.13" />
<element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.4.4" />
<element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-core:2.4.4" />
<element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.4.4" />
<element id="library" level="project" name="Maven: org.aspectj:aspectjweaver:1.8.4" />
<element id="library" level="project" name="Maven: javax.servlet:jstl:1.2" />
<element id="library" level="project" name="Maven: org.apache.tomcat:tomcat-jdbc:7.0.52" />
<element id="library" level="project" name="Maven: org.apache.tomcat:tomcat-juli:7.0.52" />
<element id="library" level="project" name="Maven: org.mybatis:mybatis:3.2.2" />
<element id="library" level="project" name="Maven: com.github.miemiedev:mybatis-paginator:1.2.15" />
<element id="library" level="project" name="Maven: org.mybatis:mybatis-spring:1.2.2" />
<element id="library" level="project" name="Maven: cglib:cglib:2.2.2" />
<element id="library" level="project" name="Maven: asm:asm:3.3.1" />
<element id="library" level="project" name="Maven: commons-fileupload:commons-fileupload:1.2.2" />
<element id="library" level="project" name="Maven: commons-io:commons-io:2.4" />
<element id="library" level="project" name="Maven: org.apache.commons:commons-lang3:3.3.2" />
<element id="library" level="project" name="Maven: commons-beanutils:commons-beanutils:1.8.3" />
<element id="library" level="project" name="Maven: com.google.guava:guava:17.0" />
<element id="library" level="project" name="Maven: org.jodd:jodd:3.3.2" />
<element id="library" level="project" name="Maven: joda-time:joda-time:2.1" />
<element id="library" level="project" name="Maven: org.hibernate:hibernate-core:4.2.5.Final" />
<element id="library" level="project" name="Maven: antlr:antlr:2.7.7" />
<element id="library" level="project" name="Maven: org.jboss.logging:jboss-logging:3.1.0.GA" />
<element id="library" level="project" name="Maven: dom4j:dom4j:1.6.1" />
<element id="library" level="project" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:1.0.1.Final" />
<element id="library" level="project" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.2.Final" />
<element id="library" level="project" name="Maven: org.javassist:javassist:3.15.0-GA" />
<element id="library" level="project" name="Maven: org.hibernate:hibernate-entitymanager:4.2.5.Final" />
<element id="library" level="project" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final" />
<element id="library" level="project" name="Maven: org.codehaus.groovy:groovy-all:2.4.5" />
<element id="library" level="project" name="Maven: org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5" />
<element id="library" level="project" name="Maven: org.apache.maven:maven-plugin-api:3.3.9" />
<element id="library" level="project" name="Maven: org.apache.maven:maven-model:3.3.9" />
<element id="library" level="project" name="Maven: org.codehaus.plexus:plexus-utils:3.0.22" />
<element id="library" level="project" name="Maven: org.apache.maven:maven-artifact:3.3.9" />
<element id="library" level="project" name="Maven: org.eclipse.sisu:org.eclipse.sisu.plexus:0.3.2" />
<element id="library" level="project" name="Maven: javax.enterprise:cdi-api:1.0" />
<element id="library" level="project" name="Maven: javax.annotation:jsr250-api:1.0" />
<element id="library" level="project" name="Maven: javax.inject:javax.inject:1" />
<element id="library" level="project" name="Maven: org.eclipse.sisu:org.eclipse.sisu.inject:0.3.2" />
<element id="library" level="project" name="Maven: org.codehaus.plexus:plexus-component-annotations:1.5.5" />
<element id="library" level="project" name="Maven: org.codehaus.plexus:plexus-classworlds:2.5.2" />
<element id="library" level="project" name="Maven: org.mybatis.generator:mybatis-generator-core:1.3.5" />
<element id="library" level="project" name="Maven: org.apache.httpcomponents:httpmime:4.2" />
<element id="library" level="project" name="Maven: redis.clients:jedis:2.8.1" />
<element id="library" level="project" name="Maven: org.apache.commons:commons-pool2:2.4.2" />
<element id="library" level="project" name="Maven: ch.qos.logback:logback-classic:1.1.7" />
<element id="library" level="project" name="Maven: ch.qos.logback:logback-core:1.1.7" />
<element id="library" level="project" name="Maven: com.github.javadev:underscore:1.16" />
<element id="library" level="project" name="Maven: cn.jpush.api:jpush-client:3.2.9" />
<element id="library" level="project" name="Maven: com.google.code.gson:gson:2.3" />
<element id="library" level="project" name="Maven: io.springfox:springfox-swagger2:2.4.0" />
<element id="library" level="project" name="Maven: io.swagger:swagger-annotations:1.5.6" />
<element id="library" level="project" name="Maven: io.swagger:swagger-models:1.5.6" />
<element id="library" level="project" name="Maven: io.springfox:springfox-spi:2.4.0" />
<element id="library" level="project" name="Maven: io.springfox:springfox-core:2.4.0" />
<element id="library" level="project" name="Maven: io.springfox:springfox-schema:2.4.0" />
<element id="library" level="project" name="Maven: io.springfox:springfox-swagger-common:2.4.0" />
<element id="library" level="project" name="Maven: io.springfox:springfox-spring-web:2.4.0" />
<element id="library" level="project" name="Maven: com.fasterxml:classmate:1.3.1" />
<element id="library" level="project" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" />
<element id="library" level="project" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" />
<element id="library" level="project" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" />
<element id="library" level="project" name="Maven: org.apache.poi:poi:3.17" />
<element id="library" level="project" name="Maven: org.apache.commons:commons-collections4:4.1" />
<element id="library" level="project" name="Maven: org.apache.poi:poi-ooxml:3.17" />
<element id="library" level="project" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" />
<element id="library" level="project" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" />
<element id="library" level="project" name="Maven: stax:stax-api:1.0.1" />
<element id="library" level="project" name="Maven: com.github.virtuald:curvesapi:1.04" />
<element id="library" level="project" name="Maven: org.quartz-scheduler:quartz:2.2.1" />
<element id="library" level="project" name="Maven: c3p0:c3p0:0.9.1.1" />
<element id="library" level="project" name="Maven: org.quartz-scheduler:quartz-jobs:2.2.1" />
<element id="library" level="project" name="Maven: plugin:plugin:1.0.0" />
</element>
</element>
<element id="directory" name="META-INF">
<element id="file-copy" path="$PROJECT_DIR$/web/target/web/META-INF/MANIFEST.MF" />
</element>
<element id="javaee-facet-resources" facet="web/web/Web" />
</root>
</artifact>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="dao" />
<module name="domain" />
<module name="service" />
<module name="web" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="dao" target="1.8" />
<module name="domain" target="1.8" />
<module name="milk" target="1.5" />
<module name="service" target="1.8" />
<module name="SpringMVCTemplate" target="1.5" />
<module name="web" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/dao" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/domain" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/service" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/web" charset="UTF-8" />
</component>
</project>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: antlr:antlr:2.7.7">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/antlr/antlr/2.7.7/antlr-2.7.7.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/antlr/antlr/2.7.7/antlr-2.7.7-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/antlr/antlr/2.7.7/antlr-2.7.7-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: aopalliance:aopalliance:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: asm:asm:3.3.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: c3p0:c3p0:0.9.1.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/c3p0/c3p0/0.9.1.1/c3p0-0.9.1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/c3p0/c3p0/0.9.1.1/c3p0-0.9.1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/c3p0/c3p0/0.9.1.1/c3p0-0.9.1.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: cglib:cglib:2.2.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/2.2.2/cglib-2.2.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/2.2.2/cglib-2.2.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/2.2.2/cglib-2.2.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: ch.qos.logback:logback-classic:1.1.7">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.1.7/logback-classic-1.1.7.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.1.7/logback-classic-1.1.7-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-classic/1.1.7/logback-classic-1.1.7-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: ch.qos.logback:logback-core:1.1.7">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.1.7/logback-core-1.1.7.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.1.7/logback-core-1.1.7-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.1.7/logback-core-1.1.7-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: cn.jpush.api:jpush-client:3.2.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/cn/jpush/api/jpush-client/3.2.9/jpush-client-3.2.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/cn/jpush/api/jpush-client/3.2.9/jpush-client-3.2.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/cn/jpush/api/jpush-client/3.2.9/jpush-client-3.2.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.alibaba:fastjson:1.2.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.3/fastjson-1.2.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.3/fastjson-1.2.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.3/fastjson-1.2.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.fasterxml:classmate:1.3.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.3.1/classmate-1.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.3.1/classmate-1.3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.3.1/classmate-1.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.4.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.4.4/jackson-annotations-2.4.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.4.4/jackson-annotations-2.4.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.4.4/jackson-annotations-2.4.4-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-core:2.4.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.4.4/jackson-core-2.4.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.4.4/jackson-core-2.4.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.4.4/jackson-core-2.4.4-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.4.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.4.4/jackson-databind-2.4.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.4.4/jackson-databind-2.4.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.4.4/jackson-databind-2.4.4-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.github.javadev:underscore:1.16">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/github/javadev/underscore/1.16/underscore-1.16.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/github/javadev/underscore/1.16/underscore-1.16-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/github/javadev/underscore/1.16/underscore-1.16-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.github.miemiedev:mybatis-paginator:1.2.15">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/github/miemiedev/mybatis-paginator/1.2.15/mybatis-paginator-1.2.15.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/github/miemiedev/mybatis-paginator/1.2.15/mybatis-paginator-1.2.15-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/github/miemiedev/mybatis-paginator/1.2.15/mybatis-paginator-1.2.15-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.github.virtuald:curvesapi:1.04">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/github/virtuald/curvesapi/1.04/curvesapi-1.04.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/github/virtuald/curvesapi/1.04/curvesapi-1.04-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/github/virtuald/curvesapi/1.04/curvesapi-1.04-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.google.code.findbugs:jsr305:1.3.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.google.code.gson:gson:2.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.3/gson-2.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.3/gson-2.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.3/gson-2.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.google.guava:guava:17.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/17.0/guava-17.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/17.0/guava-17.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/17.0/guava-17.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.google.protobuf:protobuf-java:2.5.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.jamesmurty.utils:java-xmlbuilder:0.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/jamesmurty/utils/java-xmlbuilder/0.4/java-xmlbuilder-0.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/jamesmurty/utils/java-xmlbuilder/0.4/java-xmlbuilder-0.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/jamesmurty/utils/java-xmlbuilder/0.4/java-xmlbuilder-0.4-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.jcraft:jsch:0.1.42">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/jcraft/jsch/0.1.42/jsch-0.1.42.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/jcraft/jsch/0.1.42/jsch-0.1.42-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/jcraft/jsch/0.1.42/jsch-0.1.42-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.sun.jersey:jersey-core:1.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.9/jersey-core-1.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.9/jersey-core-1.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.9/jersey-core-1.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.sun.jersey:jersey-json:1.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-json/1.9/jersey-json-1.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-json/1.9/jersey-json-1.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-json/1.9/jersey-json-1.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.sun.jersey:jersey-server:1.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.9/jersey-server-1.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.9/jersey-server-1.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.9/jersey-server-1.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.sun.xml.bind:jaxb-impl:2.2.3-1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.thoughtworks.paranamer:paranamer:2.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-beanutils:commons-beanutils:1.8.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-beanutils:commons-beanutils-core:1.8.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils-core/1.8.0/commons-beanutils-core-1.8.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils-core/1.8.0/commons-beanutils-core-1.8.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils-core/1.8.0/commons-beanutils-core-1.8.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-cli:commons-cli:1.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-codec:commons-codec:1.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.2/commons-codec-1.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.2/commons-codec-1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.2/commons-codec-1.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-codec:commons-codec:1.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.9/commons-codec-1.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.9/commons-codec-1.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.9/commons-codec-1.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-collections:commons-collections:3.2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-configuration:commons-configuration:1.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-configuration/commons-configuration/1.6/commons-configuration-1.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-configuration/commons-configuration/1.6/commons-configuration-1.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-configuration/commons-configuration/1.6/commons-configuration-1.6-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-digester:commons-digester:1.8">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-digester/commons-digester/1.8/commons-digester-1.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-digester/commons-digester/1.8/commons-digester-1.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-digester/commons-digester/1.8/commons-digester-1.8-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-el:commons-el:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-el/commons-el/1.0/commons-el-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-el/commons-el/1.0/commons-el-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-el/commons-el/1.0/commons-el-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-fileupload:commons-fileupload:1.2.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-fileupload/commons-fileupload/1.2.2/commons-fileupload-1.2.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-fileupload/commons-fileupload/1.2.2/commons-fileupload-1.2.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-fileupload/commons-fileupload/1.2.2/commons-fileupload-1.2.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-httpclient:commons-httpclient:3.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-io:commons-io:2.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.4/commons-io-2.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.4/commons-io-2.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.4/commons-io-2.4-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-lang:commons-lang:2.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-logging:commons-logging:1.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: commons-net:commons-net:3.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-net/commons-net/3.1/commons-net-3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-net/commons-net/3.1/commons-net-3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-net/commons-net/3.1/commons-net-3.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: dom4j:dom4j:1.6.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/dom4j/dom4j/1.6.1/dom4j-1.6.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.springfox:springfox-core:2.4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-core/2.4.0/springfox-core-2.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-core/2.4.0/springfox-core-2.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-core/2.4.0/springfox-core-2.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.springfox:springfox-schema:2.4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-schema/2.4.0/springfox-schema-2.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-schema/2.4.0/springfox-schema-2.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-schema/2.4.0/springfox-schema-2.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.springfox:springfox-spi:2.4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spi/2.4.0/springfox-spi-2.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spi/2.4.0/springfox-spi-2.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spi/2.4.0/springfox-spi-2.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.springfox:springfox-spring-web:2.4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spring-web/2.4.0/springfox-spring-web-2.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spring-web/2.4.0/springfox-spring-web-2.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-spring-web/2.4.0/springfox-spring-web-2.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.springfox:springfox-swagger2:2.4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger2/2.4.0/springfox-swagger2-2.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger2/2.4.0/springfox-swagger2-2.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger2/2.4.0/springfox-swagger2-2.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.springfox:springfox-swagger-common:2.4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-common/2.4.0/springfox-swagger-common-2.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-common/2.4.0/springfox-swagger-common-2.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-common/2.4.0/springfox-swagger-common-2.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.springfox:springfox-swagger-ui:2.4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-ui/2.4.0/springfox-swagger-ui-2.4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-ui/2.4.0/springfox-swagger-ui-2.4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/springfox/springfox-swagger-ui/2.4.0/springfox-swagger-ui-2.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.swagger:swagger-annotations:1.5.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-annotations/1.5.6/swagger-annotations-1.5.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-annotations/1.5.6/swagger-annotations-1.5.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-annotations/1.5.6/swagger-annotations-1.5.6-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: io.swagger:swagger-models:1.5.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-models/1.5.6/swagger-models-1.5.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-models/1.5.6/swagger-models-1.5.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/swagger/swagger-models/1.5.6/swagger-models-1.5.6-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.activation:activation:1.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/activation/activation/1.1/activation-1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/activation/activation/1.1/activation-1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/activation/activation/1.1/activation-1.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.annotation:jsr250-api:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/jsr250-api/1.0/jsr250-api-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/jsr250-api/1.0/jsr250-api-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.enterprise:cdi-api:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/enterprise/cdi-api/1.0/cdi-api-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/enterprise/cdi-api/1.0/cdi-api-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.inject:javax.inject:1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.servlet.jsp:jsp-api:2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.servlet:jstl:1.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jstl/1.2/jstl-1.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jstl/1.2/jstl-1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/jstl/1.2/jstl-1.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.servlet:servlet-api:3.0-alpha-1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/servlet-api/3.0-alpha-1/servlet-api-3.0-alpha-1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/servlet-api/3.0-alpha-1/servlet-api-3.0-alpha-1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/servlet-api/3.0-alpha-1/servlet-api-3.0-alpha-1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.xml.bind:jaxb-api:2.2.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: javax.xml.stream:stax-api:1.0-2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: joda-time:joda-time:2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/joda-time/joda-time/2.1/joda-time-2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/joda-time/joda-time/2.1/joda-time-2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/joda-time/joda-time/2.1/joda-time-2.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: junit:junit:4.12">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: log4j:log4j:1.2.17">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.17/log4j-1.2.17.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.17/log4j-1.2.17-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.17/log4j-1.2.17-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: mysql:mysql-connector-java:5.1.38">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: net.java.dev.jets3t:jets3t:0.9.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jets3t/jets3t/0.9.0/jets3t-0.9.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jets3t/jets3t/0.9.0/jets3t-0.9.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jets3t/jets3t/0.9.0/jets3t-0.9.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.avro:avro:1.7.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro/1.7.4/avro-1.7.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro/1.7.4/avro-1.7.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro/1.7.4/avro-1.7.4-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-collections4:4.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-compress:1.4.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-lang3:3.3.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-math3:3.1.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.1.1/commons-math3-3.1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.1.1/commons-math3-3.1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.1.1/commons-math3-3.1.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-pool2:2.4.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.hadoop:hadoop-annotations:2.3.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-annotations/2.3.0/hadoop-annotations-2.3.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-annotations/2.3.0/hadoop-annotations-2.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-annotations/2.3.0/hadoop-annotations-2.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.hadoop:hadoop-auth:2.3.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-auth/2.3.0/hadoop-auth-2.3.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-auth/2.3.0/hadoop-auth-2.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-auth/2.3.0/hadoop-auth-2.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.hadoop:hadoop-common:2.3.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-common/2.3.0/hadoop-common-2.3.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-common/2.3.0/hadoop-common-2.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/hadoop/hadoop-common/2.3.0/hadoop-common-2.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.httpcomponents:httpclient:4.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.2/httpclient-4.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.2/httpclient-4.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.2/httpclient-4.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.httpcomponents:httpclient:4.5.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.httpcomponents:httpcore:4.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.2/httpcore-4.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.2/httpcore-4.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.2/httpcore-4.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.httpcomponents:httpcore:4.4.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.httpcomponents:httpmime:4.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.2/httpmime-4.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.2/httpmime-4.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.2/httpmime-4.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.maven:maven-artifact:3.3.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.maven:maven-model:3.3.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.maven:maven-plugin-api:3.3.9">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-plugin-api/3.3.9/maven-plugin-api-3.3.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-plugin-api/3.3.9/maven-plugin-api-3.3.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-plugin-api/3.3.9/maven-plugin-api-3.3.9-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.poi:poi:3.17">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/3.17/poi-3.17.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/3.17/poi-3.17-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi/3.17/poi-3.17-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.poi:poi-ooxml:3.17">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.poi:poi-ooxml-schemas:3.17">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml-schemas/3.17/poi-ooxml-schemas-3.17.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml-schemas/3.17/poi-ooxml-schemas-3.17-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/poi/poi-ooxml-schemas/3.17/poi-ooxml-schemas-3.17-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.tomcat:tomcat-jdbc:7.0.52">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/tomcat-jdbc/7.0.52/tomcat-jdbc-7.0.52.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/tomcat-jdbc/7.0.52/tomcat-jdbc-7.0.52-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/tomcat-jdbc/7.0.52/tomcat-jdbc-7.0.52-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.tomcat:tomcat-juli:7.0.52">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/tomcat-juli/7.0.52/tomcat-juli-7.0.52.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/tomcat-juli/7.0.52/tomcat-juli-7.0.52-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/tomcat-juli/7.0.52/tomcat-juli-7.0.52-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlbeans/xmlbeans/2.6.0/xmlbeans-2.6.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlbeans/xmlbeans/2.6.0/xmlbeans-2.6.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/xmlbeans/xmlbeans/2.6.0/xmlbeans-2.6.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.apache.zookeeper:zookeeper:3.4.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.aspectj:aspectjrt:1.8.7">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjrt/1.8.7/aspectjrt-1.8.7.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjrt/1.8.7/aspectjrt-1.8.7-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjrt/1.8.7/aspectjrt-1.8.7-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.aspectj:aspectjweaver:1.8.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.8.4/aspectjweaver-1.8.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.8.4/aspectjweaver-1.8.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/aspectj/aspectjweaver/1.8.4/aspectjweaver-1.8.4-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.groovy:groovy-all:2.4.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/groovy/groovy-all/2.4.5/groovy-all-2.4.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/groovy/groovy-all/2.4.5/groovy-all-2.4.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/groovy/groovy-all/2.4.5/groovy-all-2.4.5-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.jackson:jackson-core-asl:1.8.8">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.jackson:jackson-jaxrs:1.8.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-jaxrs/1.8.3/jackson-jaxrs-1.8.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-jaxrs/1.8.3/jackson-jaxrs-1.8.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-jaxrs/1.8.3/jackson-jaxrs-1.8.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.9.13">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.jackson:jackson-xc:1.8.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-xc/1.8.3/jackson-xc-1.8.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-xc/1.8.3/jackson-xc-1.8.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-xc/1.8.3/jackson-xc-1.8.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.jettison:jettison:1.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jettison/jettison/1.1/jettison-1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jettison/jettison/1.1/jettison-1.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.plexus:plexus-classworlds:2.5.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-classworlds/2.5.2/plexus-classworlds-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-classworlds/2.5.2/plexus-classworlds-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-classworlds/2.5.2/plexus-classworlds-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.plexus:plexus-component-annotations:1.5.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.codehaus.plexus:plexus-utils:3.0.22">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.eclipse.sisu:org.eclipse.sisu.inject:0.3.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.2/org.eclipse.sisu.inject-0.3.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.2/org.eclipse.sisu.inject-0.3.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.2/org.eclipse.sisu.inject-0.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.eclipse.sisu:org.eclipse.sisu.plexus:0.3.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/sisu/org.eclipse.sisu.plexus/0.3.2/org.eclipse.sisu.plexus-0.3.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/sisu/org.eclipse.sisu.plexus/0.3.2/org.eclipse.sisu.plexus-0.3.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/sisu/org.eclipse.sisu.plexus/0.3.2/org.eclipse.sisu.plexus-0.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.hamcrest:hamcrest-core:1.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.2.Final">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/common/hibernate-commons-annotations/4.0.2.Final/hibernate-commons-annotations-4.0.2.Final.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/common/hibernate-commons-annotations/4.0.2.Final/hibernate-commons-annotations-4.0.2.Final-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/common/hibernate-commons-annotations/4.0.2.Final/hibernate-commons-annotations-4.0.2.Final-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.hibernate:hibernate-core:4.2.5.Final">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-core/4.2.5.Final/hibernate-core-4.2.5.Final.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-core/4.2.5.Final/hibernate-core-4.2.5.Final-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-core/4.2.5.Final/hibernate-core-4.2.5.Final-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.hibernate:hibernate-entitymanager:4.2.5.Final">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-entitymanager/4.2.5.Final/hibernate-entitymanager-4.2.5.Final.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-entitymanager/4.2.5.Final/hibernate-entitymanager-4.2.5.Final-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/hibernate-entitymanager/4.2.5.Final/hibernate-entitymanager-4.2.5.Final-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.javassist:javassist:3.15.0-GA">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.15.0-GA/javassist-3.15.0-GA.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.15.0-GA/javassist-3.15.0-GA-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.15.0-GA/javassist-3.15.0-GA-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.jboss.logging:jboss-logging:3.1.0.GA">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.1.0.GA/jboss-logging-3.1.0.GA.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.1.0.GA/jboss-logging-3.1.0.GA-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.1.0.GA/jboss-logging-3.1.0.GA-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:1.0.1.Final">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/spec/javax/transaction/jboss-transaction-api_1.1_spec/1.0.1.Final/jboss-transaction-api_1.1_spec-1.0.1.Final.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/spec/javax/transaction/jboss-transaction-api_1.1_spec/1.0.1.Final/jboss-transaction-api_1.1_spec-1.0.1.Final-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/spec/javax/transaction/jboss-transaction-api_1.1_spec/1.0.1.Final/jboss-transaction-api_1.1_spec-1.0.1.Final-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.jodd:jodd:3.3.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jodd/jodd/3.3.2/jodd-3.3.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/jodd/jodd/3.3.2/jodd-3.3.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/jodd/jodd/3.3.2/jodd-3.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.mortbay.jetty:jetty:6.1.26">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.mortbay.jetty:jetty-util:6.1.26">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.mybatis.generator:mybatis-generator-core:1.3.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/generator/mybatis-generator-core/1.3.5/mybatis-generator-core-1.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/generator/mybatis-generator-core/1.3.5/mybatis-generator-core-1.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/generator/mybatis-generator-core/1.3.5/mybatis-generator-core-1.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/generator/mybatis-generator-maven-plugin/1.3.5/mybatis-generator-maven-plugin-1.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/generator/mybatis-generator-maven-plugin/1.3.5/mybatis-generator-maven-plugin-1.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/generator/mybatis-generator-maven-plugin/1.3.5/mybatis-generator-maven-plugin-1.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.mybatis:mybatis:3.2.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.2.2/mybatis-3.2.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.2.2/mybatis-3.2.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.2.2/mybatis-3.2.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.mybatis:mybatis-spring:1.2.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.2.2/mybatis-spring-1.2.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.2.2/mybatis-spring-1.2.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.2.2/mybatis-spring-1.2.2-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.quartz-scheduler:quartz:2.2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/quartz-scheduler/quartz/2.2.1/quartz-2.2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/quartz-scheduler/quartz/2.2.1/quartz-2.2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/quartz-scheduler/quartz/2.2.1/quartz-2.2.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.quartz-scheduler:quartz-jobs:2.2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/quartz-scheduler/quartz-jobs/2.2.1/quartz-jobs-2.2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/quartz-scheduler/quartz-jobs/2.2.1/quartz-jobs-2.2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/quartz-scheduler/quartz-jobs/2.2.1/quartz-jobs-2.2.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.slf4j:jcl-over-slf4j:1.7.13">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.13/jcl-over-slf4j-1.7.13.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.13/jcl-over-slf4j-1.7.13-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.13/jcl-over-slf4j-1.7.13-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.slf4j:slf4j-api:1.7.13">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.13/slf4j-api-1.7.13.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.13/slf4j-api-1.7.13-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.13/slf4j-api-1.7.13-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.slf4j:slf4j-log4j12:1.7.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework.data:spring-data-commons:1.11.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/1.11.1.RELEASE/spring-data-commons-1.11.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/1.11.1.RELEASE/spring-data-commons-1.11.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/1.11.1.RELEASE/spring-data-commons-1.11.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework.data:spring-data-jpa:1.9.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jpa/1.9.1.RELEASE/spring-data-jpa-1.9.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jpa/1.9.1.RELEASE/spring-data-jpa-1.9.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jpa/1.9.1.RELEASE/spring-data-jpa-1.9.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-metadata/1.2.0.RELEASE/spring-plugin-metadata-1.2.0.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-metadata/1.2.0.RELEASE/spring-plugin-metadata-1.2.0.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/plugin/spring-plugin-metadata/1.2.0.RELEASE/spring-plugin-metadata-1.2.0.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-aop:4.1.8.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.1.8.RELEASE/spring-aop-4.1.8.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.1.8.RELEASE/spring-aop-4.1.8.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.1.8.RELEASE/spring-aop-4.1.8.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-beans:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.1.4.RELEASE/spring-beans-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.1.4.RELEASE/spring-beans-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/4.1.4.RELEASE/spring-beans-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-context:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.1.4.RELEASE/spring-context-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.1.4.RELEASE/spring-context-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/4.1.4.RELEASE/spring-context-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-context-support:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/4.1.4.RELEASE/spring-context-support-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/4.1.4.RELEASE/spring-context-support-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context-support/4.1.4.RELEASE/spring-context-support-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-core:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.1.4.RELEASE/spring-core-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.1.4.RELEASE/spring-core-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.1.4.RELEASE/spring-core-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-expression:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.1.4.RELEASE/spring-expression-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.1.4.RELEASE/spring-expression-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/4.1.4.RELEASE/spring-expression-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-jdbc:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.1.4.RELEASE/spring-jdbc-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.1.4.RELEASE/spring-jdbc-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/4.1.4.RELEASE/spring-jdbc-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-orm:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-orm/4.1.4.RELEASE/spring-orm-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-orm/4.1.4.RELEASE/spring-orm-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-orm/4.1.4.RELEASE/spring-orm-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-test:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.1.4.RELEASE/spring-test-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.1.4.RELEASE/spring-test-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/4.1.4.RELEASE/spring-test-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-tx:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.1.4.RELEASE/spring-tx-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.1.4.RELEASE/spring-tx-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/4.1.4.RELEASE/spring-tx-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-web:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.1.4.RELEASE/spring-web-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.1.4.RELEASE/spring-web-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.1.4.RELEASE/spring-web-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.springframework:spring-webmvc:4.1.4.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.1.4.RELEASE/spring-webmvc-4.1.4.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.1.4.RELEASE/spring-webmvc-4.1.4.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.1.4.RELEASE/spring-webmvc-4.1.4.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.tukaani:xz:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/tukaani/xz/1.0/xz-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/tukaani/xz/1.0/xz-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/tukaani/xz/1.0/xz-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: org.xerial.snappy:snappy-java:1.0.4.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/xerial/snappy/snappy-java/1.0.4.1/snappy-java-1.0.4.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/xerial/snappy/snappy-java/1.0.4.1/snappy-java-1.0.4.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/xerial/snappy/snappy-java/1.0.4.1/snappy-java-1.0.4.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: plugin:plugin:1.0.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/plugin/plugin/1.0.0/plugin-1.0.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/plugin/plugin/1.0.0/plugin-1.0.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/plugin/plugin/1.0.0/plugin-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: redis.clients:jedis:2.8.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.8.1/jedis-2.8.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.8.1/jedis-2.8.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.8.1/jedis-2.8.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: stax:stax-api:1.0.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/stax/stax-api/1.0.1/stax-api-1.0.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/stax/stax-api/1.0.1/stax-api-1.0.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/stax/stax-api/1.0.1/stax-api-1.0.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: tomcat:jasper-compiler:5.5.23">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/tomcat/jasper-compiler/5.5.23/jasper-compiler-5.5.23.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/tomcat/jasper-compiler/5.5.23/jasper-compiler-5.5.23-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/tomcat/jasper-compiler/5.5.23/jasper-compiler-5.5.23-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: tomcat:jasper-runtime:5.5.23">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/tomcat/jasper-runtime/5.5.23/jasper-runtime-5.5.23.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/tomcat/jasper-runtime/5.5.23/jasper-runtime-5.5.23-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/tomcat/jasper-runtime/5.5.23/jasper-runtime-5.5.23-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: xmlenc:xmlenc:0.52">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/xmlenc/xmlenc/0.52/xmlenc-0.52.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/xmlenc/xmlenc/0.52/xmlenc-0.52-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/xmlenc/xmlenc/0.52/xmlenc-0.52-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$/web" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/classes" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/SpringMVCTemplate.iml" filepath="$PROJECT_DIR$/SpringMVCTemplate.iml" />
<module fileurl="file://$PROJECT_DIR$/dao/dao.iml" filepath="$PROJECT_DIR$/dao/dao.iml" />
<module fileurl="file://$PROJECT_DIR$/domain/domain.iml" filepath="$PROJECT_DIR$/domain/domain.iml" />
<module fileurl="file://$PROJECT_DIR$/service/service.iml" filepath="$PROJECT_DIR$/service/service.iml" />
<module fileurl="file://$PROJECT_DIR$/web/web.iml" filepath="$PROJECT_DIR$/web/web.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ArtifactsWorkspaceSettings">
<artifacts-to-build>
<artifact name="web:war" />
</artifacts-to-build>
</component>
<component name="ChangeListManager">
<list default="true" id="25ecaea8-e2ba-4d5b-9049-a2c72815edfc" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/artifacts/web_war.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/artifacts/web_war_exploded.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/compiler.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/encodings.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__antlr_antlr_2_7_7.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__asm_asm_3_3_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__c3p0_c3p0_0_9_1_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__cglib_cglib_2_2_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_7.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_7.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__cn_jpush_api_jpush_client_3_2_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_fastjson_1_2_3.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_classmate_1_3_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_4_4.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_4_4.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_4_4.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_javadev_underscore_1_16.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_miemiedev_mybatis_paginator_1_2_15.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_04.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_code_findbugs_jsr305_1_3_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_code_gson_gson_2_3.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_guava_guava_17_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_protobuf_protobuf_java_2_5_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_jamesmurty_utils_java_xmlbuilder_0_4.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_jcraft_jsch_0_1_42.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_jersey_jersey_core_1_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_jersey_jersey_json_1_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_jersey_jersey_server_1_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_xml_bind_jaxb_impl_2_2_3_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_thoughtworks_paranamer_paranamer_2_3.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_8_3.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_beanutils_commons_beanutils_core_1_8_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_cli_commons_cli_1_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_codec_commons_codec_1_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_codec_commons_codec_1_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_configuration_commons_configuration_1_6.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_digester_commons_digester_1_8.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_el_commons_el_1_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_2_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_httpclient_commons_httpclient_3_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_io_commons_io_2_4.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_net_commons_net_3_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_core_2_4_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_schema_2_4_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_spi_2_4_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_4_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_4_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_4_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_4_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_6.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_swagger_swagger_models_1_5_6.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_activation_activation_1_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_annotation_jsr250_api_1_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_enterprise_cdi_api_1_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_inject_javax_inject_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_servlet_jsp_jsp_api_2_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_servlet_jstl_1_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_servlet_servlet_api_3_0_alpha_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_2_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__javax_xml_stream_stax_api_1_0_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__joda_time_joda_time_2_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__junit_junit_4_12.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__log4j_log4j_1_2_17.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_38.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__net_java_dev_jets3t_jets3t_0_9_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_avro_avro_1_7_4.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_compress_1_4_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_3_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_math3_3_1_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_hadoop_hadoop_annotations_2_3_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_hadoop_hadoop_auth_2_3_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_hadoop_hadoop_common_2_3_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_3.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_6.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_maven_maven_artifact_3_3_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_maven_maven_model_3_3_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_maven_maven_plugin_api_3_3_9.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_3_17.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_ooxml_3_17.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_17.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_tomcat_tomcat_jdbc_7_0_52.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_tomcat_tomcat_juli_7_0_52.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_zookeeper_zookeeper_3_4_5.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_aspectj_aspectjrt_1_8_7.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_4.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_groovy_groovy_all_2_4_5.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_8_8.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_jackson_jackson_jaxrs_1_8_3.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_jackson_jackson_xc_1_8_3.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_plexus_plexus_classworlds_2_5_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_plexus_plexus_component_annotations_1_5_5.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_plexus_plexus_utils_3_0_22.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_eclipse_sisu_org_eclipse_sisu_inject_0_3_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_eclipse_sisu_org_eclipse_sisu_plexus_0_3_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_4_0_2_Final.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_hibernate_hibernate_core_4_2_5_Final.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_hibernate_hibernate_entitymanager_4_2_5_Final.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_0_api_1_0_1_Final.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_javassist_javassist_3_15_0_GA.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_1_0_GA.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_spec_javax_transaction_jboss_transaction_api_1_1_spec_1_0_1_Final.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_jodd_jodd_3_3_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_mortbay_jetty_jetty_6_1_26.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_mortbay_jetty_jetty_util_6_1_26.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_generator_mybatis_generator_core_1_3_5.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_generator_mybatis_generator_maven_plugin_1_3_5.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_mybatis_3_2_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_2_2.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_2_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_quartz_scheduler_quartz_jobs_2_2_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_13.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_5.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_11_1_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_1_9_1_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_aop_4_1_8_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_beans_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_context_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_context_support_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_core_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_expression_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_jdbc_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_orm_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_test_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_tx_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_web_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_webmvc_4_1_4_RELEASE.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_tukaani_xz_1_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_xerial_snappy_snappy_java_1_0_4_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__plugin_plugin_1_0_0.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__redis_clients_jedis_2_8_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__stax_stax_api_1_0_1.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__tomcat_jasper_compiler_5_5_23.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__tomcat_jasper_runtime_5_5_23.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__xmlenc_xmlenc_0_52.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/modules.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/SpringMVCTemplate.iml" />
</list>
<ignored path="$PROJECT_DIR$/web/target/" />
<ignored path="$PROJECT_DIR$/domain/target/" />
<ignored path="$PROJECT_DIR$/target/" />
<ignored path="$PROJECT_DIR$/service/target/" />
<ignored path="$PROJECT_DIR$/dao/target/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="pom.xml" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="33" lean-forward="false" selection-start-line="7" selection-start-column="33" selection-end-line="7" selection-end-column="33" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GradleLocalSettings">
<option name="externalProjectsViewState">
<projects_view />
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="LogFilters">
<option name="FILTER_ERRORS" value="false" />
<option name="FILTER_WARNINGS" value="false" />
<option name="FILTER_INFO" value="false" />
<option name="FILTER_DEBUG" value="false" />
<option name="CUSTOM_FILTER" />
</component>
<component name="MavenImportPreferences">
<option name="generalSettings">
<MavenGeneralSettings>
<option name="mavenHome" value="$USER_HOME$/apache-maven-3.5.0" />
<option name="userSettingsFile" value="$USER_HOME$/apache-maven-3.5.0/conf/settings.xml" />
</MavenGeneralSettings>
</option>
</component>
<component name="MavenProjectNavigator">
<treeState>
<expand />
<select />
</treeState>
</component>
<component name="ProjectFrameBounds" extendedState="6" fullScreen="true">
<option name="width" value="1440" />
<option name="height" value="900" />
</component>
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State>
<id />
</State>
<State>
<id>Abstraction issuesJava</id>
</State>
<State>
<id>Android</id>
</State>
<State>
<id>Android &gt; Lint &gt; Accessibility</id>
</State>
<State>
<id>Android &gt; Lint &gt; Correctness</id>
</State>
<State>
<id>Android &gt; Lint &gt; Correctness &gt; Chrome OS</id>
</State>
<State>
<id>Android &gt; Lint &gt; Correctness &gt; Messages</id>
</State>
<State>
<id>Android &gt; Lint &gt; Internationalization</id>
</State>
<State>
<id>Android &gt; Lint &gt; Internationalization &gt; Bidirectional Text</id>
</State>
<State>
<id>Android &gt; Lint &gt; Performance</id>
</State>
<State>
<id>Android &gt; Lint &gt; Security</id>
</State>
<State>
<id>Android &gt; Lint &gt; Usability</id>
</State>
<State>
<id>Android &gt; Lint &gt; Usability &gt; Icons</id>
</State>
<State>
<id>Android &gt; Lint &gt; Usability &gt; Typography</id>
</State>
<State>
<id>Android Lint for Kotlin</id>
</State>
<State>
<id>Application Server Specific Inspections</id>
</State>
<State>
<id>Assignment issuesJava</id>
</State>
<State>
<id>Bean Validation issues</id>
</State>
<State>
<id>Bitwise operation issuesJava</id>
</State>
<State>
<id>Bitwise operation issuesJavaScript</id>
</State>
<State>
<id>CDI(Contexts and Dependency Injection) issues</id>
</State>
<State>
<id>CSS</id>
</State>
<State>
<id>Class metricsJava</id>
</State>
<State>
<id>Class structureJava</id>
</State>
<State>
<id>Cloning issuesJava</id>
</State>
<State>
<id>Code maturity issuesJava</id>
</State>
<State>
<id>Code style issuesJava</id>
</State>
<State>
<id>Code style issuesJavaScript</id>
</State>
<State>
<id>CodeSpring CoreSpring</id>
</State>
<State>
<id>CoffeeScript</id>
</State>
<State>
<id>Compiler issuesJava</id>
</State>
<State>
<id>Control FlowGroovy</id>
</State>
<State>
<id>Control flow issuesJava</id>
</State>
<State>
<id>Control flow issuesJavaScript</id>
</State>
<State>
<id>Cucumber</id>
</State>
<State>
<id>Declaration redundancyJava</id>
</State>
<State>
<id>DeclarationGroovy</id>
</State>
<State>
<id>Dependency issuesJava</id>
</State>
<State>
<id>ECMAScript 6 migration aidsJavaScript</id>
</State>
<State>
<id>Encapsulation issuesJava</id>
</State>
<State>
<id>Error handlingGroovy</id>
</State>
<State>
<id>Error handlingJava</id>
</State>
<State>
<id>Error handlingJavaScript</id>
</State>
<State>
<id>Faces Model</id>
</State>
<State>
<id>FreeMarker inspections</id>
</State>
<State>
<id>GPath inspectionsGroovy</id>
</State>
<State>
<id>GSPGrailsGroovy</id>
</State>
<State>
<id>General</id>
</State>
<State>
<id>GeneralCoffeeScript</id>
</State>
<State>
<id>GeneralJavaScript</id>
</State>
<State>
<id>Google Web Toolkit issues</id>
</State>
<State>
<id>Gradle</id>
</State>
<State>
<id>GrailsGroovy</id>
</State>
<State>
<id>Groovy</id>
</State>
<State>
<id>Guice Inspections</id>
</State>
<State>
<id>HTML</id>
</State>
<State>
<id>Hibernate Issues</id>
</State>
<State>
<id>Inheritance issuesJava</id>
</State>
<State>
<id>Initialization issuesJava</id>
</State>
<State>
<id>Internationalization issuesJava</id>
</State>
<State>
<id>J2ME issuesJava</id>
</State>
<State>
<id>JBoss Seam issues</id>
</State>
<State>
<id>JPA issues</id>
</State>
<State>
<id>JSP Inspections</id>
</State>
<State>
<id>JUnit issuesJava</id>
</State>
<State>
<id>Java</id>
</State>
<State>
<id>Java 5Java language level migration aidsJava</id>
</State>
<State>
<id>Java 7Java language level migration aidsJava</id>
</State>
<State>
<id>Java 8Java language level migration aidsJava</id>
</State>
<State>
<id>Java 9Java language level migration aidsJava</id>
</State>
<State>
<id>Java EE issues</id>
</State>
<State>
<id>Java interop issuesKotlin</id>
</State>
<State>
<id>Java language level migration aidsJava</id>
</State>
<State>
<id>JavaBeans issuesJava</id>
</State>
<State>
<id>JavaFX</id>
</State>
<State>
<id>JavaScript</id>
</State>
<State>
<id>JavaScript function metricsJavaScript</id>
</State>
<State>
<id>Javadoc issuesJava</id>
</State>
<State>
<id>Kotlin</id>
</State>
<State>
<id>Language Injection</id>
</State>
<State>
<id>Logging issuesJava</id>
</State>
<State>
<id>Manifest</id>
</State>
<State>
<id>Maven</id>
</State>
<State>
<id>Memory issuesJava</id>
</State>
<State>
<id>Method MetricsGroovy</id>
</State>
<State>
<id>Method metricsJava</id>
</State>
<State>
<id>Modularization issuesJava</id>
</State>
<State>
<id>Naming ConventionsGroovy</id>
</State>
<State>
<id>Naming conventionsJava</id>
</State>
<State>
<id>Naming conventionsJavaScript</id>
</State>
<State>
<id>Numeric issuesJava</id>
</State>
<State>
<id>OSGi</id>
</State>
<State>
<id>Packaging issuesJava</id>
</State>
<State>
<id>Pattern Validation</id>
</State>
<State>
<id>Performance issuesJava</id>
</State>
<State>
<id>Plugin DevKit</id>
</State>
<State>
<id>Portability issuesJava</id>
</State>
<State>
<id>Potentially confusing code constructsGroovy</id>
</State>
<State>
<id>Potentially confusing code constructsJavaScript</id>
</State>
<State>
<id>Probable bugsCSS</id>
</State>
<State>
<id>Probable bugsGradle</id>
</State>
<State>
<id>Probable bugsJava</id>
</State>
<State>
<id>Probable bugsJavaScript</id>
</State>
<State>
<id>Probable bugsKotlin</id>
</State>
<State>
<id>Properties Files</id>
</State>
<State>
<id>RELAX NG</id>
</State>
<State>
<id>Redundant constructsKotlin</id>
</State>
<State>
<id>Reflective access issuesJava</id>
</State>
<State>
<id>RegExp</id>
</State>
<State>
<id>Resource management issuesJava</id>
</State>
<State>
<id>SQL</id>
</State>
<State>
<id>Security issuesJava</id>
</State>
<State>
<id>Serialization issuesJava</id>
</State>
<State>
<id>SetupSpring CoreSpring</id>
</State>
<State>
<id>Spring</id>
</State>
<State>
<id>Spring AOPSpring</id>
</State>
<State>
<id>Spring CoreSpring</id>
</State>
<State>
<id>Struts</id>
</State>
<State>
<id>Struts 1Struts</id>
</State>
<State>
<id>Style issuesKotlin</id>
</State>
<State>
<id>TestNGJava</id>
</State>
<State>
<id>Threading issuesGroovy</id>
</State>
<State>
<id>Threading issuesJava</id>
</State>
<State>
<id>TypeScript</id>
</State>
<State>
<id>UI Form Problems</id>
</State>
<State>
<id>Velocity inspections</id>
</State>
<State>
<id>Verbose or redundant code constructsJava</id>
</State>
<State>
<id>WebSocket issues</id>
</State>
<State>
<id>XML</id>
</State>
<State>
<id>XMLSpring CoreSpring</id>
</State>
<State>
<id>XPath</id>
</State>
</expanded-state>
</profile-state>
</entry>
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="PackagesPane" />
<pane id="AndroidView" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="milk" type="b2602c69:ProjectViewProjectNode" />
<item name="SpringMVCTemplate" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="milk" type="b2602c69:ProjectViewProjectNode" />
<item name="SpringMVCTemplate" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="milk" type="b2602c69:ProjectViewProjectNode" />
<item name="SpringMVCTemplate" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="milk" type="b2602c69:ProjectViewProjectNode" />
<item name="SpringMVCTemplate" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="milk" type="b2602c69:ProjectViewProjectNode" />
<item name="SpringMVCTemplate" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="milk" type="b2602c69:ProjectViewProjectNode" />
<item name="SpringMVCTemplate" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="milk" type="b2602c69:ProjectViewProjectNode" />
<item name="SpringMVCTemplate" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
<item name="target" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="settings.editor.selected.configurable" value="preferences.sourceCode" />
<property name="nodejs_interpreter_path" value="/usr/local/bin/node" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="Tomcat Server.Unnamed">
<configuration name="Unnamed" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.0.30" ALTERNATIVE_JRE_ENABLED="false">
<option name="UPDATING_POLICY" value="restart-server" />
<deployment>
<artifact name="web:war">
<settings>
<option name="CONTEXT_PATH" value="/" />
</settings>
</artifact>
</deployment>
<server-settings>
<option name="BASE_DIRECTORY_NAME" value="Unnamed_milk_2" />
</server-settings>
<predefined_log_file id="Tomcat" enabled="true" />
<predefined_log_file id="Tomcat Catalina" enabled="true" />
<predefined_log_file id="Tomcat Manager" enabled="false" />
<predefined_log_file id="Tomcat Host Manager" enabled="false" />
<predefined_log_file id="Tomcat Localhost Access" enabled="false" />
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="56567" />
</RunnerSettings>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
<option name="USE_ENV_VARIABLES" value="true" />
<STARTUP>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</STARTUP>
<SHUTDOWN>
<option name="USE_DEFAULT" value="true" />
<option name="SCRIPT" value="" />
<option name="VM_PARAMETERS" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
</SHUTDOWN>
</ConfigurationWrapper>
<method>
<option name="BuildArtifacts" enabled="true">
<artifact name="web:war" />
</option>
</method>
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<option name="WIDTH" value="400" />
<option name="HEIGHT" value="300" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<module />
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
</configuration>
<configuration default="true" type="tests" factoryName="Nosetests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="_new_regexPattern" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
<option name="PROGRAM_PARAMETERS" />
<predefined_log_file id="idea.log" enabled="true" />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="OUTPUT_DIRECTORY" />
<option name="ANNOTATION_TYPE" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<envs />
<properties />
<listeners />
</configuration>
<configuration default="true" type="tests" factoryName="Unittests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
</configuration>
<configuration default="true" type="tests" factoryName="py.test">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="_new_keywords" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="25ecaea8-e2ba-4d5b-9049-a2c72815edfc" name="Default" comment="" />
<created>1532932228765</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1532932228765</updated>
<workItem from="1532932231682" duration="553000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="553000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1440" height="900" extended-state="6" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.329602" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3297568" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="CDI" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.39925373" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Spring" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.27753934" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="33" lean-forward="false" selection-start-line="7" selection-start-column="33" selection-end-line="7" selection-end-column="33" />
<folding />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArquillianSettingsConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>
\ No newline at end of file
## 此项目为奶业APP后台服务项目
### 1.特殊需求说明
### 2.开发说明
#### 2.1 开发使用的数据库配置路径
> web/src/main/filters/dev.properties
修改此文件下的配置,即可更换数据库连接
#### 2.2 开发者需要自行导入excel的jar包
>jar包中实现了一句代码导入导出excel
```
mvn install:install-file -Dfile=docs/jar/excel-1.1.1-SNAPSHOT.jar -DgroupId=excel -DartifactId=excel -Dversion=1.1.1-SNAPSHOT -Dpackaging=jar
```
>jar项目维护在gitlab.haomo-studio.com上的excel-jar的项目
>使用请看的demo请看:web/src/main/test/com/haomostudio/milk/test/Test.java
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.9.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.11.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.8.7" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.13" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:jcl-over-slf4j:1.7.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.1.4.RELEASE" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework:spring-test:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:4.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.38" level="project" />
<orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-common:2.3.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-annotations:2.3.0" level="project" />
<orderEntry type="library" name="Maven: commons-cli:commons-cli:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.1.1" level="project" />
<orderEntry type="library" name="Maven: xmlenc:xmlenc:0.52" level="project" />
<orderEntry type="library" name="Maven: commons-net:commons-net:3.1" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: org.mortbay.jetty:jetty:6.1.26" level="project" />
<orderEntry type="library" name="Maven: org.mortbay.jetty:jetty-util:6.1.26" level="project" />
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-core:1.9" level="project" />
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-json:1.9" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.1" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.3-1" level="project" />
<orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.2.2" level="project" />
<orderEntry type="library" name="Maven: javax.xml.stream:stax-api:1.0-2" level="project" />
<orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-jaxrs:1.8.3" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-xc:1.8.3" level="project" />
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-server:1.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: tomcat:jasper-compiler:5.5.23" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: tomcat:jasper-runtime:5.5.23" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.servlet.jsp:jsp-api:2.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: commons-el:commons-el:1.0" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
<orderEntry type="library" name="Maven: net.java.dev.jets3t:jets3t:0.9.0" level="project" />
<orderEntry type="library" name="Maven: com.jamesmurty.utils:java-xmlbuilder:0.4" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.6" level="project" />
<orderEntry type="library" name="Maven: commons-digester:commons-digester:1.8" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils-core:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.5" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-asl:1.8.8" level="project" />
<orderEntry type="library" name="Maven: org.apache.avro:avro:1.7.4" level="project" />
<orderEntry type="library" name="Maven: com.thoughtworks.paranamer:paranamer:2.3" level="project" />
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.0.4.1" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:2.5.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.hadoop:hadoop-auth:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.42" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.tukaani:xz:1.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.9.13" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.4.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.4.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:servlet-api:3.0-alpha-1" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:7.0.52" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:7.0.52" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.2.2" level="project" />
<orderEntry type="library" name="Maven: com.github.miemiedev:mybatis-paginator:1.2.15" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.2.2" level="project" />
<orderEntry type="library" name="Maven: cglib:cglib:2.2.2" level="project" />
<orderEntry type="library" name="Maven: asm:asm:3.3.1" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.2.2" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.8.3" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:17.0" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd:3.3.2" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:4.2.5.Final" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.1.0.GA" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:1.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.15.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:4.2.5.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.groovy:groovy-all:2.4.5" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.maven:maven-plugin-api:3.3.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.maven:maven-model:3.3.9" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-utils:3.0.22" level="project" />
<orderEntry type="library" name="Maven: org.apache.maven:maven-artifact:3.3.9" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.sisu:org.eclipse.sisu.plexus:0.3.2" level="project" />
<orderEntry type="library" name="Maven: javax.enterprise:cdi-api:1.0" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
<orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.sisu:org.eclipse.sisu.inject:0.3.2" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-component-annotations:1.5.5" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-classworlds:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.generator:mybatis-generator-core:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.2" level="project" />
<orderEntry type="library" name="Maven: redis.clients:jedis:2.8.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.7" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.7" level="project" />
<orderEntry type="library" name="Maven: com.github.javadev:underscore:1.16" level="project" />
<orderEntry type="library" name="Maven: cn.jpush.api:jpush-client:3.2.9" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.3" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.4.0" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.6" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.6" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.4.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.4.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.4.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
<orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.2.1" level="project" />
<orderEntry type="library" name="Maven: c3p0:c3p0:0.9.1.1" level="project" />
<orderEntry type="library" name="Maven: org.quartz-scheduler:quartz-jobs:2.2.1" level="project" />
<orderEntry type="library" name="Maven: plugin:plugin:1.0.0" level="project" />
</component>
</module>
\ No newline at end of file
*.iml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.haomostudio.milk</groupId>
<artifactId>milk</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>dao</artifactId>
<packaging>jar</packaging>
<name>dao</name>
<description>dao</description>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.haomostudio.milk</groupId>
<artifactId>domain</artifactId>
<version>${milk.domain.version}</version>
</dependency>
</dependencies>
<build>
<finalName>dao</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
package com.haomostudio.SpringMVCTemplate.dao.common;
/**
* Created by shidaizhoukan on 2017/3/16.
*/
public class Constants {
public static final char UNDERLINE = '_';
public final static String SCRIPT_PATH = "/scripts";
public final static String FORMFILE_PATH = "/form";
public final static String AVATAR_PATH = "/upload/user/avatar";
public final static String SEAFILE_COMMON_LIB = "common";
public final static String AFTER_SALES_SEAFILE_LIB = "/afterSales";
public final static String SEAFILE_LOGISTICS_DIR = "/logistics";
public final static String FILING_TENDER_SEAFILE_LIB = "/filingTender";
public static final String COLUMN_ID = "ID";
public static final String COLUMN_SCENE_INSTANCE_ID = "SCENE_INSTANCE_ID";
public static final String COLUMN_FORM_INSTANCE_ID = "FORM_INSTANCE_ID";
public static final String COLUMN_CREATE_TIME = "CREATE_TIME";
public static final String COLUMN_UPDATE_TIME = "UPDATE_TIME";
/**
* 表单引擎自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_FORM_ENGINE = "T_";
/**
* 用户自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_USER = "U_";
/**
* 部门自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_DEPARTMENT = "D_";
/**
* 客户自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_CUSTOMER = "C_";
/**
* 物料自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_MATERIAL = "M_";
/**
* 业务场景自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_SCENE = "S_";
/**
* 报修单的编号标识,和编号长度
*/
public static final String REPAIR_ORDER_NO_TYPE = "Repair_OrderNo_Type";
public static final int REPAIR_ORDER_NO_LENGTH = 4;
// 报备编号
public static final String FILING_NO_TYPE = "FILING_NO_TYPE";
public static class UserQueryConditionType {
public static final String afterSalesCallCenterQuery = "afterSalesCallCenterQuery";
}
public static class FilingHandleStatus {
// 打开
public static final String Active = "A";
// 确定(可以被合同使用)
public static final String Confirm = "C";
// 关闭/办结(手动作废)
public static final String End = "E";
// 超时
public static final String Overtime = "O";
// 待办
public static final String Wait = "W";
// 已办
public static final String Pass = "P";
// 跳过
public static final String Skip = "S";
// 中标
public static final String ZhongBiao = "O";
// 未中标
public static final String WeizhongBiao = "X";
}
}
package com.haomostudio.SpringMVCTemplate.dao.common;
import java.util.Date;
/**
* Created by yide on 2018/1/2.
*/
public class Menus {
private String addOnly;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column role_menu_associated.delete_only
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String deleteOnly;
private Integer rank;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column menu_permissions.app_url
*
* @mbg.generated Tue Jan 02 19:10:18 CST 2018
*/
private String appUrl;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column menu_permissions.menu_logo
*
* @mbg.generated Tue Jan 02 19:10:18 CST 2018
*/
private String menuLogo;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column menu_permissions.link
*
* @mbg.generated Tue Jan 02 19:10:18 CST 2018
*/
private String link;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column role_menu_associated.edit_only
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String editOnly;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column role_menu_associated.type
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String type;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column role_menu_associated.export_only
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String exportOnly;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column role_menu_associated.detail_only
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String detailOnly;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column role_menu_associated.import_only
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String importOnly;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column role_menu_associated.other_only
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String otherOnly;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column role_menu_associated.id
*
* @return the value of role_menu_associated.id
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column menu_permissions.id
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column menu_permissions.name
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String name;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column menu_permissions.parent_id
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private String parentId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column menu_permissions.create_time
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private Date createTime;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column menu_permissions.last_update_time
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
private Date lastUpdateTime;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column menu_permissions.id
*
* @return the value of menu_permissions.id
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public String getId() {
return id;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column menu_permissions.id
*
* @param id the value for menu_permissions.id
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public void setId(String id) {
this.id = id;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column menu_permissions.name
*
* @return the value of menu_permissions.name
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public String getName() {
return name;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column menu_permissions.name
*
* @param name the value for menu_permissions.name
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public void setName(String name) {
this.name = name;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column menu_permissions.parent_id
*
* @return the value of menu_permissions.parent_id
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public String getParentId() {
return parentId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column menu_permissions.parent_id
*
* @param parentId the value for menu_permissions.parent_id
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public void setParentId(String parentId) {
this.parentId = parentId;
}
public Integer getRank() {
return rank;
}
public void setRank(Integer rank) {
this.rank = rank;
}
public String getAppUrl() {
return appUrl;
}
public void setAppUrl(String appUrl) {
this.appUrl = appUrl;
}
public String getMenuLogo() {
return menuLogo;
}
public void setMenuLogo(String menuLogo) {
this.menuLogo = menuLogo;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column menu_permissions.create_time
*
* @return the value of menu_permissions.create_time
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public Date getCreateTime() {
return createTime;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column menu_permissions.create_time
*
* @param createTime the value for menu_permissions.create_time
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column menu_permissions.last_update_time
*
* @return the value of menu_permissions.last_update_time
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public Date getLastUpdateTime() {
return lastUpdateTime;
}
public String getAddOnly() {
return addOnly;
}
public void setAddOnly(String addOnly) {
this.addOnly = addOnly;
}
public String getDeleteOnly() {
return deleteOnly;
}
public void setDeleteOnly(String deleteOnly) {
this.deleteOnly = deleteOnly;
}
public String getEditOnly() {
return editOnly;
}
public void setEditOnly(String editOnly) {
this.editOnly = editOnly;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getExportOnly() {
return exportOnly;
}
public void setExportOnly(String exportOnly) {
this.exportOnly = exportOnly;
}
public String getDetailOnly() {
return detailOnly;
}
public void setDetailOnly(String detailOnly) {
this.detailOnly = detailOnly;
}
public String getImportOnly() {
return importOnly;
}
public void setImportOnly(String importOnly) {
this.importOnly = importOnly;
}
public String getOtherOnly() {
return otherOnly;
}
public void setOtherOnly(String otherOnly) {
this.otherOnly = otherOnly;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column menu_permissions.last_update_time
*
* @param lastUpdateTime the value for menu_permissions.last_update_time
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
public void setLastUpdateTime(Date lastUpdateTime) {
this.lastUpdateTime = lastUpdateTime;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table menu_permissions
*
* @mbg.generated Tue Dec 26 20:54:23 CST 2017
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", name=").append(name);
sb.append(", parentId=").append(parentId);
sb.append(", createTime=").append(createTime);
sb.append(", lastUpdateTime=").append(lastUpdateTime);
sb.append(", addOnly=").append(addOnly);
sb.append(", deleteOnly=").append(deleteOnly);
sb.append(", editOnly=").append(editOnly);
sb.append(", type=").append(type);
sb.append(", exportOnly=").append(exportOnly);
sb.append(", detailOnly=").append(detailOnly);
sb.append(", importOnly=").append(importOnly);
sb.append(", otherOnly=").append(otherOnly);
sb.append(", otherOnly=").append(otherOnly);
sb.append(", otherOnly=").append(otherOnly);
sb.append(", otherOnly=").append(otherOnly);
sb.append(", otherOnly=").append(otherOnly);
sb.append(", rank=").append(rank);
sb.append(", appUrl=").append(appUrl);
sb.append(", menuLogo=").append(menuLogo);
sb.append(", link=").append(link);
sb.append("]");
return sb.toString();
}
}
package com.haomostudio.SpringMVCTemplate.dao.common.util;
import com.haomostudio.SpringMVCTemplate.dao.impl.DataBaseDao;
import org.springframework.util.StringUtils;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* Created by shidaizhoukan on 2017/3/16.
*/
public class DataBaseOperationUtils {
public static final String DB_TYPE_ORACLE = "oracle";
public static final String DB_TYPE_MYSQL = "mysql";
public static final String DATA_TYPE_VARCHAR2 = "varchar2";
public static final String DATA_TYPE_TIMESTAMP = "timestamp";
public static final String DATA_TYPE_INT = "number(11, 0)";
public static final String DATA_TYPE_FLOAT = "FLOAT";
public static final String DATA_TYPE_DOUBLE = "FLOAT";
public static final String DATA_TYPE_NUMBER = "NUMBER";
public static final SimpleDateFormat ORACLE_SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static List<String> getPropertyName(Object obj) {
ArrayList list = new ArrayList();
Field[] fs = obj.getClass().getDeclaredFields();
Field[] var7 = fs;
int var6 = fs.length;
for(int var5 = 0; var5 < var6; ++var5) {
Field f = var7[var5];
list.add(f.getName());
}
return list;
}
public static Object[] GetObjectArgs(Map<String, Object> map, String dbType) {
Map<String, Object> params = new LinkedHashMap<>();
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (DB_TYPE_ORACLE.equals(dbType) && (value instanceof Date)) {
value = ORACLE_SDF.format((Date)value);
}
params.put(key, value);
}
return params.values().toArray();
}
public static List<Object[]> GetObjectArgs(List<Map<String, Object>> maps, String dbType) {
List<Object[]> rets = new ArrayList<>();
Map<String, Object> params = new LinkedHashMap<>();
for (Map<String, Object> map : maps) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (DB_TYPE_ORACLE.equals(dbType) && (value instanceof Date)) {
value = ORACLE_SDF.format((Date) value);
}
params.put(key, value);
}
rets.add(params.values().toArray());
}
return rets;
}
public static String GetNames(Map<String, Object> map, String operation, String dbType) {
String columns = "";
try {
if(DataBaseDao.INSERT.equals(operation)) {
String params = "(";
columns = "(";
for(Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
columns = columns + (DB_TYPE_ORACLE.equals(dbType)? key.toUpperCase() + ",":"`" + key + "`,");
if (DB_TYPE_ORACLE.equals(dbType) && (value instanceof Date)) {
params = params + "to_date(?,'YYYY-MM-DD HH24:MI:SS'),";
} else {
params = params + "?,";
}
}
if(!"(".equals(columns)) {
columns = columns.substring(0, columns.length() - 1);
}
if(!"(".equals(params)) {
params = params.substring(0, params.length() - 1);
}
columns = columns + ")";
params = params + ")";
return columns + " VALUES" + params;
}
if(DataBaseDao.UPDATE.equals(operation)) {
for(Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if ("ID".equals(key)) {
continue;
}
columns = columns + (DB_TYPE_ORACLE.equals(dbType)? key.toUpperCase() + "":"`" + key + "`");
if (DB_TYPE_ORACLE.equals(dbType) && (value instanceof Date)) {
columns = columns + "=to_date(?,'YYYY-MM-DD HH24:MI:SS'),";
} else {
columns = columns + "=?,";
}
}
if(columns.substring(columns.length() - 1, columns.length()).equals(",")) {
columns = columns.substring(0, columns.length() - 1);
}
columns = columns + " WHERE ID=?";
}
if (DataBaseDao.DELETE.equals(operation)) {
for(String key : map.keySet()) {
columns = columns + (DB_TYPE_ORACLE.equals(dbType)? key.toUpperCase() + "=? AND ":"`" + key + "`=? AND ");
}
if(columns.endsWith(" AND ")) {
columns = columns.substring(0, columns.length() - 5);
}
}
} catch (Exception var9) {
var9.printStackTrace();
}
return columns;
}
public static String getInSQL(String params, String flag) {
String tempStr = params.replace(flag, ",");
String[] tempStrArr = tempStr.split(",");
String InSQL = "";
for(int i = 0; i < tempStrArr.length; ++i) {
InSQL = InSQL + "?,";
}
if(!"".equals(InSQL)) {
InSQL = InSQL.substring(0, InSQL.length() - 1);
}
return InSQL;
}
public static List<Object> getInArgs(String params, String flag, String dataType) {
String tempStr = params.replace(flag, ",");
String[] tempStrArr = tempStr.split(",");
ArrayList obj = new ArrayList();
int i;
if("varchar".equalsIgnoreCase(dataType) || "varchar2".equalsIgnoreCase(dataType) || "blob".equalsIgnoreCase(dataType)) {
for(i = 0; i < tempStrArr.length; ++i) {
obj.add(tempStrArr[i]);
}
} else if("integer".equals(dataType)) {
for(i = 0; i < tempStrArr.length; ++i) {
obj.add(Integer.valueOf(Integer.parseInt(tempStrArr[i])));
}
}
return obj;
}
private static String getDataType(int type) {
switch (type) {
case 1:
return DATA_TYPE_VARCHAR2;
case 2:
return DATA_TYPE_VARCHAR2;
case 3:
return DATA_TYPE_TIMESTAMP;
case 4:
return DATA_TYPE_TIMESTAMP;
case 5:
return DATA_TYPE_VARCHAR2;
case 6:
return DATA_TYPE_VARCHAR2;
case 7:
return DATA_TYPE_VARCHAR2;
case 8:
return DATA_TYPE_VARCHAR2;
case 9:
return DATA_TYPE_INT;
case 10:
// return DATA_TYPE_DOUBLE;
return DATA_TYPE_NUMBER;
case 11:
return DATA_TYPE_VARCHAR2;
case 12:
return DATA_TYPE_VARCHAR2;
default:
return DATA_TYPE_VARCHAR2;
}
}
public static String getMySQLTableName(String prefix, String tableName) {
return "`" + getFinalTableName(prefix, tableName) + "`";
}
public static String getOracleTableName(String prefix, String tableName) {
return getFinalTableName(prefix, tableName).toUpperCase();
}
private static String getFinalTableName(String prefix, String tableName) {
String finalName = "";
if (!StringUtils.isEmpty(prefix)) {
finalName += prefix.trim();
finalName += tableName.trim().toUpperCase();
} else {
finalName += tableName.trim().toLowerCase();
}
return finalName;
}
}
package com.haomostudio.SpringMVCTemplate.dao.impl;
import java.util.List;
import java.util.Map;
/**
* Created by shidaizhoukan on 2017/3/16.
*/
public interface DataBaseDao {
String START = "start";
String LIMIT = "limit";
String UPDATE = "UPDATE";
String INSERT = "INSERT";
String DELETE = "DELETE";
int queryForInt(String sql, List<Object> params);
boolean executeSQL(String sql);
int update(String tableNamePrefix, String tableName, Map<String, Object> map);
int insert(String tableNamePrefix, String tableName, Map<String, Object> map);
int inserts(String tableNamePrefix, String tableName, List<Map<String, Object>> maps);
int delete(String tableNamePrefix, String tableName, Map<String, Object> map);
boolean executeSQL(String sql, List<Object> params);
Map<String, Object> executeQuerySQL(String sql);
List<Map<String, Object>> executeListSQL(String sql);
void executeSingleSQL(String sql);
List<Map<String, Object>> getTableData(String tableNamePrefix, String tableName, Map<String, Object> params);
int getTableDataCount(String tableNamePrefix, String tableName, Map<String, Object> params);
int getColumnNotNullCount(String tableNamePrefix, String tableName, String columnName);
int getColumnNotZeroCount(String tableNamePrefix, String tableName, String columnName);
}
package com.haomostudio.SpringMVCTemplate.dao.impl;
import com.haomostudio.SpringMVCTemplate.dao.common.Constants;
import com.haomostudio.SpringMVCTemplate.dao.common.util.DataBaseOperationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Created by shidaizhoukan on 2017/3/16.
*/
@Repository(value = "databaseDao")
public class OracleDataBaseDaoImpl implements DataBaseDao {
public static final String PAGINATION_PREFIX = "select * from (select row_.*, rownum rownum_ from(";
public static final String PAGINATION_SUFFIX = ")row_ where rownum <= ?) where rownum_ > ?";
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private DataSource dataSource;
public List<Map<String, Object>> queryForList(String sql, List<Object> params) {
try {
List e = params.size() > 0 ? this.getJdbcTemplate().queryForList(sql, params.toArray()) :
this.getJdbcTemplate().queryForList(sql);
return e;
} catch (Exception var4) {
var4.printStackTrace();
return new ArrayList<>();
}
}
@Override
public int queryForInt(String sql, List<Object> params) {
try {
if (null == params) {
params = new ArrayList<>();
}
logger.debug("executeSQL:{}\r\nparams:{}", sql, params);
return params.size() > 0 ? this.getJdbcTemplate().queryForObject(sql, params.toArray(),Integer.class) :
this.getJdbcTemplate().queryForObject(sql,Integer.class);
} catch (Exception var4) {
var4.printStackTrace();
return 0;
}
}
@Override
public boolean executeSQL(String sql) {
logger.debug("executeSQL:{}", sql);
String[] sqlList = sql.split(";");
JdbcTemplate jdbcTemplate = this.getJdbcTemplate();
for (String s : sqlList) {
jdbcTemplate.execute(s);
}
return true;
}
@Override
public int update(String tableNamePrefix, String tableName, Map<String, Object> map) {
try {
//保证ID是最后一个字段
String id = (String) map.get(Constants.COLUMN_ID);
map.remove(Constants.COLUMN_ID);
map.put(Constants.COLUMN_ID, id);
String sql = "UPDATE " + DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName) + " SET "
+ DataBaseOperationUtils.GetNames(map, UPDATE, DataBaseOperationUtils.DB_TYPE_ORACLE);
logger.debug("update sql:{}\r\nparams:{}", sql, map);
int row = this.getJdbcTemplate().update(sql, DataBaseOperationUtils.GetObjectArgs(map, DataBaseOperationUtils.DB_TYPE_ORACLE));
return row;
} catch (Exception var4) {
var4.printStackTrace();
throw var4;
}
}
public int insert(String tableNamePrefix, String tableName, Map<String, Object> map) {
try {
String sql = "INSERT INTO " + DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName) + " "
+ DataBaseOperationUtils.GetNames(map, INSERT, DataBaseOperationUtils.DB_TYPE_ORACLE);
logger.debug("insert sql:{}\r\nparams:{}", sql, map);
int ID = this.getJdbcTemplate().update(sql, DataBaseOperationUtils.GetObjectArgs(map, DataBaseOperationUtils.DB_TYPE_ORACLE));
return ID;
} catch (Exception var4) {
var4.printStackTrace();
throw var4;
}
}
public int inserts(String tableNamePrefix, String tableName, List<Map<String, Object>> maps) {
try {
String sql = "INSERT INTO " + DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName) + " "
+ DataBaseOperationUtils.GetNames(maps.get(0), INSERT, DataBaseOperationUtils.DB_TYPE_ORACLE);
logger.debug("inserts sql:{}\r\nparams:{}", sql, maps);
int[] ints = this.getJdbcTemplate().batchUpdate(sql, DataBaseOperationUtils.GetObjectArgs(maps, DataBaseOperationUtils.DB_TYPE_ORACLE));
return 0;
} catch (Exception var4) {
var4.printStackTrace();
throw var4;
}
}
@Override
public int delete(String tableNamePrefix, String tableName, Map<String, Object> map) {
try {
String sql = "DELETE FROM " + DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName) + " WHERE "
+ DataBaseOperationUtils.GetNames(map, DELETE, DataBaseOperationUtils.DB_TYPE_ORACLE);
logger.debug("delete sql:{}\r\nparams:{}", sql, map);
int rows = this.getJdbcTemplate().update(sql, DataBaseOperationUtils.GetObjectArgs(map, DataBaseOperationUtils.DB_TYPE_ORACLE));
return rows;
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
@Override
public boolean executeSQL(String sql, List<Object> params) {
logger.debug("executeSQL:{}\r\nparams:{}", sql, params);
int status = this.getJdbcTemplate().update(sql, params.toArray());
return status > 0;
}
@Override
public Map<String, Object> executeQuerySQL(String sql) {
logger.debug("executeQuerySQL:{}", sql);
return this.getJdbcTemplate().queryForMap(sql);
}
public List<Map<String, Object>> executeListSQL(String sql) {
logger.debug("executeListSQL:{}", sql);
return this.getJdbcTemplate().queryForList(sql);
}
@Override
public void executeSingleSQL(String sql) {
logger.debug("executeSingleSQL:{}", sql);
this.getJdbcTemplate().execute(sql);
}
@Override
public List<Map<String, Object>> getTableData(String tableNamePrefix, String tableName, Map<String, Object> params) {
return null;
}
@Override
public int getTableDataCount(String tableNamePrefix, String tableName, Map<String, Object> params) {
return 0;
}
@Override
public int getColumnNotNullCount(String tableNamePrefix, String tableName, String columnName) {
return 0;
}
@Override
public int getColumnNotZeroCount(String tableNamePrefix, String tableName, String columnName) {
return 0;
}
private JdbcTemplate getJdbcTemplate() {
return new JdbcTemplate(dataSource);
}
}
#!/bin/bash
#rsync -avz web/target/milk.war member@tentop.com.cn:/opt/tomcat8/webapps/milk.war
#rsync -avz web/target/milk.war member@haomo-tech.com:/data/tomcat/webapps/milk.war
rsync -avz -e "ssh -p12322" web/target/milk.war haomo@haomo-studio.com:/opt/hm_tomcat/webapps
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
# 本模板的实验性特性
本文档将对潜在的第三方组件进行研究,以决定是否将其引入本模板库
## modelmapper
地址:
http://modelmapper.org/
特性:
## Query DSL
特性:
支持标准的Query DSL语言,从而使得本模板更具有通用性
参考:
http://www.jianshu.com/p/6d210f0e7577
## Apache Shiro
特性:
企业级的安全框架, 非常适合各类大中小型的应用
参考:
http://blog.csdn.net/jadyer/article/details/12208847
http://www.chengxuyuans.com/javabase/96878.html
https://shiro.apache.org/webapp-tutorial.html
http://qtdebug.com/spring-web/16.%20Shiro%20%E9%85%8D%E7%BD%AE%E7%BC%93%E5%AD%98.html
## Spring Security
特性:
比Shiro复杂不少, 建议在非常复杂的情况下使用
*.iml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.haomostudio.milk</groupId>
<artifactId>milk</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>domain</artifactId>
<packaging>jar</packaging>
<name>domain</name>
<description>domain</description>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<finalName>domain</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
package com.haomostudio.SpringMVCTemplate.common.domain;
/**
*
*/
public class Column {
private String name;
private String dataType;
private int length;
private boolean isNull;
private boolean isKey;
private boolean autoIncrement;
private Integer decimalPlace;
public Integer getDecimalPlace() { return decimalPlace; }
public void setDecimalPlace(Integer decimalPlace) { this.decimalPlace = decimalPlace; }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDataType() {
return dataType;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
public boolean isNull() {
return isNull;
}
public void setIsNull(boolean isNull) {
this.isNull = isNull;
}
public boolean isKey() {
return isKey;
}
public void setIsKey(boolean isKey) {
this.isKey = isKey;
}
public boolean isAutoIncrement() {
return autoIncrement;
}
public void setAutoIncrement(boolean autoIncrement) {
this.autoIncrement = autoIncrement;
}
}
package com.haomostudio.SpringMVCTemplate.common.domain;
/**
* Created by macam on 16/4/15.
*/
public enum ColumnOperator {
equal("eq", "="),
neq("neq", "<>"),
lt("lt", "<"),
lte("lte", "<="),
gt("gt", ">"),
gte("gte", ">="),
like("like", "like"),
isNull("is null", "is null"),
isNotNull("is not null", "is not null");
private String operatorName;
private String dbOperator;
ColumnOperator(String operatorName, String dbOperator) {
this.operatorName = operatorName;
this.dbOperator = dbOperator;
}
public String getOperatorName() {
return operatorName;
}
public void setOperatorName(String operatorName) {
this.operatorName = operatorName;
}
public String getDbOperator() {
return dbOperator;
}
public void setDbOperator(String dbOperator) {
this.dbOperator = dbOperator;
}
}
\ No newline at end of file
package com.haomostudio.SpringMVCTemplate.common.util;
import org.apache.commons.beanutils.BeanUtils;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class BeanHelper<T> {
private final Class<T> clazz;
public BeanHelper(Class<T> clazz) {
this.clazz = clazz;
}
public List<T> convert(List<Map<String, Object>> mapList) {
try {
ArrayList e = new ArrayList();
Iterator var4 = mapList.iterator();
while(var4.hasNext()) {
Map map = (Map)var4.next();
Object tempClass = this.clazz.newInstance();
this.setValue(tempClass, map);
e.add(tempClass);
}
return e;
} catch (Exception var6) {
return null;
}
}
public int setValue(Object bean, Map<?, ?> map) throws Exception {
int cnt = 0;
if(bean != null && map != null) {
Iterator names = map.keySet().iterator();
while(names.hasNext()) {
String name = (String)names.next();
if(name != null) {
Object value = map.get(name);
this.setProperty(bean, name, value);
++cnt;
}
}
return cnt;
} else {
return cnt;
}
}
public void setProperty(Object bean, String name, Object value) throws Exception {
try {
BeanUtils.copyProperty(bean, name, value);
} catch (Exception var5) {
throw new Exception("Set Value Error, Value: " + value.toString() + " Fields: " + name + ", Reason:/r/n" + var5, var5);
}
}
}
package com.haomostudio.SpringMVCTemplate.common.util;
/**
* Created by Administrator on 2016/2/27.
*/
public class Constants {
public static final char UNDERLINE = '_';
public final static String SCRIPT_PATH = "/scripts";
public final static String FORMFILE_PATH = "/form";
public final static String AVATAR_PATH = "/upload/user/avatar";
public final static String SEAFILE_COMMON_LIB = "common";
public final static String AFTER_SALES_SEAFILE_LIB = "/afterSales";
public final static String SEAFILE_LOGISTICS_DIR = "/logistics";
public final static String FILING_TENDER_SEAFILE_LIB = "/filingTender";
public static final String COLUMN_ID = "ID";
public static final String COLUMN_SCENE_INSTANCE_ID = "SCENE_INSTANCE_ID";
public static final String COLUMN_FORM_INSTANCE_ID = "FORM_INSTANCE_ID";
public static final String COLUMN_CREATE_TIME = "CREATE_TIME";
public static final String COLUMN_UPDATE_TIME = "UPDATE_TIME";
/**
* 表单引擎自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_FORM_ENGINE = "T_";
/**
* 用户自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_USER = "U_";
/**
* 部门自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_DEPARTMENT = "D_";
/**
* 客户自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_CUSTOMER = "C_";
/**
* 物料自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_MATERIAL = "M_";
/**
* 业务场景自定义表名前缀
*/
public static final String TABLE_NAME_PREFIX_SCENE = "S_";
/**
* 报修单的编号标识,和编号长度
*/
public static final String REPAIR_ORDER_NO_TYPE = "Repair_OrderNo_Type";
public static final int REPAIR_ORDER_NO_LENGTH = 4;
// 报备编号
public static final String FILING_NO_TYPE = "FILING_NO_TYPE";
public static class UserQueryConditionType {
public static final String afterSalesCallCenterQuery = "afterSalesCallCenterQuery";
}
public static class FilingHandleStatus {
// 打开
public static final String Active = "A";
// 确定(可以被合同使用)
public static final String Confirm = "C";
// 关闭/办结(手动作废)
public static final String End = "E";
// 超时
public static final String Overtime = "O";
// 待办
public static final String Wait = "W";
// 已办
public static final String Pass = "P";
// 跳过
public static final String Skip = "S";
// 中标
public static final String ZhongBiao = "O";
// 未中标
public static final String WeizhongBiao = "X";
}
}
package com.haomostudio.SpringMVCTemplate.common.util;
import com.alibaba.fastjson.JSONObject;
import com.haomostudio.SpringMVCTemplate.common.domain.Column;
import org.springframework.util.StringUtils;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class DataBaseOperationUtils {
public static final String DB_TYPE_ORACLE = "oracle";
public static final String DB_TYPE_MYSQL = "mysql";
public static final String DATA_TYPE_VARCHAR = "varchar";
public static final String DATA_TYPE_TIMESTAMP = "timestamp";
public static final String DATA_TYPE_TEXT = "text";
public static final String DATA_TYPE_INT = "int";
public static final String DATA_TYPE_FLOAT = "float";
public static final String DATA_TYPE_DOUBLE = "double";
public static List<String> getPropertyName(Object obj) {
ArrayList list = new ArrayList();
Field[] fs = obj.getClass().getDeclaredFields();
Field[] var7 = fs;
int var6 = fs.length;
for(int var5 = 0; var5 < var6; ++var5) {
Field f = var7[var5];
list.add(f.getName());
}
return list;
}
public static Object[] GetObjectArgs(Map<String, Object> map) {
return map.values().toArray();
}
public static String GetNames(Map<String, Object> map, String operation, String dbType) {
String columns = "";
try {
if("INSERT".equals(operation)) {
String params = "(";
columns = "(";
for(String key : map.keySet()) {
columns = columns + (DB_TYPE_ORACLE.equals(dbType)?"\"" + key + "\",":"`" + key + "`,");
params = params + "?,";
}
if(!"(".equals(columns)) {
columns = columns.substring(0, columns.length() - 1);
}
if(!"(".equals(params)) {
params = params.substring(0, params.length() - 1);
}
columns = columns + ")";
params = params + ")";
return columns + " VALUES" + params;
}
if("UPDATE".equals(operation)) {
for(String key : map.keySet()) {
if ("ID".equals(key)) {
continue;
}
columns = columns + (DB_TYPE_ORACLE.equals(dbType)?"\"" + key + "\"=?,":"`" + key + "`=?,");
}
if(columns.substring(columns.length() - 1, columns.length()).equals(",")) {
columns = columns.substring(0, columns.length() - 1);
}
columns = columns + " WHERE ID=?";
}
if ("DELETE".equals(operation)) {
for(String key : map.keySet()) {
columns = columns + (DB_TYPE_ORACLE.equals(dbType)?"\"" + key + "\"=? AND ":"`" + key + "`=? AND ");
}
if(columns.endsWith(" AND ")) {
columns = columns.substring(0, columns.length() - 5);
}
}
} catch (Exception var9) {
var9.printStackTrace();
}
return columns;
}
public static String getDataType(Column tc) {
if (tc.getLength() != 0) {
return tc.getDataType() + "(" + tc.getLength() + ")";
} else {
return tc.getDataType();
}
}
public static String getIsNull(Column tc) {
if (tc.isKey() && tc.isAutoIncrement()) {
return "NOT NULL AUTO_INCREMENT";
}
if ("timestamp".equals(tc.getDataType())) {
if(tc.getName().equals(Constants.COLUMN_CREATE_TIME)){
return "DEFAULT CURRENT_TIMESTAMP";
}else{
return "NULL DEFAULT NULL";
}
}
if (tc.isNull()) {
return "DEFAULT NULL";
} else {
return "NOT NULL";
}
}
public static String getPrimaryKey(List<Column> ltc) {
String pk = "PRIMARY KEY (";
for (Column tc : ltc) {
if (tc.isKey()) {
pk += "`" + tc.getName() + "`,";
}
}
if ("PRIMARY KEY (".equals(pk)) {
return "";
} else {
return pk.substring(0, pk.length() - 1) + ")";
}
}
public static String getInSQL(String params, String flag) {
String tempStr = params.replace(flag, ",");
String[] tempStrArr = tempStr.split(",");
String InSQL = "";
for(int i = 0; i < tempStrArr.length; ++i) {
InSQL = InSQL + "?,";
}
if(!"".equals(InSQL)) {
InSQL = InSQL.substring(0, InSQL.length() - 1);
}
return InSQL;
}
public static List<Object> getInArgs(String params, String flag, String dataType) {
String tempStr = params.replace(flag, ",");
String[] tempStrArr = tempStr.split(",");
ArrayList obj = new ArrayList();
int i;
if("varchar".equalsIgnoreCase(dataType) || "varchar2".equalsIgnoreCase(dataType) || "blob".equalsIgnoreCase(dataType)) {
for(i = 0; i < tempStrArr.length; ++i) {
obj.add(tempStrArr[i]);
}
} else if("integer".equals(dataType)) {
for(i = 0; i < tempStrArr.length; ++i) {
obj.add(Integer.valueOf(Integer.parseInt(tempStrArr[i])));
}
}
return obj;
}
/**
*
* Get Column
*
* additionals JSON格式
* {
'type': 1, // 字段类型
'options': [], // 可选项
'constraint': { // 字段约束
'text_length': 32, // 对于文本类型有效
'decimal': {
'is_currency': false, // 是否是货币
'decimal_place': 2 // 小数点位数
}
}
}
*
* @param columnName
* @param additionals
* @return
*/
public static Column getColumn(String columnName, String additionals) {
Column column = new Column();
column.setName(columnName);
if (null == additionals) {
column.setDataType(DATA_TYPE_VARCHAR);
column.setLength(128);
} else {
JSONObject jsonObject = JSONObject.parseObject(additionals);
String type = getDataType(jsonObject.getInteger("type"));
column.setDataType(type);
JSONObject constraint = jsonObject.getJSONObject("constraint");
if (DATA_TYPE_VARCHAR.equals(type) || DATA_TYPE_TEXT.equals(type)) {
Integer textLength = constraint.getInteger("text_length");
column.setLength(textLength);
} else if (DATA_TYPE_FLOAT.equals(type) || DATA_TYPE_DOUBLE.equals(type)) {
JSONObject decimal = constraint.getJSONObject("decimal");
Boolean isCurrency = decimal.getBoolean("is_currency");
Integer decimalPlace = decimal.getInteger("decimal_place");
}
}
if (Constants.COLUMN_ID.equals(columnName)) {
column.setIsKey(true);
}
if (Constants.COLUMN_ID.equals(columnName) || Constants.COLUMN_CREATE_TIME.equals(columnName) || Constants.COLUMN_FORM_INSTANCE_ID.equals(columnName)) {
column.setIsNull(false);
} else {
column.setIsNull(true);
}
return column;
}
private static String getDataType(int type) {
switch (type) {
case 1:
return DATA_TYPE_TEXT;
case 2:
return DATA_TYPE_VARCHAR;
case 3:
return DATA_TYPE_TIMESTAMP;
case 4:
return DATA_TYPE_TIMESTAMP;
case 5:
return DATA_TYPE_VARCHAR;
case 6:
return DATA_TYPE_VARCHAR;
case 7:
return DATA_TYPE_VARCHAR;
case 8:
return DATA_TYPE_VARCHAR;
case 9:
return DATA_TYPE_INT;
case 10:
return DATA_TYPE_DOUBLE;
case 11:
return DATA_TYPE_VARCHAR;
case 12:
return DATA_TYPE_VARCHAR;
default:
return DATA_TYPE_VARCHAR;
}
}
public static String getMySQLTableName(String prefix, String tableName) {
return "`" + getFinalTableName(prefix, tableName) + "`";
}
public static String getOracleTableName(String prefix, String tableName) {
return "\"" + getFinalTableName(prefix, tableName) + "\"";
}
private static String getFinalTableName(String prefix, String tableName) {
String finalName = "";
if (!StringUtils.isEmpty(prefix)) {
finalName += prefix.trim();
finalName += tableName.trim().toUpperCase();
} else {
finalName += tableName.trim().toLowerCase();
}
return finalName;
}
}
package com.haomostudio.SpringMVCTemplate.common.util;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.*;
public class SuperBeanHelper<T> {
private final Class<T> clazz;
public SuperBeanHelper(Class<T> clazz) {
this.clazz = clazz;
}
public List<String> getPropertyName(Object obj) {
ArrayList list = new ArrayList();
Field[] fs = obj.getClass().getDeclaredFields();
Field[] var7 = fs;
int var6 = fs.length;
for(int var5 = 0; var5 < var6; ++var5) {
Field f = var7[var5];
list.add(f.getName());
}
return list;
}
public List<T> convert(List<Map<String, Object>> res) {
ArrayList list = new ArrayList();
try {
Iterator var4 = res.iterator();
while(var4.hasNext()) {
Map e = (Map)var4.next();
Object tempClass = this.clazz.newInstance();
List propertyName = this.getPropertyName(tempClass);
for(int i = 0; i < propertyName.size(); ++i) {
Field f = tempClass.getClass().getDeclaredField(((String)propertyName.get(i)).toString());
f.setAccessible(true);
try {
if(f.getType().getName().equals("int")) {
f.set(tempClass, Integer.valueOf(Integer.parseInt(e.get(((String)propertyName.get(i)).toString().trim()).toString())));
} else if(f.getType().getName().equals("java.util.Date")) {
SimpleDateFormat e1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = e1.parse(e.get(((String)propertyName.get(i)).toString().trim()).toString());
f.set(tempClass, d);
} else {
f.set(tempClass, e.get(((String)propertyName.get(i)).toString().trim()));
}
} catch (Exception var11) {
System.out.println(var11.getMessage());
}
}
list.add(tempClass);
}
} catch (Exception var12) {
System.out.println(var12.getMessage());
}
return list;
}
}
package com.haomostudio.Util;
/**
* Created by guanpb on 2018/3/16.
*/
import java.util.List;
/**
* Created by guanpb on 2017/9/18.
*/
public class Util {
public static String dealFieldsValuesDataBaseOR(List<String> fields, List<String> values, String column){
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("( ");
if (fields == null || values == null
|| (fields != null && fields.size() == 0)
|| (values != null && fields.size() == 0) ){
return "1=1";
}
if (fields.size() > 1 && values.size() > 1){
int i =0;
for (String value:values){
if (column.contains("like")){
stringBuffer.append(fields.get(i)+" like '%"+value+"%' or ");
}else {
stringBuffer.append(fields.get(i)+" = '"+value+"' or ");
}
i++;
}
}else {
boolean fieldsOrValue = fields.size() == 1;
List<String> lists = fieldsOrValue?values:fields;
lists.stream().forEach(list->{
if (column.contains("like")){
stringBuffer.append((fieldsOrValue?fields.get(0):list)+" like '%"+(fieldsOrValue?list:values.get(0))+"%' or ");
}else {
stringBuffer.append((fieldsOrValue?fields.get(0):list)+" = '"+(fieldsOrValue?list:values.get(0))+"' or ");
}
});
}
stringBuffer.delete(stringBuffer.length()-4,stringBuffer.length()-1);
stringBuffer.append(") ");
if (fields.size() == 1 && values.size() == 1){
return stringBuffer.toString().replace(" or","");
}
return stringBuffer.toString();
}
}
\ No newline at end of file
## po、vo、pojo的区别,以及创建放置
### 1. PO(persistant object) 持久对象
在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操作.
> 放置跟数据库对应的实体类
### 2. VO(value object) 值对象
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递.
> 跟po对应的包装类
### 3. POJO(plain ordinary java object) 简单无规则java对象
纯的传统意义的java对象.就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法.我的理解就是最基本的Java Bean,只有属性字段及setter和getter方法!.
> 存放我们自己创建简单无须的类,例如导出excel配置的实体类。
\ No newline at end of file
#!/bin/bash
read -p "请输入git的commit内容:" -t 60 commit #等待60秒
echo $commit
git add .
git commit -m "$commit"
git pull
git push
##部门
1. id ==> code code 从16位变为128位 【done】
2. 增加启用\禁
3. department_type_id 0:部门 1:分部
4. 三级结构缺失
##operator
###创建者
1. 创建人 【done】
2. 创建人经理 【done】
3. 创建人本分部 [done]
4. 创建人本部门 【done】
5. 创建人上级部门【done】
6. 分部 [done]
7. 部门 [done]
8. 角色 [done]
9. 人力资源 [done]
10. 所有人 [done]
###人力资源字段
1. 人力资源字段本人
2. 人力资源字段经理
3. 人力资源字段本分部
4. 人力资源字段本部门
5. 人力资源字段上级部门
6. 分部
7. 部门
8. 角色
9. 角色人员
###节点操作者
1. 节点操作者本人
2. 节点操作者经理
##操作条件
###创建人
1. 创建人 【done】
2. 创建人经理 【done】
3. 创建部门 【done】
4. 创建人本分部 【done】
###表单条件
1. 数字 [lt\lte\gt\gte] [done]
2. 日期 [lt\lte\gt\gte] [done]
3. 时间 [lt\lte\gt\gte] [done]
3. 字符串 [done] eq\neq\contain\no-contain
4. 外链 [in\not-in] [done]
##会签操作
1. 表明一个节点
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.haomostudio.milk</groupId>
<artifactId>SpringMVCTemplate</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<modules>
<module>web</module>
<module>service</module>
<module>dao</module>
<module>domain</module>
</modules>
<properties>
<milk.web.version>0.0.1-SNAPSHOT</milk.web.version>
<milk.service.version>0.0.1-SNAPSHOT</milk.service.version>
<milk.dao.version>0.0.1-SNAPSHOT</milk.dao.version>
<milk.domain.version>0.0.1-SNAPSHOT</milk.domain.version>
<spring.version>4.1.4.RELEASE</spring.version>
<spring-data-jpa.version>1.9.1.RELEASE</spring-data-jpa.version>
<jackson.version>2.5.0</jackson.version>
<jdk.version>1.8</jdk.version>
<tomcat-jdbc.version>7.0.52</tomcat-jdbc.version>
<mybatis.version>3.2.2</mybatis.version>
<mybatis-paginator.version>1.2.15</mybatis-paginator.version>
<mybatis-spring.version>1.2.2</mybatis-spring.version>
<commons.fileupload.version>1.2.2</commons.fileupload.version>
<!--<commons.io.version>2.0.1</commons.io.version>-->
<commons.io.version>2.4</commons.io.version>
<commons-lang3.version>3.3.2</commons-lang3.version>
<activiti.version>5.19.0</activiti.version>
<commons.beanutils.version>1.8.3</commons.beanutils.version>
<guava.version>17.0</guava.version>
<joda-time.version>2.1</joda-time.version>
<org.jodd.version>3.3.2</org.jodd.version>
<hibernate.version>4.2.5.Final</hibernate.version>
<!-- Plugin的属性定义 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<cglib.version>2.2.2</cglib.version>
<poi.version>3.17</poi.version>
<springfox.version>2.4.0</springfox.version>
<mybatis.generator.configurationFile>
${basedir}/web/src/main/resources/mysqlGeneratorConfig.xml
</mybatis.generator.configurationFile>
</properties>
<!--<repositories>-->
<!--&lt;!&ndash; 推荐使用oschina仓库 &ndash;&gt;-->
<!--<repository>-->
<!--<id>nexus-osc</id>-->
<!--<url>http://maven.oschina.net/content/groups/public/</url>-->
<!--</repository>-->
<!--<repository>-->
<!--<id>nexus-osc-thirdparty</id>-->
<!--<url>http://maven.oschina.net/content/repositories/thirdparty/</url>-->
<!--</repository>-->
<!--</repositories>-->
<repositories>
<repository>
<id>aliyun-repository</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-repository</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!--依赖-->
<dependencies>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- spring -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>${spring-data-jpa.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit-dep</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>provided</scope>
</dependency>
<!--<dependency>-->
<!--<groupId>servlet</groupId>-->
<!--<artifactId>api</artifactId>-->
<!--<version>1.0</version>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>sap</groupId>-->
<!--<artifactId>api</artifactId>-->
<!--<version>1.0</version>-->
<!--</dependency>-->
<!-- 关系型数据库整合时需配置 如hibernate jpa等 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 添加mysql jdbc driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.3.0</version>
</dependency>
<!--<dependency>-->
<!--<groupId>postgresql</groupId>-->
<!--<artifactId>postgresql</artifactId>-->
<!--<version>9.1-901-1.jdbc4</version>-->
<!--</dependency>-->
<!-- json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- aop -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.4</version>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<scope>compile</scope>
<version>${tomcat-jdbc.version}</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis分页插件. @Deprecated. 目前采用了官方的RowBoundsPlugin -->
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>${mybatis-paginator.version}</version>
</dependency>
<!-- mybatis与spring集成 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>${cglib.version}</version>
</dependency>
<!--文件上传 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons.beanutils.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>org.jodd</groupId>
<artifactId>jodd</artifactId>
<version>${org.jodd.version}</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
<!-- PERSISTENCE begin -->
<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<!-- QuartZ -->
<!--<dependency>-->
<!--<groupId>org.quartz-scheduler</groupId>-->
<!--<artifactId>quartz</artifactId>-->
<!--<version>2.2.2</version>-->
<!--</dependency>-->
<!-- Groovy -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.5</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>com.github.javadev</groupId>
<artifactId>underscore</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
<version>3.2.9</version>
</dependency>
<!--swagger 配置依賴 開始-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox.version}</version>
</dependency>
<!--swagger 配置依賴 結束-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.4</version>
</dependency>
<!--excel 配置依賴 開始-->
<!--<dependency>-->
<!--<groupId>excel</groupId>-->
<!--<artifactId>excel</artifactId>-->
<!--<version>1.1.1-SNAPSHOT</version>-->
<!--</dependency>-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
<!--excel 配置依賴 結束-->
<!--quartz 任務調度 配置依賴 start-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
<!--quartz 任務調度 配置依賴 end-->
<dependency>
<groupId>plugin</groupId>
<artifactId>plugin</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<!-- compiler插件, 设定JDK版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<!-- war打包插件, 设定war包名称不带版本号 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warName>milk</warName>
<webXml>src/main/resources/webapp/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
<!-- test插件, 仅测试名称为*Test的类,使用支持分组测试的surefire-junit47 driver -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<argLine>-Xmx256M</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.16</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/mybatis/mysqlGeneratorConfig.xml</configurationFile>
<!--<configurationFile>${basedir}/src/main/resources/mybatis/oracleGeneratorConfig.xml</configurationFile>-->
<!--<configurationFile>${basedir}/src/main/resources/mybatis/postgresqlGeneratorConfig1.xml</configurationFile>-->
<!--postgresqlGeneratorConfig.xml-->
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>plugin</groupId>
<artifactId>plugin</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</plugin>
<!-- enforcer插件, 避免被依赖的依赖引入过期的jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.0.3</version>
</requireMavenVersion>
<requireJavaVersion>
<version>1.6</version>
</requireJavaVersion>
<bannedDependencies>
<searchTransitive>true</searchTransitive>
<excludes>
<exclude>commons-logging</exclude>
<exclude>aspectj:aspectj*</exclude>
<exclude>org.springframework</exclude>
</excludes>
<includes>
<include>org.springframework:*:4.0.*</include>
</includes>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
<!-- resources插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
<!-- install插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<!-- ant插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
</plugin>
<!-- ant插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<!--配置信息 test:测试环境 production:生产环境 -->
<profiles>
<!--开发环境-->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<redis.ip>127.0.0.1</redis.ip>
<redis.port>6379</redis.port>
</properties>
</profile>
<!--生成环境-->
<profile>
<id>prd</id>
<properties>
<redis.ip>127.0.0.1</redis.ip>
<redis.port>6379</redis.port>
</properties>
</profile>
<!--仿真环境-->
<profile>
<id>simu</id>
<properties>
<redis.ip>127.0.0.1</redis.ip>
<redis.port>6379</redis.port>
</properties>
</profile>
<!--测试环境-->
<profile>
<id>test</id>
<properties>
<redis.ip>bcs.hitevision.com</redis.ip>
<redis.port>6379</redis.port>
</properties>
</profile>
</profiles>
</project>
*.iml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.haomostudio.milk</groupId>
<artifactId>milk</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>service</artifactId>
<packaging>jar</packaging>
<name>service</name>
<description>service</description>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.haomostudio.milk</groupId>
<artifactId>dao</artifactId>
<version>${milk.dao.version}</version>
</dependency>
<dependency>
<groupId>com.haomostudio.milk</groupId>
<artifactId>domain</artifactId>
<version>${milk.dao.version}</version>
</dependency>
<dependency>
<groupId>com.sap</groupId>
<artifactId>sapjco3</artifactId>
<version>0.9.32</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/sapjco3.jar</systemPath>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
</dependencies>
<build>
<finalName>service</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
package com.haomostudio.SpringMVCTemplate.service.HmUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.CaseFormat;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;
/**
* Created by hxgqh on 2016/10/7.
*/
public class MybatisExampleHelper {
/**
* 创建mybatis的函数setOrderByClause支持的排序格式
* @param sortItem 格式为: 'id, name'
* @param sortOrder 格式为: 'asc, desc'
* @return
*/
public static String createOrderClause(String sortItem, String sortOrder){
List<String> items = Arrays.asList(sortItem.split(",\\s*"));
List<String> orders = Arrays.asList(sortOrder.split(",\\s*"));
if(items.size() != orders.size()){
return null;
}
else{
List<String> itemOrder = new ArrayList<>();
for(int i=0;i<items.size();i++){
itemOrder.add(items.get(i) + " " + orders.get(i));
}
return String.join(", ", itemOrder);
}
}
/**
* 获取mybatis generator自动生成的过滤函数的名称
* @param column
* @param condition
* @return
*/
public static String getFilterFuncName(String column, String condition){
if(column.contains("_")){
return "and"
+ CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, column)
+ CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, condition);
}
else{
return "and"
+ column.substring(0,1).toUpperCase() + column.substring(1)
+ CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, condition);
}
}
public static Method getMethod(Object obj, String methodName){
for(Method m: obj.getClass().getDeclaredMethods()){
if(m.getName().equals(methodName)){
return m;
}
}
return null;
}
public static Method getMethodNumber(Object obj, String methodName,int parameterNuber){
for(Method m: obj.getClass().getDeclaredMethods()){
if(m.getName().equals(methodName) && m.getParameterTypes().length == parameterNuber){
return m;
}
}
return null;
}
/**
* 给mybatis附加上某个字段的条件过滤
* @param exampleObj
* @param exampleObjCriteria
* @param column
* @param condition
* @param value
* @return
*/
public static Object assignCondition(Object exampleObj, Object exampleObjCriteria,
String column ,String condition, Object value){
String funcName = getFilterFuncName(column, condition);
Method m = MybatisExampleHelper.getMethod(exampleObjCriteria, funcName);
switch (condition){
case "fieldsValuesOr":
try {
m = MybatisExampleHelper.getMethod(exampleObjCriteria, condition);
m.invoke(exampleObjCriteria,(List<String>)((Map<String,Object>)value).get("values"),(List<String>)((Map<String,Object>)value).get("fields"),column);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
break;
case "isNull":
case "isNotNull":
try{
m.invoke(exampleObjCriteria);
}
catch (ReflectiveOperationException e){
throw new RuntimeException(e);
}
break;
// 需要考虑时间和Number等字段
case "between":
case "notBetween":
try{
if(m.getParameterTypes()[0].getName().contains("Date")){
m.invoke(exampleObjCriteria,
Tools.convertStringToDate(((List<String>) value).get(0), "yyyy-MM-dd HH:mm:ss"),
Tools.convertStringToDate(((List<String>) value).get(1), "yyyy-MM-dd HH:mm:ss"));
} else if(m.getParameterTypes()[0].getName().contains("Long")){
m.invoke(exampleObjCriteria,
((List<Long>) value).get(0),
((List<Long>) value).get(1));
} else{
m.invoke(exampleObjCriteria,
((List<Integer>) value).get(0),
((List<Integer>) value).get(1));
}
}
catch (ReflectiveOperationException e){
throw new RuntimeException(e);
}
break;
default:
try{
if(m.getParameterTypes()[0].getName().contains("Date")){
m.invoke(exampleObjCriteria,
Tools.convertStringToDate((String)value, "yyyy-MM-dd HH:mm:ss"));
} else if(m.getParameterTypes()[0].getName().contains("Long")){
m.invoke(exampleObjCriteria, Long.valueOf(String.valueOf(value)));
} else if(m.getParameterTypes()[0].getName().contains("Integer")){
m.invoke(exampleObjCriteria, Integer.valueOf((String)value));
} else if(m.getParameterTypes()[0].getName().contains("int")){
m.invoke(exampleObjCriteria, (int)value);
} else {
m.invoke(exampleObjCriteria, value);
}
}
catch (ReflectiveOperationException e){
throw new RuntimeException(e);
}
break;
}
return exampleObj;
}
/**
* 给mybatis的Example对象附加上
* @param exampleObj
* @param exampleObjCriteria
* @param filters JSON字符串,格式为
* {
* table:
* {
* column1: {
* like: '%abc%',
* notLike: ''
* between: [1, 10],
* notBetween: [1, 10]
* isNull: true, // 只能为true
* isNotNull: true, // 只能为true
* equalTo: "abc",
* notEqualTo: "abc",
* greaterThan: 10,
* greaterThanOrEqualTo: 10,
* lessThan: 10,
* lessThanOrEqualTo: 10,
* in: [],
* notIn: []
* }
* }
*
* }
* @return
*/
public static Object assignWhereClause (Object exampleObj,
Object exampleObjCriteria,
String className,
String filters){
JSONObject filterObj = JSON.parseObject(filters);
if(!filterObj.containsKey(
CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, className)
)){
return exampleObjCriteria;
}
JSONObject columnCondition = filterObj.getJSONObject(
CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, className));
Set<Map.Entry<String, Object>> entrySet = columnCondition.entrySet();
for(Map.Entry<String, Object> entry: entrySet){
String column = entry.getKey();
JSONObject conditionObj = (JSONObject) entry.getValue();
Set<Map.Entry<String, Object>> conditionObjEntrySet
= conditionObj.entrySet();
for(Map.Entry<String, Object> coes: conditionObjEntrySet){
exampleObj = assignCondition(
exampleObj, exampleObjCriteria,
column, coes.getKey(), coes.getValue());
}
}
return exampleObjCriteria;
}
public static String getSimpleFilter(String table, String column, String oper, Object value){
return JSON.toJSONString(new HashMap(){{
put(table, new HashMap(){{
put(column, new HashMap(){{
put(oper, value);
}});
}});
}});
}
/**
*
* @param m java反射类中的方法
* @param superior 实体类对象
* @param className 类名(用于反射时对应的ServiceImpl类)
* @param map 用于存储数据的Map
* @param table 关联表的名字
*/
public static void dealSearchIncludes(Method m,Object superior,Object className,Map<String,Object> map,String table,String packageName){
try {
if (m != null){
//外联表的主键值
Object id = m.invoke(superior);
//根据主键取出整条数据
if (id != null){
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
//反射类名
Class onwClass = Class.forName(packageName+"."+className+"ServiceImpl");
Object impl = onwClass.newInstance();
//获取Method的对象
String get = "get";
if (className.equals("CrmUser")){
get = "getUserById";
}
Method m1 = MybatisExampleHelper.getMethod(impl, get);
if (m1 != null){
//外联表的整条数据
Object obj2 = m1.invoke(wac.getBean(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, table)+"Service"),id);
//取出来的数据返回
map.put(table.toString(),obj2);
}
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
public static void dealSearchRefers(Object id,String table,Map<String,List<Object>> map,Object obj,Object className,String packageName){
try {
//根据主键取出整条数据
if (id != null) {
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
//DivStattisTabService service = (DivStattisTabService)
//反射类名
Class onwClass = Class.forName(packageName+"."+className+"ServiceImpl");
Object impl = onwClass.newInstance();
//获取Method的对象
Method m1 = MybatisExampleHelper.getMethodNumber(impl, "getListWithPagingAndFilter",5);
//filters的字符串拼接
StringBuffer buffer = new StringBuffer();
buffer.append("{");
buffer.append("\""+table+"\"");
buffer.append(":{");
buffer.append("\""+obj.toString()+"\"");
buffer.append(":{");
buffer.append("\"equalTo\": \""+id.toString()+"\"");
buffer.append("} } }");
//执行getListWithPagingAndFilter方法的参数数组
Object[] methodObject = new Object[]{1,1000,"id","asc",buffer.toString()};
if (m1 != null){
//外联表的整条数据
List<Object> obj2 = (List<Object>)m1.invoke(wac.getBean(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, table)+"Service"),1,1000,"id","asc",buffer.toString());
//取出来的数据返回
map.put(table.toString(),obj2);
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
}
package com.haomostudio.SpringMVCTemplate.service.HmUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* Created by Stevie on 2015/12/20.
*/
public class Tools {
private static SchedulerFactory schedulerFactory = new StdSchedulerFactory();
public static final String yyyyMMdd = "yyyyMMdd";
public static final String dateFormat = "yyyy-MM-dd";
public static final String dateTimeFormat = "yyyy-MM-dd HH:mm:ss";
public static final String dateTimePattern = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$";
public static String getUUID() {
return UUID.randomUUID().toString().trim().replaceAll("-", "");
}
public static int getRandomNumber(int min, int max) {
Random random = new Random();
int result = random.nextInt(max) % (max - min + 1) + min;
return result;
}
/**
* @param request
* @param multipartFile
* @param targetName 目标文件名(不含扩展名)
* @param targetFolder 目标文件夹
* @return
* @throws IOException
*/
public static File uploadFile(HttpServletRequest request, MultipartFile multipartFile, String targetName, String targetFolder) throws IOException {
if (null == multipartFile || multipartFile.isEmpty()) {
return null;
}
String dir = request.getSession().getServletContext().getRealPath(targetFolder);
String fileName;
//目标文件名为空则使用原文件名
if (StringUtils.isEmpty(targetName)) {
fileName = multipartFile.getOriginalFilename();
} else {
String type = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."));
fileName = targetName + type;
}
File file = new File(dir, fileName);
FileUtils.writeByteArrayToFile(file, multipartFile.getBytes());
return file;
}
/**
* 获取泛型的Collection Type
*
* @param jsonStr json字符串
* @param collectionClass 泛型的Collection
* @param elementClasses 元素类型
*/
public static <T> T readJson(String jsonStr, Class<?> collectionClass, Class<?>... elementClasses) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
JavaType javaType = mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
return mapper.readValue(jsonStr, javaType);
}
// 获取spring容器
public static WebApplicationContext getSpringContext() {
return ContextLoader.getCurrentWebApplicationContext();
}
// 获取spring容器中的bean
public static Object getSpringBean(String beanName) {
return getSpringContext().getBean(beanName);
}
public static String nullObjToEmpty(Object obj) {
if (obj == null) {
return "";
}
return StringUtils.trim(obj.toString());
}
public static int transferToInt(String intStr) {
try {
return Integer.parseInt(intStr);
} catch (NumberFormatException e) {
return 0;
}
}
public static Double transferToDouble(String intStr) {
try {
return Double.valueOf(intStr);
} catch (NumberFormatException e) {
return 0.0;
}
}
/**
* 连接字符串
* [aaa,bbb,ccc]-->'aaa','bbb','ccc'
* @param strs
* @return
*/
public static String joinStr(List<String> strs) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < strs.size() - 1; i++) {
sb.append("'").append(strs.get(i)).append("',");
}
sb.append("'").append(strs.get(strs.size() - 1)).append("'");
return sb.toString();
}
public static String joinStrBySp(List<String> strs,String sp) {
if(strs == null || strs.size() == 0){
return "";
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < strs.size() - 1; i++) {
sb.append(strs.get(i) + sp);
}
sb.append(strs.get(strs.size() - 1));
return sb.toString();
}
public static <T extends Serializable> T clone(T obj) {
ByteArrayOutputStream bos = null;
ObjectOutputStream oos = null;
ObjectInputStream ois = null;
T t = null;
try {
bos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
oos.flush();
ois = new ObjectInputStream(new ByteArrayInputStream(bos.toByteArray()));
t = (T) ois.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
ois.close();
oos.close();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return t;
}
public static String convertDateToString(Date value, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
String result = sdf.format(value);
return result;
}
public static String convertToSapString(Object value) {
SimpleDateFormat sdf = new SimpleDateFormat(yyyyMMdd);
String result = null;
if (value instanceof Date) {
result = sdf.format(value);
}
return result;
}
public static Date convertStringToDate(String str, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
Date date = sdf.parse(str);
return date;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String getApplicationRootPath() {
return ContextLoader.getCurrentWebApplicationContext().getServletContext().getRealPath("/");
}
public static List<Map<String, Object>> transToLower(List<Map<String,Object>> maps){
List<Map<String,Object>> tmps= new ArrayList<>();
for (Map<String, Object> map : maps) {
Map<String,Object> tmp = new HashMap<>();
for (String s : map.keySet()) {
tmp.put(s.toLowerCase(),map.get(s));
}
tmps.add(tmp);
}
return tmps;
}
public static List<Map<String, Object>> addPrefix(String prefix,List<Map<String,Object>> maps){
List<Map<String,Object>> tmps= new ArrayList<>();
for (Map<String, Object> map : maps) {
Map<String,Object> tmp = new HashMap<>();
for (String s : map.keySet()) {
tmp.put(prefix+"."+s,map.get(s));
}
tmps.add(tmp);
}
return tmps;
}
public static List<Map<String, Object>> mergeMap(List<Map<String,Object>> amaps,List<Map<String,Object>> bmaps){
for (int i = 0; i < bmaps.size(); i++) {
for (String key : bmaps.get(i).keySet()) {
amaps.get(i).put(key,bmaps.get(i).get(key));
}
}
return amaps;
}
public static List<Map<String, Object>> transToLowerJustID(List<Map<String,Object>> maps){
List<Map<String,Object>> tmps= new ArrayList<>();
for (Map<String, Object> map : maps) {
Map<String,Object> tmp = new HashMap<>();
for (String s : map.keySet()) {
if(s.equals("ID")) {
tmp.put(s.toLowerCase(), map.get(s));
}else{
tmp.put(s, map.get(s));
}
}
tmps.add(tmp);
}
return tmps;
}
public static String getOrclPageSql(String sql,Integer pageNo,Integer pageSize){
sql="select * from (select row_.*, rownum rownum_ from( " + sql +
")row_ where rownum <= "+(Integer)(pageNo*pageSize)+") where rownum_ >= "+(Integer)((pageNo-1)*pageSize + 1);
return sql;
}
/**
* 合同中根据账期和比例确定SAP付款条件标识
* @param ht31 首付款账期
* @param ht33 中期款账期
* @param ht35 尾款账期
*
* 判断依据:
* 0001 立即应付 到期净值
* H010 10天之内 到期净值
* H020 20天之内 到期净值
* H030 30天之内 到期净值
* H045 45天之内 到期净值
* H060 60天之内 到期净值
* H090 90天之内 到期净值
* @return
*/
public static String changeToSapPay(String ht31, String ht33, String ht35) {
String checkDay = StringUtils.isNotBlank(ht35) ? ht35 : (StringUtils.isNotBlank(ht33) ? ht33 : ht31);
if ("0".equals(checkDay)) {
return "0001";
}
return "H0" + getFloorDay(Integer.parseInt(checkDay));
}
private static int getFloorDay(int htDay) {
int[] days = new int[]{10, 20, 30, 45, 60, 90};
for (int day : days) {
if (day - htDay >= 0) {
return day;
}
}
return 0;
}
public static boolean containsKeyIgnoreCase(Map<String, Object> map, String key) {
if (StringUtils.isBlank(key)) {
return false;
}
for (Map.Entry<String, Object> entry : map.entrySet()) {
if (StringUtils.isBlank(entry.getKey())) {
return false;
}
if (entry.getKey().equalsIgnoreCase(key)) {
return true;
}
}
return false;
}
private static String escapeSql(String str) {
if (str.indexOf("%") > -1) {
str = str.replaceAll("%", "\\\\%");
}
if (str.indexOf("_") > -1) {
str = str.replaceAll("_", "\\\\_");
}
return str;
}
/**
* (key, value) --> key='value' / key=value
* @param key
* @param value
* @return
*/
public static String joinDbKV(String key, Object value) {
if (value == null) {
return key + "=" + value;
} else {
return key + "='" + value + "'";
}
}
public static String getOracleToDate(Date date) {
return "to_date('" + convertDateToString(date, dateFormat) + "', 'yyyy-MM-dd')";
}
public static String getOracleToDateTime(Date date) {
return "to_date('" + convertDateToString(date, dateTimeFormat) + "', 'yyyy-MM-dd hh24:mi:ss')";
}
public static Map<String, Object> convertJSONObjectToMap(JSONObject object) {
Map<String, Object> map = new HashMap<>();
for (Map.Entry<String, Object> entry : object.entrySet()) {
map.put(entry.getKey(), entry.getValue());
}
return map;
}
public static List<Map<String, Object>> convertJSONArrayToList(JSONArray array) {
List<Map<String, Object>> list = new ArrayList<>();
for (Object item : array) {
Map<String, Object> map = convertJSONObjectToMap((JSONObject) item);
list.add(map);
}
return list;
}
}
package com.haomostudio.SpringMVCTemplate.service.common;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
/**
* Created by stevenwang on 1/18/2016.
*/
public abstract class GenericService {
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static final int MAX_PAGE_SIZE = 10000;
public static final Integer TABLE_TYPE_DEFAULT = 2;
public static final String TABLE_NAME_CUSTOMER = "CUSTOMER";
public static final String OFFSET = "offset";
public static final String LIMIT = "rows";
/**
* 日志
*/
public Log log = LogFactory.getLog(getClass());
public Log getLog() {
return log;
}
public void setLog(Log log) {
this.log = log;
}
public SimpleDateFormat getDateFormat() {
return dateFormat;
}
public void setDateFormat(SimpleDateFormat dateFormat) {
this.dateFormat = dateFormat;
}
public void addPageNoPageSize2Condition(Map<String, Object> condition, Integer pageNo, Integer pageSize) {
condition.put(OFFSET, (pageNo - 1) * pageSize);
condition.put(LIMIT, pageSize);
}
public Date parseDate(String dateStr) {
if (StringUtils.isNotEmpty(dateStr)) {
try {
return this.sdf.parse(dateStr);
} catch (Exception e) {
log.error("日期转换错误");
}
}
return null;
}
}
package com.haomostudio.SpringMVCTemplate.service.common;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 2016/1/8.
*/
public class Response {
private Integer code;
private Map<String, List<String>> headers;
private String body;
private Integer pageNo;
private Integer pageSize;
private Integer total;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public Map<String, List<String>> getHeaders() {
return headers;
}
public void setHeaders(Map<String, List<String>> headers) {
this.headers = headers;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public Integer getPageNo() {
return getPaginationValueFromHeader("page_no");
}
public Integer getPageSize() {
return getPaginationValueFromHeader("page_size");
}
public Integer getTotal() {
return getPaginationValueFromHeader("total");
}
/**
* 获得分页的整形数值:page_no, page_size, total
* @param key key
* @return Integer
*/
private Integer getPaginationValueFromHeader(String key) {
List<String> list = this.headers.get(key);
if (list.size() > 0) {
return Integer.valueOf(list.get(0));
}
return null;
}
@Override
public String toString() {
StringBuffer buffer = new StringBuffer();
buffer.append("Code:").append(this.code).append("\nBody:").append(this.body);
if (null != this.getHeaders()) {
for (Map.Entry<String, List<String>> entry : this.getHeaders().entrySet()) {
buffer.append("\n").append(entry.getKey()).append(":");
if (null != entry.getValue()) {
for (String value : entry.getValue()) {
buffer.append(value).append(" ");
}
}
}
}
return buffer.toString();
}
}
package com.haomostudio.SpringMVCTemplate.service.common;
/**
*
* 保存各系统之间的TOKEN的JAVA BEAN
*
* Created by steven on 2016/1/6.
*/
public class Token {
private String userId;
private String token;
private String seaFileToken;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getSeaFileToken() {
return seaFileToken;
}
public void setSeaFileToken(String seaFileToken) {
this.seaFileToken = seaFileToken;
}
}
package com.haomostudio.SpringMVCTemplate.service.common.service;
import com.haomostudio.SpringMVCTemplate.common.domain.Column;
import java.util.List;
import java.util.Map;
/**
*
*/
public interface DataBaseService {
boolean createTable(String tableNamePrefix, String tableName, List<Column> columns);
boolean dropTable(String tableNamePrefix, String tableName);
boolean renameTable(String tableNamePrefix, String oldName, String newName);
boolean addColumn(String tableNamePrefix, String tableName, Column column);
boolean dropColumn(String tableNamePrefix, String tableName, String columnName);
boolean changeColumn(String tableNamePrefix, String tableName, String columnName, Column column);
boolean executeSQL(String sql);
List<Map<String, Object>> getTableData(String tableNamePrefix, String tableName, Map<String, Object> params);
int getTableDataCount(String tableNamePrefix, String tableName, Map<String, Object> params);
int getColumnValueHasValueCount(String tableNamePrefix, String tableName, String columnName, Integer type);
int getColumnValueNotNullCount(String tableNamePrefix, String tableName, String columnName);
int getColumnValueNotZeroCount(String tableNamePrefix, String tableName, String columnName);
boolean executeSQL(String sql, List<Object> params);
int update(String tableNamePrefix, String tableName, Map<String, Object> map);
int insert(String tableNamePrefix, String tableName, Map<String, Object> map);
int inserts(String tableNamePrefix, String tableName, List<Map<String, Object>> maps);
int delete(String tableNamePrefix, String tableName, Map<String, Object> map);
String convertParam2SqlConnByAndForUser(String sortItem, String sortOrder, String filters);
String convertParam2SqlConnByAnd(String sortItem, String sortOrder, String filters);
String convertParam2SqlConnByWhereForUser(String sortItem, String sortOrder, String filters);
String convertParam2SqlConnByWhere(String sortItem, String sortOrder, String filters);
String convertParam2SqlConnByAnd(String filters);
String convertParam2SqlConnByWhere(String filters);
Map<String, Object> executeQuerySQL(String sql);
List<Map<String, Object>> zxexecuteListSQL(String sql);
Integer zxqueryForInt(String sql);
void executeSingleSQL(String sql);
}
package com.haomostudio.SpringMVCTemplate.service.common.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.haomostudio.SpringMVCTemplate.common.domain.Column;
import com.haomostudio.SpringMVCTemplate.common.util.DataBaseOperationUtils;
import com.haomostudio.SpringMVCTemplate.dao.impl.DataBaseDao;
import com.haomostudio.SpringMVCTemplate.service.common.service.DataBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
*/
@Service(value = "databaseService")
public class OracleDataBaseServiceImpl implements DataBaseService {
@Autowired
private DataBaseDao databaseDao;
public static final String EQUALS = "equals";
public static final String RANGE = "range";
public static final String START = "start";
public static final String END = "end";
public static final String LIKE = "like";
public static final String IN = "in";
@Override
public boolean createTable(String tableNamePrefix, String tableName, List<Column> columns) {
String sql = "CREATE TABLE "
+ DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName) + " (";
for (Column tc : columns) {
sql += tc.getName().toUpperCase() + " " + DataBaseOperationUtils.getDataType(tc) + " "
+ DataBaseOperationUtils.getIsNull(tc) + ",";
}
if ("".equals(DataBaseOperationUtils.getPrimaryKey(columns))) {
sql = sql.substring(0, sql.length() - 1);
}
sql += DataBaseOperationUtils.getPrimaryKey(columns) + ");";
return executeSQL(sql);
}
@Override
public boolean dropTable(String tableNamePrefix, String tableName) {
String sql = "DROP TABLE " + DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName);
return executeSQL(sql);
}
@Override
public boolean renameTable(String tableNamePrefix, String oldName, String newName) {
String sql = "ALTER TABLE " + DataBaseOperationUtils.getOracleTableName(tableNamePrefix, oldName) + " RENAME TO "
+ DataBaseOperationUtils.getOracleTableName(tableNamePrefix, newName);
return executeSQL(sql);
}
@Override
public boolean addColumn(String tableNamePrefix, String tableName, Column column) {
String sql = "ALTER TABLE " + DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName) + " ADD " + column.getName().toUpperCase() + " "
+ DataBaseOperationUtils.getDataType(column) + " "
+ DataBaseOperationUtils.getIsNull(column) + ";";
return executeSQL(sql);
}
@Override
public boolean dropColumn(String tableNamePrefix, String tableName, String columnName) {
String sql = "ALTER TABLE " + DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName) + " DROP COLUMN " + columnName.toUpperCase() + ";";
return executeSQL(sql);
}
@Override
public boolean changeColumn(String tableNamePrefix, String tableName, String columnName, Column column) {
String newColumnName = column.getName().toUpperCase();
String orclTableName = DataBaseOperationUtils.getOracleTableName(tableNamePrefix, tableName);
String sql = "";
if (!columnName.equalsIgnoreCase(newColumnName)) {
sql = "ALTER TABLE " + orclTableName + " RENAME COLUMN " + columnName.toUpperCase() + " TO " + newColumnName + ";";
}
sql += "ALTER TABLE " + orclTableName + " MODIFY " + newColumnName + " " + DataBaseOperationUtils.getDataType(column) + " "
+ DataBaseOperationUtils.getIsNull(column) + ";";
return executeSQL(sql);
}
@Override
public boolean executeSQL(String sql) {
return this.databaseDao.executeSQL(sql);
}
@Override
public List<Map<String, Object>> getTableData(String tableNamePrefix, String tableName, Map<String, Object> params) {
return this.databaseDao.getTableData(tableNamePrefix, tableName, params);
}
@Override
public int getTableDataCount(String tableNamePrefix, String tableName, Map<String, Object> params) {
return this.databaseDao.getTableDataCount(tableNamePrefix, tableName, params);
}
@Override
public int getColumnValueHasValueCount(String tableNamePrefix, String tableName, String columnName, Integer type) {
//9:整形 10:浮点型
if (9 == type || 10 == type) {
return this.databaseDao.getColumnNotZeroCount(tableNamePrefix, tableName, columnName);
}
return this.databaseDao.getColumnNotNullCount(tableNamePrefix, tableName, columnName);
}
@Override
public int getColumnValueNotNullCount(String tableNamePrefix, String tableName, String columnName) {
return this.databaseDao.getColumnNotNullCount(tableNamePrefix, tableName, columnName);
}
@Override
public int getColumnValueNotZeroCount(String tableNamePrefix, String tableName, String columnName) {
return this.databaseDao.getColumnNotZeroCount(tableNamePrefix, tableName, columnName);
}
@Override
public boolean executeSQL(String sql, List<Object> params) {
return this.databaseDao.executeSQL(sql, params);
}
@Override
public int update(String tableNamePrefix, String tableName, Map<String, Object> map) {
Map<String, Object> linkedHashMap = new LinkedHashMap<>();
if (null != map) {
linkedHashMap.putAll(map);
}
return this.databaseDao.update(tableNamePrefix, tableName, linkedHashMap);
}
@Override
public int insert(String tableNamePrefix, String tableName, Map<String, Object> map) {
return this.databaseDao.insert(tableNamePrefix, tableName, map);
}
@Override
public int inserts(String tableNamePrefix, String tableName, List<Map<String, Object>> maps) {
return this.databaseDao.inserts(tableNamePrefix, tableName, maps);
}
@Override
public int delete(String tableNamePrefix, String tableName, Map<String, Object> map) {
return this.databaseDao.delete(tableNamePrefix, tableName, map);
}
@Override
/**
* 多表联合查询问题
*/
public String convertParam2SqlConnByAnd(String sortItem, String sortOrder,
String filters) {
StringBuffer sql = new StringBuffer();
if (!StringUtils.isEmpty(filters)) {
try {
filters = URLDecoder.decode(filters, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
JSONObject filtersJsonObj = JSONObject.parseObject(filters);
for (String tableName : filtersJsonObj.keySet()) {
JSONObject conditionsJsonObj = filtersJsonObj.getJSONObject(tableName);
for (String columnName : conditionsJsonObj.keySet()) {
JSONObject columnJsonObj = conditionsJsonObj.getJSONObject(columnName);
for (String operationName : columnJsonObj.keySet()) {
sql.append(" AND ");
String column = tableName + "." + columnName;
if (RANGE.equals(operationName)) {
JSONObject rangeJsonObj = columnJsonObj.getJSONObject(operationName);
String start = rangeJsonObj.getString(START);
String end = rangeJsonObj.getString(END);
sql.append("(").append(column).append(">").append("'").append(start).append("'").
append(" AND ").append(column).append("<").append("'").append(end).append("'").append(")");
} else if (LIKE.equals(operationName)) {
String value = columnJsonObj.getString(LIKE);
sql.append("(").append(column).append(" like '%").append(value).append("%')");
} else if("notLike".equals(operationName)){
String value = columnJsonObj.getString("notLike");
sql.append("(").append(column).append(" not like '").append(value).append("')");
} else if (EQUALS.equals(operationName)) {
// 保持兼容性的成长
List<String> valueArray = new ArrayList<>();
try {
JSONArray jsonArray = columnJsonObj.getJSONArray(EQUALS);
for (int i = 0; i < jsonArray.size(); i++) {
String v = jsonArray.getString(i);
valueArray.add(v);
}
} catch (Exception e) {
String values = columnJsonObj.getString(EQUALS);
for (String s : values.split(",")) {
valueArray.add(s);
}
}
sql.append("(");
for (int i = 0; i < valueArray.size(); i++) {
String value = valueArray.get(i);
if (i != 0) {
sql.append(" OR ");
}
sql.append(column).append("=").append("'").append(value).append("'");
}
sql.append(")");
} else if(IN.equals(operationName)){
JSONArray values = columnJsonObj.getJSONArray(IN);
sql.append("(").append(column).append(" in ('")
.append(org.apache.commons.lang3.StringUtils.join(
values.stream().map(value -> (String)value).collect(Collectors.toList()),
"', '"
)).append("'))");
}
}
}
}
}
if (!StringUtils.isEmpty(sortItem) && !StringUtils.isEmpty(sortOrder)) {
// 排序
String[] sorts = sortItem.split(",");
String[] orders = sortOrder.split(",");
StringBuffer sb = new StringBuffer();
int i = 0;
for (i = 0; i < sorts.length - 1; i++) {
sb.append(" " + sorts[i]);
if (i < orders.length) {
sb.append(" " + orders[i]);
}
sb.append(" , ");
}
sb.append(" " + sorts[i]);
if (i < orders.length) {
sb.append(" " + orders[i]);
}
// sql.append(" order by ").append(sortItem).append(" ").append(sortOrder);
sql.append(" order by ").append(sb.toString());
}
return sql.toString();
}
@Override
/**
* 多表联合查询问题
*/
public String convertParam2SqlConnByAndForUser(String sortItem, String sortOrder,
String filters) {
StringBuffer sql = new StringBuffer();
if (!StringUtils.isEmpty(filters)) {
try {
filters = URLDecoder.decode(filters, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
JSONObject filtersJsonObj = JSONObject.parseObject(filters);
for (String tableName : filtersJsonObj.keySet()) {
JSONObject conditionsJsonObj = filtersJsonObj.getJSONObject(tableName);
for (String columnName : conditionsJsonObj.keySet()) {
JSONObject columnJsonObj = conditionsJsonObj.getJSONObject(columnName);
for (String operationName : columnJsonObj.keySet()) {
sql.append(" AND ");
String column = tableName + "." + columnName;
if (RANGE.equals(operationName)) {
JSONObject rangeJsonObj = columnJsonObj.getJSONObject(operationName);
String start = rangeJsonObj.getString(START);
String end = rangeJsonObj.getString(END);
sql.append("(").append(column).append(">").append("'").append(start).append("'").
append(" AND ").append(column).append("<").append("'").append(end).append("'").append(")");
} else if (LIKE.equals(operationName)) {
String value = columnJsonObj.getString(LIKE);
if (column.equals("crm_user.username")) {
sql.append("((crm_user.username like '%" + value + "%') or (crm_user.loginid like '%" + value + "%'))");
} else {
sql.append("(").append(column).append(" like '%").append(value).append("%')");
}
} else if (EQUALS.equals(operationName)) {
// 保持兼容性的成长
List<String> valueArray = new ArrayList<>();
try {
JSONArray jsonArray = columnJsonObj.getJSONArray(EQUALS);
for (int i = 0; i < jsonArray.size(); i++) {
String v = jsonArray.getString(i);
valueArray.add(v);
}
} catch (Exception e) {
String values = columnJsonObj.getString(EQUALS);
for (String s : values.split(",")) {
valueArray.add(s);
}
}
sql.append("(");
for (int i = 0; i < valueArray.size(); i++) {
String value = valueArray.get(i);
if (i != 0) {
sql.append(" OR ");
}
sql.append(column).append("=").append("'").append(value).append("'");
}
sql.append(")");
}
}
}
}
}
if (!StringUtils.isEmpty(sortItem) && !StringUtils.isEmpty(sortOrder)) {
// sql.append(" order by ").append(sortItem).append(" ").append(sortOrder);
// 排序
String[] sorts = sortItem.split(",");
String[] orders = sortOrder.split(",");
StringBuffer sb = new StringBuffer();
int i = 0;
for (i = 0; i < sorts.length - 1; i++) {
sb.append(" " + sorts[i]);
if (i < orders.length) {
sb.append(" " + orders[i]);
}
sb.append(" , ");
}
sb.append(" " + sorts[i]);
if (i < orders.length) {
sb.append(" " + orders[i]);
}
// sql.append(" order by ").append(sortItem).append(" ").append(sortOrder);
sql.append(" order by ").append(sb.toString());
}
return sql.toString();
}
@Override
public String convertParam2SqlConnByWhere(String sortItem, String sortOrder, String filters) {
StringBuffer sql = new StringBuffer();
sql.append(" WHERE 1=1 ").append(convertParam2SqlConnByAnd(sortItem, sortOrder, filters));
return sql.toString();
}
@Override
public String convertParam2SqlConnByWhereForUser(String sortItem, String sortOrder, String filters) {
StringBuffer sql = new StringBuffer();
sql.append(" WHERE 1=1 ").append(convertParam2SqlConnByAndForUser(sortItem, sortOrder, filters));
return sql.toString();
}
@Override
public String convertParam2SqlConnByAnd(String filters) {
return convertParam2SqlConnByAnd(null, null, filters);
}
@Override
public String convertParam2SqlConnByWhere(String filters) {
return convertParam2SqlConnByWhere(null, null, filters);
}
@Override
public Map<String, Object> executeQuerySQL(String sql) {
return this.databaseDao.executeQuerySQL(sql);
}
@Override
public List<Map<String, Object>> zxexecuteListSQL(String sql) {
return this.databaseDao.executeListSQL(sql);
}
@Override
public Integer zxqueryForInt(String sql) {
return this.databaseDao.queryForInt(sql, null);
}
@Override
public void executeSingleSQL(String sql) {
this.databaseDao.executeSingleSQL(sql);
}
}
#!/bin/bash
mvn install:install-file -Dfile=docs/jar/plugin-1.0.0.jar -DgroupId=plugin -DartifactId=plugin -Dversion=1.0.0 -Dpackaging=jar
\ No newline at end of file
*.iml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.haomostudio.milk</groupId>
<artifactId>milk</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>web</artifactId>
<packaging>war</packaging>
<name>web</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.haomostudio.milk</groupId>
<artifactId>service</artifactId>
<version>${milk.service.version}</version>
</dependency>
<dependency>
<groupId>com.haomostudio.milk</groupId>
<artifactId>dao</artifactId>
<version>${milk.dao.version}</version>
</dependency>
<dependency>
<groupId>com.haomostudio.milk</groupId>
<artifactId>domain</artifactId>
<version>${milk.domain.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
</dependencies>
<profiles>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<build>
<filters>
<filter>${basedir}/src/main/filters/dev.properties</filter>
</filters>
</build>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
<build>
<filters>
<filter>${basedir}/src/main/filters/test.properties</filter>
</filters>
</build>
</profile>
<!-- 仿真环境 -->
<profile>
<id>simu</id>
<properties>
<profiles.active>simu</profiles.active>
</properties>
<build>
<filters>
<filter>${basedir}/src/main/filters/simu.properties</filter>
</filters>
</build>
</profile>
<!-- 生产环境 -->
<profile>
<id>prd</id>
<properties>
<profiles.active>prd</profiles.active>
</properties>
<build>
<filters>
<filter>${basedir}/src/main/filters/prd.properties</filter>
</filters>
</build>
</profile>
</profiles>
<build>
<finalName>web</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
#dev.properties
\ No newline at end of file
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://haomo-tech.com:3309/milk?useUnicode=true&amp;characterEncoding=UTF8
jdbc.username=root
jdbc.password=root
\ No newline at end of file
package com.haomostudio.SpringMVCTemplate;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Controller
@Configuration
@EnableSwagger2
public class SwaggerConfig {
}
\ No newline at end of file
package com.haomostudio.SpringMVCTemplate.common;
import org.quartz.*;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 任务实现
* @author Administrator
*/
public class MyJob implements Job{
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Hello quzrtz "+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(new Date())
+ context.getMergedJobDataMap().get("task")
+ " \n name : "+ context.getJobDetail().getDescription()
);
}
}
package com.haomostudio.SpringMVCTemplate.common;
/**
* Created by guanpb on 2017/5/2.
*/
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import java.util.Properties;
/**
* Desc:properties配置文件读取类
* Created by guanpb on 2017/05/01.
*/
public class PropertyConfigurer extends PropertyPlaceholderConfigurer {
private Properties props; // 存取properties配置文件key-value结果
public PropertyConfigurer() {
}
public PropertyConfigurer(Properties props) {
this.props = props;
}
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
throws BeansException {
super.processProperties(beanFactoryToProcess, props);
this.props = props;
}
public String getProperty(String key){
return this.props.getProperty(key);
}
public String getProperty(String key, String defaultValue) {
return this.props.getProperty(key, defaultValue);
}
public Object setProperty(String key, String value) {
return this.props.setProperty(key, value);
}
}
\ No newline at end of file
package com.haomostudio.SpringMVCTemplate.common;
import java.util.HashMap;
import java.util.Map;
public class Resp {
public static final int SUCCESS = 0;
public static final int FAIL = -1;
public static final int WARN = 1;
public static final String CODE = "code";
public static final String MSG = "message";
public static final String FIELDS = "fields";
public static Map<String, Object> succ(String message) {
return result(SUCCESS, message, null);
}
public static Map<String, Object> succ(String message, Object fields) {
return result(SUCCESS, message, fields);
}
public static Map<String, Object> fail(String message) {
return result(FAIL, message, null);
}
public static Map<String, Object> warn(String message) {
return result(WARN, message, null);
}
public static Map<String, Object> fail(int code, String message) {
return result(code, message, null);
}
public static Map<String, Object> fail(String message, Object fields) {
return result(FAIL, message, fields);
}
public static Map<String, Object> result(int code, String message, Object fields) {
Map<String, Object> map = new HashMap<>();
map.put(CODE, code);
map.put(MSG, message);
map.put(FIELDS, fields);
return map;
}
}
package com.haomostudio.SpringMVCTemplate.servlet;
import com.haomostudio.SpringMVCTemplate.common.Resp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
import javax.naming.AuthenticationException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* Output error/exception as JSON and also can be used a global error logger.
* Created by Stevie on 2015/12/22.
*/
public class DefaultHandlerExceptionResolver implements HandlerExceptionResolver {
private final static Logger LOG = LoggerFactory.getLogger(DefaultHandlerExceptionResolver.class.getName());
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handlerMethod, Exception e) {
if (e.getMessage() != null && !e.getMessage().contains("Authentication Failed. Please Login.")
&& !e.getMessage().contains("Missing request header 'X-Auth-Token'")
&& !(e instanceof org.springframework.web.bind.MissingServletRequestParameterException)) {
LOG.error(request.getRequestURI(), e);
e.printStackTrace();
}
if (e instanceof AuthenticationException) {
response.setStatus(403);
} else {
response.setStatus(500);
}
ModelAndView mv = new ModelAndView();
//set data
Map<String, Object> result = Resp.fail(e.getMessage());
mv.addAllObjects(result);
//set view
MappingJackson2JsonView view = new MappingJackson2JsonView();
mv.setView(view);
return mv;
}
}
package com.haomostudio.SpringMVCTemplate.servlet;
import org.springframework.core.MethodParameter;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.MissingServletRequestParameterException;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
/**
* Created by Stevie on 2015/12/22.
*/
public class EmptyRequestParamResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return (parameter.getParameterType().isAssignableFrom(String.class)) && (null != parameter.getParameterAnnotation(RequestParam.class));
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest,
WebDataBinderFactory binderFactory) throws Exception {
RequestParam ann = parameter.getParameterAnnotation(RequestParam.class);
Object arg = webRequest.getParameter(ann.value());
if (StringUtils.isEmpty(arg)) {
throw new MissingServletRequestParameterException(ann.value(), parameter.getParameterType().getSimpleName());
}
return arg;
}
}
generatorConfig.xml
\ No newline at end of file
#\u6839\u636E\u4E0D\u540C\u73AF\u5883\u8BBE\u7F6E\u9700\u8981\u8BFB\u53D6\u7684\u914D\u7F6E\u6587\u4EF6
A=application.properties
B=application.local.properties
\ No newline at end of file
#hibernate settings
hibernate.show_sql=false
hibernate.format_sql=false
#dbcp settings
dbcp.initialSize=5
dbcp.maxActive=20
dbcp.maxIdle=10
#versions
system.version=${project.version}
spring.version=${spring.version}
hibernate.version=${hibernate.version}
activiti.version=${activiti.version}
db.type=${db.type}
#\u7F13\u5B58\u56FE\u7247:http://www.kafeitu.me/activiti/2013/02/14/improve-performance-for-reading-diagram.html
export.diagram.path=/tmp/kft-activiti-demo
diagram.http.url=http://localhost:10000
diagram.activityFontName=\u5B8B\u4F53
diagram.labelFontName=\u5B8B\u4F53
#init demo data
create.demo.users=true
create.demo.models=true
# \u7528\u81EA\u52A8\u90E8\u7F72\u4EE3\u66FF\u4E86,\u6240\u4EE5\u5173\u95ED
create.demo.definitions=false
\ No newline at end of file
#mysql database setting
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://10.28.163.192:3306/smartchatNew?useUnicode=true&amp;characterEncoding=UTF-8
#jdbc.username=knowledge
#jdbc.password=knowledge
#connection pool settings
jdbc.pool.maxIdle=10
jdbc.pool.maxActive=50
#jimidb redis settings
jimdb_configId=/redis/cluster/17
jimdb_token=1417623612434
#jimdb_configId_remote=/redis/cluster/17
#jimdb_token_remote=1417623612434
#auth settings
passport.checkLogin.loginUrl=http://passport.jd.com/new/login.aspx
passport.checkLogin.logoutUrl=https://passport.jd.com/uc/login?ltype=logout
#saf settings
saf.zk.url=192.168.150.119:2181,192.168.150.120:2181,192.168.150.121:2181
#import params
maxUploadSize=51200000
maxInMemorySize=5120000
uploadTempDir=/tempDir
#gateway directory
gw.jsf.alias=gateway-cd
\ No newline at end of file
#application configs
#jdbc druid config
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=root
jdbc.password=123456
jdbc.driverClassName=${connection.driver_class}
jdbc.url=${connection.url}
jdbc.username=${connection.username}
jdbc.password=${connection.password}
jndiName = ${symbol_dollar}{jndiName}
\ No newline at end of file
#数据库配置
jimi_username=knowledge
jimi_password=knowledge
#校验登陆的cookie名
passport.checkLogin.cookieName=thor
#passport登陆的校验key
passport.checkLogin.authenticationKey=C196FA243B92A634E69E58421D3A69881E0361DE75D6C663
\ No newline at end of file
#upload_file_path=/Users/haomo/Desktop/
upload_file_path=/root/hm_tomcat/webapps/file/milk/
#pdf_export_path=/Users/liuranran/Tomcat8/
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="3 seconds">
<!-- 通过<property>元素定义的值实际上会被插入logger上下文 -->
<property name="LOG_DIR" value="${logbackLogFilePath}"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
</filter>
</appender>
<appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}error_log/error.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/error_log/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="warnFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}warn_log/warn.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/warn_log/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}info_log/info.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/info_log/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="debugFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}debug_log/debug.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/debug_log/debug.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<logger name="org.springframework" level="debug" additivity="false"/>
<logger name="org.quartz" level="debug" additivity="false"/>
<logger name="org.apache.http.wire" level="debug" additivity="false"/>
<logger name="org.apache.http.headers" level="debug" additivity="false"/>
<logger name="org.apache.http.impl" level="debug" additivity="false"/>
<logger name="org.apache.http.client" level="debug" additivity="false"/>
<root level="debug">
<appender-ref ref="console"/>
<appender-ref ref="errorFile"/>
<appender-ref ref="warnFile"/>
<appender-ref ref="infoFile"/>
<appender-ref ref="debugFile"/>
</root>
</configuration>
\ No newline at end of file
##Mybatis Generator完整配置详解
###整理了一个最完整的Mybatis Generator(简称MBG)的最完整配置文件,以后修改我们自己修改的GeneratorConfig.xml可以参考此文档
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!-- 配置生成器 -->
<generatorConfiguration>
<!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项
resource:配置资源加载地址,使用resource,MBG从classpath开始找,比如com/myproject/generatorConfig.properties
url:配置资源加载地质,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties.
注意,两个属性只能选址一个;
另外,如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使用
<properties resource="" url="" />
-->
<!-- 在MBG工作的时候,需要额外加载的依赖包
location属性指明加载jar/zip包的全路径
<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />
-->
<!--
context:生成一组对象的环境
id:必选,上下文id,用于在生成错误时提示
defaultModelType:指定生成对象的样式
1,conditional:类似hierarchical;
2,flat:所有内容(主键,blob)等全部生成在一个对象中;
3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
targetRuntime:
1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
introspectedColumnImpl:类全限定名,用于扩展MBG
-->
<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >
<!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖
-->
<property name="autoDelimitKeywords" value="false"/>
<!-- 生成的Java文件的编码 -->
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 格式化java代码 -->
<property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<!-- 格式化XML代码 -->
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 必须要有的,使用这个配置链接数据库
@TODO:是否可以扩展
-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin">
<!-- 这里面可以设置property属性,每一个property属性都设置到配置的Driver上 -->
</jdbcConnection>
<!-- java类型处理器
用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl;
注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型;
-->
<javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
<!--
true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型
false:默认,
scale>0;length>18:使用BigDecimal;
scale=0;length[10,18]:使用Long;
scale=0;length[5,9]:使用Integer;
scale=0;length<5:使用Short;
-->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- java模型创建器,是必须要的元素
负责:1,key类(见context的defaultModelType);2,java类;3,查询类
targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;
targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录
-->
<javaModelGenerator targetPackage="com._520it.mybatis.domain" targetProject="src/main/java">
<!-- for MyBatis3/MyBatis3Simple
自动为每一个生成的类创建一个构造方法,构造方法包含了所有的field;而不是使用setter;
-->
<property name="constructorBased" value="false"/>
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
<!-- for MyBatis3 / MyBatis3Simple
是否创建一个不可变的类,如果为true,
那么MBG会创建一个没有setter方法的类,取而代之的是类似constructorBased的类
-->
<property name="immutable" value="false"/>
<!-- 设置一个根对象,
如果设置了这个根对象,那么生成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项
注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新生成这些属性了,包括:
1,属性名相同,类型相同,有相同的getter/setter方法;
-->
<property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/>
<!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成SQL map的XML文件生成器,
注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
targetPackage/targetProject:同javaModelGenerator
-->
<sqlMapGenerator targetPackage="com._520it.mybatis.mapper" targetProject="src/main/resources">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口
targetPackage/targetProject:同javaModelGenerator
type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):
1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;
3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER
-->
<javaClientGenerator targetPackage="com._520it.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
<!-- 可以为所有生成的接口添加一个父接口,但是MBG只负责生成,不负责检查
<property name="rootInterface" value=""/>
-->
</javaClientGenerator>
<!-- 选择一个table来生成相关文件,可以有一个或多个table,必须要有table元素
选择的table会生成一下文件:
1,SQL map文件
2,生成一个主键类;
3,除了BLOB和主键的其他字段的类;
4,包含BLOB的类;
5,一个用户生成动态查询的条件类(selectByExample, deleteByExample),可选;
6,Mapper接口(可选)
tableName(必要):要生成对象的表名;
注意:大小写敏感问题。正常情况下,MBG会自动的去识别数据库标识符的大小写敏感度,在一般情况下,MBG会
根据设置的schema,catalog或tablename去查询数据表,按照下面的流程:
1,如果schema,catalog或tablename中有空格,那么设置的是什么格式,就精确的使用指定的大小写格式去查询;
2,否则,如果数据库的标识符使用大写的,那么MBG自动把表名变成大写再查找;
3,否则,如果数据库的标识符使用小写的,那么MBG自动把表名变成小写再查找;
4,否则,使用指定的大小写格式查询;
另外的,如果在创建表的时候,使用的""把数据库对象规定大小写,就算数据库标识符是使用的大写,在这种情况下也会使用给定的大小写来创建表名;
这个时候,请设置delimitIdentifiers="true"即可保留大小写格式;
可选:
1,schema:数据库的schema;
2,catalog:数据库的catalog;
3,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
4,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
5,enableInsert(默认true):指定是否生成insert语句;
6,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
7,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
8,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
9,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
10,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
11,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
12,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
13,modelType:参考context元素的defaultModelType,相当于覆盖;
14,delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)
15,delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性
注意,table里面很多参数都是对javaModelGenerator,context等元素的默认属性的一个复写;
-->
<table tableName="userinfo" >
<!-- 参考 javaModelGenerator 的 constructorBased属性-->
<property name="constructorBased" value="false"/>
<!-- 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema; -->
<property name="ignoreQualifiersAtRuntime" value="false"/>
<!-- 参考 javaModelGenerator 的 immutable 属性 -->
<property name="immutable" value="false"/>
<!-- 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -->
<property name="modelOnly" value="false"/>
<!-- 参考 javaModelGenerator 的 rootClass 属性
<property name="rootClass" value=""/>
-->
<!-- 参考javaClientGenerator 的 rootInterface 属性
<property name="rootInterface" value=""/>
-->
<!-- 如果设置了runtimeCatalog,那么在生成的SQL中,使用该指定的catalog,而不是table元素上的catalog
<property name="runtimeCatalog" value=""/>
-->
<!-- 如果设置了runtimeSchema,那么在生成的SQL中,使用该指定的schema,而不是table元素上的schema
<property name="runtimeSchema" value=""/>
-->
<!-- 如果设置了runtimeTableName,那么在生成的SQL中,使用该指定的tablename,而不是table元素上的tablename
<property name="runtimeTableName" value=""/>
-->
<!-- 注意,该属性只针对MyBatis3Simple有用;
如果选择的runtime是MyBatis3Simple,那么会生成一个SelectAll方法,如果指定了selectAllOrderByClause,那么会在该SQL中添加指定的这个order条件;
-->
<property name="selectAllOrderByClause" value="age desc,username asc"/>
<!-- 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate -->
<property name="useActualColumnNames" value="false"/>
<!-- generatedKey用于生成生成主键的方法,
如果设置了该元素,MBG会在生成的<insert>元素中生成一条正确的<selectKey>元素,该元素可选
column:主键的列名;
sqlStatement:要生成的selectKey语句,有以下可选项:
Cloudscape:相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()
DB2 :相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()
DB2_MF :相当于selectKey的SQL为:SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1
Derby :相当于selectKey的SQL为:VALUES IDENTITY_VAL_LOCAL()
HSQLDB :相当于selectKey的SQL为:CALL IDENTITY()
Informix :相当于selectKey的SQL为:select dbinfo('sqlca.sqlerrd1') from systables where tabid=1
MySql :相当于selectKey的SQL为:SELECT LAST_INSERT_ID()
SqlServer :相当于selectKey的SQL为:SELECT SCOPE_IDENTITY()
SYBASE :相当于selectKey的SQL为:SELECT @@IDENTITY
JDBC :相当于在生成的insert元素上添加useGeneratedKeys="true"和keyProperty属性
<generatedKey column="" sqlStatement=""/>
-->
<!--
该元素会在根据表中列名计算对象属性名之前先重命名列名,非常适合用于表中的列都有公用的前缀字符串的时候,
比如列名为:CUST_ID,CUST_NAME,CUST_EMAIL,CUST_ADDRESS等;
那么就可以设置searchString为"^CUST_",并使用空白替换,那么生成的Customer对象中的属性名称就不是
custId,custName等,而是先被替换为ID,NAME,EMAIL,然后变成属性:id,name,email;
注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的,
如果使用了columnOverride元素,该属性无效;
<columnRenamingRule searchString="" replaceString=""/>
-->
<!-- 用来修改表中某个列的属性,MBG会使用修改后的列来生成domain的属性;
column:要重新设置的列名;
注意,一个table元素中可以有多个columnOverride元素哈~
-->
<columnOverride column="username">
<!-- 使用property属性来指定列要生成的属性名称 -->
<property name="property" value="userName"/>
<!-- javaType用于指定生成的domain的属性类型,使用类型的全限定名
<property name="javaType" value=""/>
-->
<!-- jdbcType用于指定该列的JDBC类型
<property name="jdbcType" value=""/>
-->
<!-- typeHandler 用于指定该列使用到的TypeHandler,如果要指定,配置类型处理器的全限定名
注意,mybatis中,不会生成到mybatis-config.xml中的typeHandler
只会生成类似:where id = #{id,jdbcType=BIGINT,typeHandler=com._520it.mybatis.MyTypeHandler}的参数描述
<property name="jdbcType" value=""/>
-->
<!-- 参考table元素的delimitAllColumns配置,默认为false
<property name="delimitedColumnName" value=""/>
-->
</columnOverride>
<!-- ignoreColumn设置一个MGB忽略的列,如果设置了改列,那么在生成的domain中,生成的SQL中,都不会有该列出现
column:指定要忽略的列的名字;
delimitedColumnName:参考table元素的delimitAllColumns配置,默认为false
注意,一个table元素中可以有多个ignoreColumn元素
<ignoreColumn column="deptId" delimitedColumnName=""/>
-->
</table>
</context>
</generatorConfiguration>
```
\ No newline at end of file
# 固定前缀org.quartz
# 主要分为scheduler、threadPool、jobStore、plugin等部分
#
#
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
# 实例化ThreadPool时,使用的线程类为SimpleThreadPool
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
# threadCount和threadPriority将以setter的形式注入ThreadPool实例
# 并发个数
org.quartz.threadPool.threadCount = 5
# 优先级
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
org.quartz.jobStore.misfireThreshold = 5000
# 默认存储在内存中
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- 基础设施层与服务层 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入数据源配置 -->
<import resource="datasource-config.xml" />
<import resource="crm-redis-config.xml" />
<!-- 扫描spring组件 -->
<context:annotation-config />
<context:component-scan base-package="com.haomostudio" />
<!--
class: 指定用来创建 sqlSession的工厂
dataSource: 使用的数据源
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="crmDataSource" />
<property name="mapperLocations">
<list>
<value>classpath*:mybatis/**/*Mapper.xml</value>
</list>
</property>
<property name="configLocation" value="classpath:spring/sql-map-config.xml"/>
</bean>
<bean id="crmSqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <!--scope="prototype"-->
<constructor-arg ref="sqlSessionFactory" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.haomostudio.*.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
<!-- JDBC事务管理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="crmDataSource" />
</bean>
<!-- 注解实现事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper"/>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--<bean id="redisServer" class="com.haomostudio.redis.RedisServiceImpl" init-method="init">-->
<!--<property name="redisIp" value="${redis.ip}"></property>-->
<!--<property name="redisPort" value="${redis.port}"></property>-->
<!--</bean>-->
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 数据源配置 -->
<bean id="crmDataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}"
p:username="${jdbc.username}" p:password="${jdbc.password}"
p:validationQuery="select 1" p:testWhileIdle="true"
p:timeBetweenEvictionRunsMillis="3600000"
p:maxActive="300"
p:maxIdle="100"
p:minIdle="20"
p:removeAbandoned="true"
p:removeAbandonedTimeout="180"
p:logAbandoned="true"
p:initialSize="20"
p:minEvictableIdleTimeMillis="1800000"
p:testOnBorrow="true"
/>
<!-- quartz持久化存储 -->
<bean name="quartzScheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="dataSource">
<ref bean="crmDataSource" />
</property>
<property name="applicationContextSchedulerContextKey" value="applicationContext" />
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">CRMscheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<!-- 线程池配置 -->
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">20</prop>
<prop key="org.quartz.threadPool.threadPriority">5</prop>
<prop key="org.quartz.jobStore.misfireThreshold">120000</prop>
<!-- JobStore 配置 -->
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<!-- 集群配置 -->
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.jobStore.clusterCheckinInterval">15000</prop>
<prop key="org.quartz.jobStore.maxMisfiresToHandleAtATime">1</prop>
<!-- 数据表设置 -->
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.jobStore.dataSource">qzDS</prop>
</props>
</property>
</bean>
<!-- 开发,测试,生产,仿真环境数据连接池配置 -->
<beans profile="dev,test,prd,simu">
<!-- 加载配置属性文件 -->
<context:property-placeholder
location="classpath:config/data-access.properties" />
</beans>
<!-- 仿真,生产环境数据源jndi配置-->
<!-- <beans profile="prd,simu">
<context:property-placeholder location="classpath:properties/jndi_connection.properties" />
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>${symbol_dollar}{jndiName}</value>
</property>
</bean>
</beans> -->
</beans>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Copyright 2009-2016 the original author or authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
<!ELEMENT databaseIdProvider (property*)>
<!ATTLIST databaseIdProvider
type CDATA #REQUIRED
>
<!ELEMENT properties (property*)>
<!ATTLIST properties
resource CDATA #IMPLIED
url CDATA #IMPLIED
>
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT settings (setting+)>
<!ELEMENT setting EMPTY>
<!ATTLIST setting
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT typeAliases (typeAlias*,package*)>
<!ELEMENT typeAlias EMPTY>
<!ATTLIST typeAlias
type CDATA #REQUIRED
alias CDATA #IMPLIED
>
<!ELEMENT typeHandlers (typeHandler*,package*)>
<!ELEMENT typeHandler EMPTY>
<!ATTLIST typeHandler
javaType CDATA #IMPLIED
jdbcType CDATA #IMPLIED
handler CDATA #REQUIRED
>
<!ELEMENT objectFactory (property*)>
<!ATTLIST objectFactory
type CDATA #REQUIRED
>
<!ELEMENT objectWrapperFactory (property*)>
<!ATTLIST objectWrapperFactory
type CDATA #REQUIRED
>
<!ELEMENT reflectorFactory EMPTY>
<!ATTLIST reflectorFactory
type CDATA #REQUIRED
>
<!ELEMENT plugins (plugin+)>
<!ELEMENT plugin (property*)>
<!ATTLIST plugin
interceptor CDATA #REQUIRED
>
<!ELEMENT environments (environment+)>
<!ATTLIST environments
default CDATA #REQUIRED
>
<!ELEMENT environment (transactionManager,dataSource)>
<!ATTLIST environment
id CDATA #REQUIRED
>
<!ELEMENT transactionManager (property*)>
<!ATTLIST transactionManager
type CDATA #REQUIRED
>
<!ELEMENT dataSource (property*)>
<!ATTLIST dataSource
type CDATA #REQUIRED
>
<!ELEMENT mappers (mapper*,package*)>
<!ELEMENT mapper EMPTY>
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
class CDATA #IMPLIED
>
<!ELEMENT package EMPTY>
<!ATTLIST package
name CDATA #REQUIRED
>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<bean id="propertyConfigurer" class="com.haomostudio.SpringMVCTemplate.common.PropertyConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
<list>
<value>classpath:filePath.properties</value>
</list>
</property>
</bean>
<!-- 自动扫描且只扫描@Controller -->
<context:component-scan base-package="com.haomostudio" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
<!--<mvc:interceptors>-->
<!--<bean class="com.haomostudio.SpringMVCTemplate.web.servlet.AuthenticationInterceptor"/>-->
<!--</mvc:interceptors>-->
<!-- 定义首页 -->
<!--
<mvc:view-controller path="/" view-name="redirect:/login.jsp" />
-->
<mvc:default-servlet-handler/>
<!-- 定义JSP -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 定义HTML -->
<bean id="htmlResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".html"/>
</bean>
<!-- 支持上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
<bean id="handlerExceptionResolver" class="com.haomostudio.SpringMVCTemplate.servlet.DefaultHandlerExceptionResolver"/>
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="prettyPrint" value="false"/>
<property name="objectMapper">
<!--bean class="com.github.miemiedev.mybatis.paginator.jackson2.PageListJsonMapper" /-->
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss"/>
</bean>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- 支持上传文件 -->
<!-- aop动态代理 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="fileEncoding" value="UTF-8"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
<list>
<value>classpath:config/application.properties</value>
<value>classpath:config/important.properties</value>
</list>
</property>
</bean>
<bean name="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<!-- add your properties here property name="..." value="..."></property-->
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"classpath:spring/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="multipleResultSetsEnabled" value="true" />
<setting name="useColumnLabel" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
<setting name="defaultStatementTimeout" value="25000" />
<setting name="callSettersOnNulls" value="true"/>
</settings>
<!--<plugins>-->
<!--<plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">-->
<!--<property name="dialectClass"-->
<!--value="com.github.miemiedev.mybatis.paginator.dialect.MysqlDialect"/>-->
<!--&lt;!&ndash;value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/>&ndash;&gt;-->
<!--<property name="asyncTotalCount" value="true"/>-->
<!--</plugin>-->
<!--</plugins>-->
</configuration>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>crm-web</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--<listener>-->
<!--<listener-class>com.github.miemiedev.mybatis.paginator.CleanupMybatisPaginatorListener</listener-class>-->
<!--</listener>-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*-config.xml</param-value>
</context-param>
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>production</param-value>
</context-param>
<context-param>
<param-name>quartz:shutdown-on-unload</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:wait-on-shutdown</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:config-file</param-name>
<param-value>scan-quartz.properties</param-value>
</context-param>
<context-param>
<param-name>quartz:start-scheduler-on-load</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:start-on-load</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.quartz.ee.servlet.QuartzInitializerListener</listener-class>
</listener>
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-mvc-config.xml</param-value>
</init-param>
<init-param>
<param-name>detectAllHandlerExceptionResolvers</param-name><!-- 取消其自动注册的异常解析器 -->
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Modeler的Rest服务 -->
<!--<servlet>-->
<!--<servlet-name>ModelRestServlet</servlet-name>-->
<!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:spring/spring-mvc-modeler.xml</param-value>-->
<!--</init-param>-->
<!--<load-on-startup>1</load-on-startup>-->
<!--</servlet>-->
<!--<servlet-mapping>-->
<!--<servlet-name>ModelRestServlet</servlet-name>-->
<!--<url-pattern>/service/*</url-pattern>-->
<!--</servlet-mapping>-->
<!-- Rest接口 -->
<!--<servlet>-->
<!--<servlet-name>RestServlet</servlet-name>-->
<!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:spring/spring-mvc-rest.xml</param-value>-->
<!--</init-param>-->
<!--<load-on-startup>1</load-on-startup>-->
<!--</servlet>-->
<!--<servlet-mapping>-->
<!--<servlet-name>RestServlet</servlet-name>-->
<!--<url-pattern>/rest/*</url-pattern>-->
<!--</servlet-mapping>-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--<filter>-->
<!--<filter-name>openEntityManagerInViewFilter</filter-name>-->
<!--<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>-->
<!--</filter>-->
<!--<filter-mapping>-->
<!--<filter-name>openEntityManagerInViewFilter</filter-name>-->
<!--<url-pattern>/*</url-pattern>-->
<!--</filter-mapping>-->
<!--
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>sitemeshFilter</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemeshFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<!--
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/assets/*</url-pattern>
</servlet-mapping>
-->
<!--<servlet-mapping>-->
<!--<servlet-name>default</servlet-name>-->
<!--<url-pattern>/apply/*</url-pattern>-->
<!--</servlet-mapping>-->
<!--<servlet-mapping>-->
<!--<servlet-name>jsp</servlet-name>-->
<!--<url-pattern>/WEB-INF/views/error/*</url-pattern>-->
<!--</servlet-mapping>-->
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<!--<error-page>-->
<!--<exception-type>java.lang.Throwable</exception-type>-->
<!--<location>/WEB-INF/views/error/500.jsp</location>-->
<!--</error-page>-->
<!--<error-page>-->
<!--<error-code>500</error-code>-->
<!--<location>/WEB-INF/views/error/500.jsp</location>-->
<!--</error-page>-->
<!--<error-page>-->
<!--<error-code>404</error-code>-->
<!--<location>/WEB-INF/views/error/404.jsp</location>-->
<!--</error-page>-->
</web-app>
package com.haomostudio.SpringMVCTemplate.test;
import com.guanpb.poi.excel.ExcelExportUtil;
import com.guanpb.poi.excel.ExcelImportUtil;
import com.haomostudio.SpringMVCTemplate.pojo.User;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by guanpb on 2018/4/10.
*/
public class Test {
public static void main(String[] args) {
/**
* Mock数据,Java对象列表
*/
List<User> userList = new ArrayList();
for (int i = 0; i < 100; i++) {
User user = new User("用户"+i, i, true, (long) (10000+i), new Date());
userList.add(user);
}
String filePath = "/Users/liuranran/Downloads/test-user.xlsx";
/**
* Excel导出:Object 转换为 Excel
*/
ExcelExportUtil.exportToFile(filePath, userList, userList,userList);
/**
* Excel导入:Excel 转换为 Object
*/
List<Object> list = ExcelImportUtil.importExcel(User.class, filePath);
System.out.println(list);
}
}
package com.haomostudio.SpringMVCTemplate.util;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 任务实现
* @author Administrator
*/
public class MyJob implements Job{
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Hello quzrtz "+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(new Date()));
}
}
generatorConfig.xml
\ No newline at end of file
#\u6839\u636E\u4E0D\u540C\u73AF\u5883\u8BBE\u7F6E\u9700\u8981\u8BFB\u53D6\u7684\u914D\u7F6E\u6587\u4EF6
A=application.properties
B=application.local.properties
\ No newline at end of file
#hibernate settings
hibernate.show_sql=false
hibernate.format_sql=false
#dbcp settings
dbcp.initialSize=5
dbcp.maxActive=20
dbcp.maxIdle=10
#versions
system.version=0.0.1-SNAPSHOT
spring.version=${spring.version}
hibernate.version=${hibernate.version}
activiti.version=${activiti.version}
db.type=${db.type}
#\u7F13\u5B58\u56FE\u7247:http://www.kafeitu.me/activiti/2013/02/14/improve-performance-for-reading-diagram.html
export.diagram.path=/tmp/kft-activiti-demo
diagram.http.url=http://localhost:10000
diagram.activityFontName=\u5B8B\u4F53
diagram.labelFontName=\u5B8B\u4F53
#init demo data
create.demo.users=true
create.demo.models=true
# \u7528\u81EA\u52A8\u90E8\u7F72\u4EE3\u66FF\u4E86,\u6240\u4EE5\u5173\u95ED
create.demo.definitions=false
\ No newline at end of file
#mysql database setting
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://10.28.163.192:3306/smartchatNew?useUnicode=true&amp;characterEncoding=UTF-8
#jdbc.username=knowledge
#jdbc.password=knowledge
#connection pool settings
jdbc.pool.maxIdle=10
jdbc.pool.maxActive=50
#jimidb redis settings
jimdb_configId=/redis/cluster/17
jimdb_token=1417623612434
#jimdb_configId_remote=/redis/cluster/17
#jimdb_token_remote=1417623612434
#auth settings
passport.checkLogin.loginUrl=http://passport.jd.com/new/login.aspx
passport.checkLogin.logoutUrl=https://passport.jd.com/uc/login?ltype=logout
#saf settings
saf.zk.url=192.168.150.119:2181,192.168.150.120:2181,192.168.150.121:2181
#import params
maxUploadSize=51200000
maxInMemorySize=5120000
uploadTempDir=/tempDir
#gateway directory
gw.jsf.alias=gateway-cd
\ No newline at end of file
#application configs
#jdbc druid config
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=root
jdbc.password=123456
jdbc.driverClassName=${connection.driver_class}
jdbc.url=${connection.url}
jdbc.username=${connection.username}
jdbc.password=${connection.password}
jndiName = ${symbol_dollar}{jndiName}
\ No newline at end of file
#数据库配置
jimi_username=knowledge
jimi_password=knowledge
#校验登陆的cookie名
passport.checkLogin.cookieName=thor
#passport登陆的校验key
passport.checkLogin.authenticationKey=C196FA243B92A634E69E58421D3A69881E0361DE75D6C663
\ No newline at end of file
#upload_file_path=/Users/haomo/Desktop/
upload_file_path=/root/hm_tomcat/webapps/file/milk/
#pdf_export_path=/Users/liuranran/Tomcat8/
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="3 seconds">
<!-- 通过<property>元素定义的值实际上会被插入logger上下文 -->
<property name="LOG_DIR" value="${logbackLogFilePath}"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
</filter>
</appender>
<appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}error_log/error.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/error_log/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="warnFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}warn_log/warn.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/warn_log/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}info_log/info.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/info_log/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="debugFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}debug_log/debug.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/debug_log/debug.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<logger name="org.springframework" level="debug" additivity="false"/>
<logger name="org.quartz" level="debug" additivity="false"/>
<logger name="org.apache.http.wire" level="debug" additivity="false"/>
<logger name="org.apache.http.headers" level="debug" additivity="false"/>
<logger name="org.apache.http.impl" level="debug" additivity="false"/>
<logger name="org.apache.http.client" level="debug" additivity="false"/>
<root level="debug">
<appender-ref ref="console"/>
<appender-ref ref="errorFile"/>
<appender-ref ref="warnFile"/>
<appender-ref ref="infoFile"/>
<appender-ref ref="debugFile"/>
</root>
</configuration>
\ No newline at end of file
##Mybatis Generator完整配置详解
###整理了一个最完整的Mybatis Generator(简称MBG)的最完整配置文件,以后修改我们自己修改的GeneratorConfig.xml可以参考此文档
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!-- 配置生成器 -->
<generatorConfiguration>
<!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项
resource:配置资源加载地址,使用resource,MBG从classpath开始找,比如com/myproject/generatorConfig.properties
url:配置资源加载地质,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties.
注意,两个属性只能选址一个;
另外,如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使用
<properties resource="" url="" />
-->
<!-- 在MBG工作的时候,需要额外加载的依赖包
location属性指明加载jar/zip包的全路径
<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />
-->
<!--
context:生成一组对象的环境
id:必选,上下文id,用于在生成错误时提示
defaultModelType:指定生成对象的样式
1,conditional:类似hierarchical;
2,flat:所有内容(主键,blob)等全部生成在一个对象中;
3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
targetRuntime:
1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
introspectedColumnImpl:类全限定名,用于扩展MBG
-->
<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >
<!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖
-->
<property name="autoDelimitKeywords" value="false"/>
<!-- 生成的Java文件的编码 -->
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 格式化java代码 -->
<property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<!-- 格式化XML代码 -->
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 必须要有的,使用这个配置链接数据库
@TODO:是否可以扩展
-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin">
<!-- 这里面可以设置property属性,每一个property属性都设置到配置的Driver上 -->
</jdbcConnection>
<!-- java类型处理器
用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl;
注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型;
-->
<javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
<!--
true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型
false:默认,
scale>0;length>18:使用BigDecimal;
scale=0;length[10,18]:使用Long;
scale=0;length[5,9]:使用Integer;
scale=0;length<5:使用Short;
-->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- java模型创建器,是必须要的元素
负责:1,key类(见context的defaultModelType);2,java类;3,查询类
targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;
targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录
-->
<javaModelGenerator targetPackage="com._520it.mybatis.domain" targetProject="src/main/java">
<!-- for MyBatis3/MyBatis3Simple
自动为每一个生成的类创建一个构造方法,构造方法包含了所有的field;而不是使用setter;
-->
<property name="constructorBased" value="false"/>
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
<!-- for MyBatis3 / MyBatis3Simple
是否创建一个不可变的类,如果为true,
那么MBG会创建一个没有setter方法的类,取而代之的是类似constructorBased的类
-->
<property name="immutable" value="false"/>
<!-- 设置一个根对象,
如果设置了这个根对象,那么生成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项
注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新生成这些属性了,包括:
1,属性名相同,类型相同,有相同的getter/setter方法;
-->
<property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/>
<!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成SQL map的XML文件生成器,
注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
targetPackage/targetProject:同javaModelGenerator
-->
<sqlMapGenerator targetPackage="com._520it.mybatis.mapper" targetProject="src/main/resources">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口
targetPackage/targetProject:同javaModelGenerator
type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):
1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;
3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER
-->
<javaClientGenerator targetPackage="com._520it.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
<!-- 可以为所有生成的接口添加一个父接口,但是MBG只负责生成,不负责检查
<property name="rootInterface" value=""/>
-->
</javaClientGenerator>
<!-- 选择一个table来生成相关文件,可以有一个或多个table,必须要有table元素
选择的table会生成一下文件:
1,SQL map文件
2,生成一个主键类;
3,除了BLOB和主键的其他字段的类;
4,包含BLOB的类;
5,一个用户生成动态查询的条件类(selectByExample, deleteByExample),可选;
6,Mapper接口(可选)
tableName(必要):要生成对象的表名;
注意:大小写敏感问题。正常情况下,MBG会自动的去识别数据库标识符的大小写敏感度,在一般情况下,MBG会
根据设置的schema,catalog或tablename去查询数据表,按照下面的流程:
1,如果schema,catalog或tablename中有空格,那么设置的是什么格式,就精确的使用指定的大小写格式去查询;
2,否则,如果数据库的标识符使用大写的,那么MBG自动把表名变成大写再查找;
3,否则,如果数据库的标识符使用小写的,那么MBG自动把表名变成小写再查找;
4,否则,使用指定的大小写格式查询;
另外的,如果在创建表的时候,使用的""把数据库对象规定大小写,就算数据库标识符是使用的大写,在这种情况下也会使用给定的大小写来创建表名;
这个时候,请设置delimitIdentifiers="true"即可保留大小写格式;
可选:
1,schema:数据库的schema;
2,catalog:数据库的catalog;
3,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
4,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
5,enableInsert(默认true):指定是否生成insert语句;
6,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
7,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
8,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
9,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
10,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
11,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
12,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
13,modelType:参考context元素的defaultModelType,相当于覆盖;
14,delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)
15,delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性
注意,table里面很多参数都是对javaModelGenerator,context等元素的默认属性的一个复写;
-->
<table tableName="userinfo" >
<!-- 参考 javaModelGenerator 的 constructorBased属性-->
<property name="constructorBased" value="false"/>
<!-- 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema; -->
<property name="ignoreQualifiersAtRuntime" value="false"/>
<!-- 参考 javaModelGenerator 的 immutable 属性 -->
<property name="immutable" value="false"/>
<!-- 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -->
<property name="modelOnly" value="false"/>
<!-- 参考 javaModelGenerator 的 rootClass 属性
<property name="rootClass" value=""/>
-->
<!-- 参考javaClientGenerator 的 rootInterface 属性
<property name="rootInterface" value=""/>
-->
<!-- 如果设置了runtimeCatalog,那么在生成的SQL中,使用该指定的catalog,而不是table元素上的catalog
<property name="runtimeCatalog" value=""/>
-->
<!-- 如果设置了runtimeSchema,那么在生成的SQL中,使用该指定的schema,而不是table元素上的schema
<property name="runtimeSchema" value=""/>
-->
<!-- 如果设置了runtimeTableName,那么在生成的SQL中,使用该指定的tablename,而不是table元素上的tablename
<property name="runtimeTableName" value=""/>
-->
<!-- 注意,该属性只针对MyBatis3Simple有用;
如果选择的runtime是MyBatis3Simple,那么会生成一个SelectAll方法,如果指定了selectAllOrderByClause,那么会在该SQL中添加指定的这个order条件;
-->
<property name="selectAllOrderByClause" value="age desc,username asc"/>
<!-- 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate -->
<property name="useActualColumnNames" value="false"/>
<!-- generatedKey用于生成生成主键的方法,
如果设置了该元素,MBG会在生成的<insert>元素中生成一条正确的<selectKey>元素,该元素可选
column:主键的列名;
sqlStatement:要生成的selectKey语句,有以下可选项:
Cloudscape:相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()
DB2 :相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()
DB2_MF :相当于selectKey的SQL为:SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1
Derby :相当于selectKey的SQL为:VALUES IDENTITY_VAL_LOCAL()
HSQLDB :相当于selectKey的SQL为:CALL IDENTITY()
Informix :相当于selectKey的SQL为:select dbinfo('sqlca.sqlerrd1') from systables where tabid=1
MySql :相当于selectKey的SQL为:SELECT LAST_INSERT_ID()
SqlServer :相当于selectKey的SQL为:SELECT SCOPE_IDENTITY()
SYBASE :相当于selectKey的SQL为:SELECT @@IDENTITY
JDBC :相当于在生成的insert元素上添加useGeneratedKeys="true"和keyProperty属性
<generatedKey column="" sqlStatement=""/>
-->
<!--
该元素会在根据表中列名计算对象属性名之前先重命名列名,非常适合用于表中的列都有公用的前缀字符串的时候,
比如列名为:CUST_ID,CUST_NAME,CUST_EMAIL,CUST_ADDRESS等;
那么就可以设置searchString为"^CUST_",并使用空白替换,那么生成的Customer对象中的属性名称就不是
custId,custName等,而是先被替换为ID,NAME,EMAIL,然后变成属性:id,name,email;
注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的,
如果使用了columnOverride元素,该属性无效;
<columnRenamingRule searchString="" replaceString=""/>
-->
<!-- 用来修改表中某个列的属性,MBG会使用修改后的列来生成domain的属性;
column:要重新设置的列名;
注意,一个table元素中可以有多个columnOverride元素哈~
-->
<columnOverride column="username">
<!-- 使用property属性来指定列要生成的属性名称 -->
<property name="property" value="userName"/>
<!-- javaType用于指定生成的domain的属性类型,使用类型的全限定名
<property name="javaType" value=""/>
-->
<!-- jdbcType用于指定该列的JDBC类型
<property name="jdbcType" value=""/>
-->
<!-- typeHandler 用于指定该列使用到的TypeHandler,如果要指定,配置类型处理器的全限定名
注意,mybatis中,不会生成到mybatis-config.xml中的typeHandler
只会生成类似:where id = #{id,jdbcType=BIGINT,typeHandler=com._520it.mybatis.MyTypeHandler}的参数描述
<property name="jdbcType" value=""/>
-->
<!-- 参考table元素的delimitAllColumns配置,默认为false
<property name="delimitedColumnName" value=""/>
-->
</columnOverride>
<!-- ignoreColumn设置一个MGB忽略的列,如果设置了改列,那么在生成的domain中,生成的SQL中,都不会有该列出现
column:指定要忽略的列的名字;
delimitedColumnName:参考table元素的delimitAllColumns配置,默认为false
注意,一个table元素中可以有多个ignoreColumn元素
<ignoreColumn column="deptId" delimitedColumnName=""/>
-->
</table>
</context>
</generatorConfiguration>
```
\ No newline at end of file
# 固定前缀org.quartz
# 主要分为scheduler、threadPool、jobStore、plugin等部分
#
#
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
# 实例化ThreadPool时,使用的线程类为SimpleThreadPool
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
# threadCount和threadPriority将以setter的形式注入ThreadPool实例
# 并发个数
org.quartz.threadPool.threadCount = 5
# 优先级
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
org.quartz.jobStore.misfireThreshold = 5000
# 默认存储在内存中
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- 基础设施层与服务层 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入数据源配置 -->
<import resource="datasource-config.xml" />
<import resource="crm-redis-config.xml" />
<!-- 扫描spring组件 -->
<context:annotation-config />
<context:component-scan base-package="com.haomostudio" />
<!--
class: 指定用来创建 sqlSession的工厂
dataSource: 使用的数据源
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="crmDataSource" />
<property name="mapperLocations">
<list>
<value>classpath*:mybatis/**/*Mapper.xml</value>
</list>
</property>
<property name="configLocation" value="classpath:spring/sql-map-config.xml"/>
</bean>
<bean id="crmSqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <!--scope="prototype"-->
<constructor-arg ref="sqlSessionFactory" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.haomostudio.*.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
<!-- JDBC事务管理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="crmDataSource" />
</bean>
<!-- 注解实现事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper"/>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--<bean id="redisServer" class="com.haomostudio.redis.RedisServiceImpl" init-method="init">-->
<!--<property name="redisIp" value="${redis.ip}"></property>-->
<!--<property name="redisPort" value="${redis.port}"></property>-->
<!--</bean>-->
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 数据源配置 -->
<bean id="crmDataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://haomo-tech.com:3309/milk?useUnicode=true&amp;characterEncoding=UTF8"
p:username="root" p:password="root"
p:validationQuery="select 1" p:testWhileIdle="true"
p:timeBetweenEvictionRunsMillis="3600000"
p:maxActive="300"
p:maxIdle="100"
p:minIdle="20"
p:removeAbandoned="true"
p:removeAbandonedTimeout="180"
p:logAbandoned="true"
p:initialSize="20"
p:minEvictableIdleTimeMillis="1800000"
p:testOnBorrow="true"
/>
<!-- quartz持久化存储 -->
<bean name="quartzScheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="dataSource">
<ref bean="crmDataSource" />
</property>
<property name="applicationContextSchedulerContextKey" value="applicationContext" />
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">CRMscheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<!-- 线程池配置 -->
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">20</prop>
<prop key="org.quartz.threadPool.threadPriority">5</prop>
<prop key="org.quartz.jobStore.misfireThreshold">120000</prop>
<!-- JobStore 配置 -->
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<!-- 集群配置 -->
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.jobStore.clusterCheckinInterval">15000</prop>
<prop key="org.quartz.jobStore.maxMisfiresToHandleAtATime">1</prop>
<!-- 数据表设置 -->
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.jobStore.dataSource">qzDS</prop>
</props>
</property>
</bean>
<!-- 开发,测试,生产,仿真环境数据连接池配置 -->
<beans profile="dev,test,prd,simu">
<!-- 加载配置属性文件 -->
<context:property-placeholder
location="classpath:config/data-access.properties" />
</beans>
<!-- 仿真,生产环境数据源jndi配置-->
<!-- <beans profile="prd,simu">
<context:property-placeholder location="classpath:properties/jndi_connection.properties" />
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>${symbol_dollar}{jndiName}</value>
</property>
</bean>
</beans> -->
</beans>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Copyright 2009-2016 the original author or authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
<!ELEMENT databaseIdProvider (property*)>
<!ATTLIST databaseIdProvider
type CDATA #REQUIRED
>
<!ELEMENT properties (property*)>
<!ATTLIST properties
resource CDATA #IMPLIED
url CDATA #IMPLIED
>
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT settings (setting+)>
<!ELEMENT setting EMPTY>
<!ATTLIST setting
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT typeAliases (typeAlias*,package*)>
<!ELEMENT typeAlias EMPTY>
<!ATTLIST typeAlias
type CDATA #REQUIRED
alias CDATA #IMPLIED
>
<!ELEMENT typeHandlers (typeHandler*,package*)>
<!ELEMENT typeHandler EMPTY>
<!ATTLIST typeHandler
javaType CDATA #IMPLIED
jdbcType CDATA #IMPLIED
handler CDATA #REQUIRED
>
<!ELEMENT objectFactory (property*)>
<!ATTLIST objectFactory
type CDATA #REQUIRED
>
<!ELEMENT objectWrapperFactory (property*)>
<!ATTLIST objectWrapperFactory
type CDATA #REQUIRED
>
<!ELEMENT reflectorFactory EMPTY>
<!ATTLIST reflectorFactory
type CDATA #REQUIRED
>
<!ELEMENT plugins (plugin+)>
<!ELEMENT plugin (property*)>
<!ATTLIST plugin
interceptor CDATA #REQUIRED
>
<!ELEMENT environments (environment+)>
<!ATTLIST environments
default CDATA #REQUIRED
>
<!ELEMENT environment (transactionManager,dataSource)>
<!ATTLIST environment
id CDATA #REQUIRED
>
<!ELEMENT transactionManager (property*)>
<!ATTLIST transactionManager
type CDATA #REQUIRED
>
<!ELEMENT dataSource (property*)>
<!ATTLIST dataSource
type CDATA #REQUIRED
>
<!ELEMENT mappers (mapper*,package*)>
<!ELEMENT mapper EMPTY>
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
class CDATA #IMPLIED
>
<!ELEMENT package EMPTY>
<!ATTLIST package
name CDATA #REQUIRED
>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<bean id="propertyConfigurer" class="com.haomostudio.SpringMVCTemplate.common.PropertyConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
<list>
<value>classpath:filePath.properties</value>
</list>
</property>
</bean>
<!-- 自动扫描且只扫描@Controller -->
<context:component-scan base-package="com.haomostudio" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
<!--<mvc:interceptors>-->
<!--<bean class="com.haomostudio.SpringMVCTemplate.web.servlet.AuthenticationInterceptor"/>-->
<!--</mvc:interceptors>-->
<!-- 定义首页 -->
<!--
<mvc:view-controller path="/" view-name="redirect:/login.jsp" />
-->
<mvc:default-servlet-handler/>
<!-- 定义JSP -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 定义HTML -->
<bean id="htmlResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".html"/>
</bean>
<!-- 支持上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
<bean id="handlerExceptionResolver" class="com.haomostudio.SpringMVCTemplate.servlet.DefaultHandlerExceptionResolver"/>
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="prettyPrint" value="false"/>
<property name="objectMapper">
<!--bean class="com.github.miemiedev.mybatis.paginator.jackson2.PageListJsonMapper" /-->
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss"/>
</bean>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- 支持上传文件 -->
<!-- aop动态代理 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="fileEncoding" value="UTF-8"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
<list>
<value>classpath:config/application.properties</value>
<value>classpath:config/important.properties</value>
</list>
</property>
</bean>
<bean name="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<!-- add your properties here property name="..." value="..."></property-->
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"classpath:spring/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="multipleResultSetsEnabled" value="true" />
<setting name="useColumnLabel" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
<setting name="defaultStatementTimeout" value="25000" />
<setting name="callSettersOnNulls" value="true"/>
</settings>
<!--<plugins>-->
<!--<plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">-->
<!--<property name="dialectClass"-->
<!--value="com.github.miemiedev.mybatis.paginator.dialect.MysqlDialect"/>-->
<!--&lt;!&ndash;value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/>&ndash;&gt;-->
<!--<property name="asyncTotalCount" value="true"/>-->
<!--</plugin>-->
<!--</plugins>-->
</configuration>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>crm-web</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--<listener>-->
<!--<listener-class>com.github.miemiedev.mybatis.paginator.CleanupMybatisPaginatorListener</listener-class>-->
<!--</listener>-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*-config.xml</param-value>
</context-param>
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>production</param-value>
</context-param>
<context-param>
<param-name>quartz:shutdown-on-unload</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:wait-on-shutdown</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:config-file</param-name>
<param-value>scan-quartz.properties</param-value>
</context-param>
<context-param>
<param-name>quartz:start-scheduler-on-load</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:start-on-load</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.quartz.ee.servlet.QuartzInitializerListener</listener-class>
</listener>
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-mvc-config.xml</param-value>
</init-param>
<init-param>
<param-name>detectAllHandlerExceptionResolvers</param-name><!-- 取消其自动注册的异常解析器 -->
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Modeler的Rest服务 -->
<!--<servlet>-->
<!--<servlet-name>ModelRestServlet</servlet-name>-->
<!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:spring/spring-mvc-modeler.xml</param-value>-->
<!--</init-param>-->
<!--<load-on-startup>1</load-on-startup>-->
<!--</servlet>-->
<!--<servlet-mapping>-->
<!--<servlet-name>ModelRestServlet</servlet-name>-->
<!--<url-pattern>/service/*</url-pattern>-->
<!--</servlet-mapping>-->
<!-- Rest接口 -->
<!--<servlet>-->
<!--<servlet-name>RestServlet</servlet-name>-->
<!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:spring/spring-mvc-rest.xml</param-value>-->
<!--</init-param>-->
<!--<load-on-startup>1</load-on-startup>-->
<!--</servlet>-->
<!--<servlet-mapping>-->
<!--<servlet-name>RestServlet</servlet-name>-->
<!--<url-pattern>/rest/*</url-pattern>-->
<!--</servlet-mapping>-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--<filter>-->
<!--<filter-name>openEntityManagerInViewFilter</filter-name>-->
<!--<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>-->
<!--</filter>-->
<!--<filter-mapping>-->
<!--<filter-name>openEntityManagerInViewFilter</filter-name>-->
<!--<url-pattern>/*</url-pattern>-->
<!--</filter-mapping>-->
<!--
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>sitemeshFilter</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemeshFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<!--
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/assets/*</url-pattern>
</servlet-mapping>
-->
<!--<servlet-mapping>-->
<!--<servlet-name>default</servlet-name>-->
<!--<url-pattern>/apply/*</url-pattern>-->
<!--</servlet-mapping>-->
<!--<servlet-mapping>-->
<!--<servlet-name>jsp</servlet-name>-->
<!--<url-pattern>/WEB-INF/views/error/*</url-pattern>-->
<!--</servlet-mapping>-->
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<!--<error-page>-->
<!--<exception-type>java.lang.Throwable</exception-type>-->
<!--<location>/WEB-INF/views/error/500.jsp</location>-->
<!--</error-page>-->
<!--<error-page>-->
<!--<error-code>500</error-code>-->
<!--<location>/WEB-INF/views/error/500.jsp</location>-->
<!--</error-page>-->
<!--<error-page>-->
<!--<error-code>404</error-code>-->
<!--<location>/WEB-INF/views/error/404.jsp</location>-->
<!--</error-page>-->
</web-app>
Manifest-Version: 1.0
Built-By: xzj
Created-By: IntelliJ IDEA
Build-Jdk: 1.8.0_121
generatorConfig.xml
\ No newline at end of file
#\u6839\u636E\u4E0D\u540C\u73AF\u5883\u8BBE\u7F6E\u9700\u8981\u8BFB\u53D6\u7684\u914D\u7F6E\u6587\u4EF6
A=application.properties
B=application.local.properties
\ No newline at end of file
#hibernate settings
hibernate.show_sql=false
hibernate.format_sql=false
#dbcp settings
dbcp.initialSize=5
dbcp.maxActive=20
dbcp.maxIdle=10
#versions
system.version=0.0.1-SNAPSHOT
spring.version=${spring.version}
hibernate.version=${hibernate.version}
activiti.version=${activiti.version}
db.type=${db.type}
#\u7F13\u5B58\u56FE\u7247:http://www.kafeitu.me/activiti/2013/02/14/improve-performance-for-reading-diagram.html
export.diagram.path=/tmp/kft-activiti-demo
diagram.http.url=http://localhost:10000
diagram.activityFontName=\u5B8B\u4F53
diagram.labelFontName=\u5B8B\u4F53
#init demo data
create.demo.users=true
create.demo.models=true
# \u7528\u81EA\u52A8\u90E8\u7F72\u4EE3\u66FF\u4E86,\u6240\u4EE5\u5173\u95ED
create.demo.definitions=false
\ No newline at end of file
#mysql database setting
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://10.28.163.192:3306/smartchatNew?useUnicode=true&amp;characterEncoding=UTF-8
#jdbc.username=knowledge
#jdbc.password=knowledge
#connection pool settings
jdbc.pool.maxIdle=10
jdbc.pool.maxActive=50
#jimidb redis settings
jimdb_configId=/redis/cluster/17
jimdb_token=1417623612434
#jimdb_configId_remote=/redis/cluster/17
#jimdb_token_remote=1417623612434
#auth settings
passport.checkLogin.loginUrl=http://passport.jd.com/new/login.aspx
passport.checkLogin.logoutUrl=https://passport.jd.com/uc/login?ltype=logout
#saf settings
saf.zk.url=192.168.150.119:2181,192.168.150.120:2181,192.168.150.121:2181
#import params
maxUploadSize=51200000
maxInMemorySize=5120000
uploadTempDir=/tempDir
#gateway directory
gw.jsf.alias=gateway-cd
\ No newline at end of file
#application configs
#jdbc druid config
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=root
jdbc.password=123456
jdbc.driverClassName=${connection.driver_class}
jdbc.url=${connection.url}
jdbc.username=${connection.username}
jdbc.password=${connection.password}
jndiName = ${symbol_dollar}{jndiName}
\ No newline at end of file
#数据库配置
jimi_username=knowledge
jimi_password=knowledge
#校验登陆的cookie名
passport.checkLogin.cookieName=thor
#passport登陆的校验key
passport.checkLogin.authenticationKey=C196FA243B92A634E69E58421D3A69881E0361DE75D6C663
\ No newline at end of file
#upload_file_path=/Users/haomo/Desktop/
upload_file_path=/root/hm_tomcat/webapps/file/milk/
#pdf_export_path=/Users/liuranran/Tomcat8/
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="3 seconds">
<!-- 通过<property>元素定义的值实际上会被插入logger上下文 -->
<property name="LOG_DIR" value="${logbackLogFilePath}"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
</filter>
</appender>
<appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}error_log/error.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/error_log/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="warnFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}warn_log/warn.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/warn_log/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}info_log/info.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/info_log/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<appender name="debugFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_DIR}debug_log/debug.log</file>
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} %L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/debug_log/debug.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>180</maxHistory>
</rollingPolicy>
</appender>
<logger name="org.springframework" level="debug" additivity="false"/>
<logger name="org.quartz" level="debug" additivity="false"/>
<logger name="org.apache.http.wire" level="debug" additivity="false"/>
<logger name="org.apache.http.headers" level="debug" additivity="false"/>
<logger name="org.apache.http.impl" level="debug" additivity="false"/>
<logger name="org.apache.http.client" level="debug" additivity="false"/>
<root level="debug">
<appender-ref ref="console"/>
<appender-ref ref="errorFile"/>
<appender-ref ref="warnFile"/>
<appender-ref ref="infoFile"/>
<appender-ref ref="debugFile"/>
</root>
</configuration>
\ No newline at end of file
##Mybatis Generator完整配置详解
###整理了一个最完整的Mybatis Generator(简称MBG)的最完整配置文件,以后修改我们自己修改的GeneratorConfig.xml可以参考此文档
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!-- 配置生成器 -->
<generatorConfiguration>
<!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项
resource:配置资源加载地址,使用resource,MBG从classpath开始找,比如com/myproject/generatorConfig.properties
url:配置资源加载地质,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties.
注意,两个属性只能选址一个;
另外,如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使用
<properties resource="" url="" />
-->
<!-- 在MBG工作的时候,需要额外加载的依赖包
location属性指明加载jar/zip包的全路径
<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />
-->
<!--
context:生成一组对象的环境
id:必选,上下文id,用于在生成错误时提示
defaultModelType:指定生成对象的样式
1,conditional:类似hierarchical;
2,flat:所有内容(主键,blob)等全部生成在一个对象中;
3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
targetRuntime:
1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
introspectedColumnImpl:类全限定名,用于扩展MBG
-->
<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >
<!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖
-->
<property name="autoDelimitKeywords" value="false"/>
<!-- 生成的Java文件的编码 -->
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 格式化java代码 -->
<property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<!-- 格式化XML代码 -->
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 必须要有的,使用这个配置链接数据库
@TODO:是否可以扩展
-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin">
<!-- 这里面可以设置property属性,每一个property属性都设置到配置的Driver上 -->
</jdbcConnection>
<!-- java类型处理器
用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl;
注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型;
-->
<javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
<!--
true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型
false:默认,
scale>0;length>18:使用BigDecimal;
scale=0;length[10,18]:使用Long;
scale=0;length[5,9]:使用Integer;
scale=0;length<5:使用Short;
-->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- java模型创建器,是必须要的元素
负责:1,key类(见context的defaultModelType);2,java类;3,查询类
targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;
targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录
-->
<javaModelGenerator targetPackage="com._520it.mybatis.domain" targetProject="src/main/java">
<!-- for MyBatis3/MyBatis3Simple
自动为每一个生成的类创建一个构造方法,构造方法包含了所有的field;而不是使用setter;
-->
<property name="constructorBased" value="false"/>
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
<!-- for MyBatis3 / MyBatis3Simple
是否创建一个不可变的类,如果为true,
那么MBG会创建一个没有setter方法的类,取而代之的是类似constructorBased的类
-->
<property name="immutable" value="false"/>
<!-- 设置一个根对象,
如果设置了这个根对象,那么生成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项
注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新生成这些属性了,包括:
1,属性名相同,类型相同,有相同的getter/setter方法;
-->
<property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/>
<!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成SQL map的XML文件生成器,
注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
targetPackage/targetProject:同javaModelGenerator
-->
<sqlMapGenerator targetPackage="com._520it.mybatis.mapper" targetProject="src/main/resources">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口
targetPackage/targetProject:同javaModelGenerator
type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):
1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;
3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER
-->
<javaClientGenerator targetPackage="com._520it.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true"/>
<!-- 可以为所有生成的接口添加一个父接口,但是MBG只负责生成,不负责检查
<property name="rootInterface" value=""/>
-->
</javaClientGenerator>
<!-- 选择一个table来生成相关文件,可以有一个或多个table,必须要有table元素
选择的table会生成一下文件:
1,SQL map文件
2,生成一个主键类;
3,除了BLOB和主键的其他字段的类;
4,包含BLOB的类;
5,一个用户生成动态查询的条件类(selectByExample, deleteByExample),可选;
6,Mapper接口(可选)
tableName(必要):要生成对象的表名;
注意:大小写敏感问题。正常情况下,MBG会自动的去识别数据库标识符的大小写敏感度,在一般情况下,MBG会
根据设置的schema,catalog或tablename去查询数据表,按照下面的流程:
1,如果schema,catalog或tablename中有空格,那么设置的是什么格式,就精确的使用指定的大小写格式去查询;
2,否则,如果数据库的标识符使用大写的,那么MBG自动把表名变成大写再查找;
3,否则,如果数据库的标识符使用小写的,那么MBG自动把表名变成小写再查找;
4,否则,使用指定的大小写格式查询;
另外的,如果在创建表的时候,使用的""把数据库对象规定大小写,就算数据库标识符是使用的大写,在这种情况下也会使用给定的大小写来创建表名;
这个时候,请设置delimitIdentifiers="true"即可保留大小写格式;
可选:
1,schema:数据库的schema;
2,catalog:数据库的catalog;
3,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
4,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
5,enableInsert(默认true):指定是否生成insert语句;
6,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
7,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
8,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
9,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
10,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
11,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
12,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
13,modelType:参考context元素的defaultModelType,相当于覆盖;
14,delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)
15,delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性
注意,table里面很多参数都是对javaModelGenerator,context等元素的默认属性的一个复写;
-->
<table tableName="userinfo" >
<!-- 参考 javaModelGenerator 的 constructorBased属性-->
<property name="constructorBased" value="false"/>
<!-- 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema; -->
<property name="ignoreQualifiersAtRuntime" value="false"/>
<!-- 参考 javaModelGenerator 的 immutable 属性 -->
<property name="immutable" value="false"/>
<!-- 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -->
<property name="modelOnly" value="false"/>
<!-- 参考 javaModelGenerator 的 rootClass 属性
<property name="rootClass" value=""/>
-->
<!-- 参考javaClientGenerator 的 rootInterface 属性
<property name="rootInterface" value=""/>
-->
<!-- 如果设置了runtimeCatalog,那么在生成的SQL中,使用该指定的catalog,而不是table元素上的catalog
<property name="runtimeCatalog" value=""/>
-->
<!-- 如果设置了runtimeSchema,那么在生成的SQL中,使用该指定的schema,而不是table元素上的schema
<property name="runtimeSchema" value=""/>
-->
<!-- 如果设置了runtimeTableName,那么在生成的SQL中,使用该指定的tablename,而不是table元素上的tablename
<property name="runtimeTableName" value=""/>
-->
<!-- 注意,该属性只针对MyBatis3Simple有用;
如果选择的runtime是MyBatis3Simple,那么会生成一个SelectAll方法,如果指定了selectAllOrderByClause,那么会在该SQL中添加指定的这个order条件;
-->
<property name="selectAllOrderByClause" value="age desc,username asc"/>
<!-- 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate -->
<property name="useActualColumnNames" value="false"/>
<!-- generatedKey用于生成生成主键的方法,
如果设置了该元素,MBG会在生成的<insert>元素中生成一条正确的<selectKey>元素,该元素可选
column:主键的列名;
sqlStatement:要生成的selectKey语句,有以下可选项:
Cloudscape:相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()
DB2 :相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()
DB2_MF :相当于selectKey的SQL为:SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1
Derby :相当于selectKey的SQL为:VALUES IDENTITY_VAL_LOCAL()
HSQLDB :相当于selectKey的SQL为:CALL IDENTITY()
Informix :相当于selectKey的SQL为:select dbinfo('sqlca.sqlerrd1') from systables where tabid=1
MySql :相当于selectKey的SQL为:SELECT LAST_INSERT_ID()
SqlServer :相当于selectKey的SQL为:SELECT SCOPE_IDENTITY()
SYBASE :相当于selectKey的SQL为:SELECT @@IDENTITY
JDBC :相当于在生成的insert元素上添加useGeneratedKeys="true"和keyProperty属性
<generatedKey column="" sqlStatement=""/>
-->
<!--
该元素会在根据表中列名计算对象属性名之前先重命名列名,非常适合用于表中的列都有公用的前缀字符串的时候,
比如列名为:CUST_ID,CUST_NAME,CUST_EMAIL,CUST_ADDRESS等;
那么就可以设置searchString为"^CUST_",并使用空白替换,那么生成的Customer对象中的属性名称就不是
custId,custName等,而是先被替换为ID,NAME,EMAIL,然后变成属性:id,name,email;
注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的,
如果使用了columnOverride元素,该属性无效;
<columnRenamingRule searchString="" replaceString=""/>
-->
<!-- 用来修改表中某个列的属性,MBG会使用修改后的列来生成domain的属性;
column:要重新设置的列名;
注意,一个table元素中可以有多个columnOverride元素哈~
-->
<columnOverride column="username">
<!-- 使用property属性来指定列要生成的属性名称 -->
<property name="property" value="userName"/>
<!-- javaType用于指定生成的domain的属性类型,使用类型的全限定名
<property name="javaType" value=""/>
-->
<!-- jdbcType用于指定该列的JDBC类型
<property name="jdbcType" value=""/>
-->
<!-- typeHandler 用于指定该列使用到的TypeHandler,如果要指定,配置类型处理器的全限定名
注意,mybatis中,不会生成到mybatis-config.xml中的typeHandler
只会生成类似:where id = #{id,jdbcType=BIGINT,typeHandler=com._520it.mybatis.MyTypeHandler}的参数描述
<property name="jdbcType" value=""/>
-->
<!-- 参考table元素的delimitAllColumns配置,默认为false
<property name="delimitedColumnName" value=""/>
-->
</columnOverride>
<!-- ignoreColumn设置一个MGB忽略的列,如果设置了改列,那么在生成的domain中,生成的SQL中,都不会有该列出现
column:指定要忽略的列的名字;
delimitedColumnName:参考table元素的delimitAllColumns配置,默认为false
注意,一个table元素中可以有多个ignoreColumn元素
<ignoreColumn column="deptId" delimitedColumnName=""/>
-->
</table>
</context>
</generatorConfiguration>
```
\ No newline at end of file
# 固定前缀org.quartz
# 主要分为scheduler、threadPool、jobStore、plugin等部分
#
#
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
# 实例化ThreadPool时,使用的线程类为SimpleThreadPool
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
# threadCount和threadPriority将以setter的形式注入ThreadPool实例
# 并发个数
org.quartz.threadPool.threadCount = 5
# 优先级
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
org.quartz.jobStore.misfireThreshold = 5000
# 默认存储在内存中
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- 基础设施层与服务层 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入数据源配置 -->
<import resource="datasource-config.xml" />
<import resource="crm-redis-config.xml" />
<!-- 扫描spring组件 -->
<context:annotation-config />
<context:component-scan base-package="com.haomostudio" />
<!--
class: 指定用来创建 sqlSession的工厂
dataSource: 使用的数据源
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="crmDataSource" />
<property name="mapperLocations">
<list>
<value>classpath*:mybatis/**/*Mapper.xml</value>
</list>
</property>
<property name="configLocation" value="classpath:spring/sql-map-config.xml"/>
</bean>
<bean id="crmSqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <!--scope="prototype"-->
<constructor-arg ref="sqlSessionFactory" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.haomostudio.*.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
<!-- JDBC事务管理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="crmDataSource" />
</bean>
<!-- 注解实现事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper"/>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--<bean id="redisServer" class="com.haomostudio.redis.RedisServiceImpl" init-method="init">-->
<!--<property name="redisIp" value="${redis.ip}"></property>-->
<!--<property name="redisPort" value="${redis.port}"></property>-->
<!--</bean>-->
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 数据源配置 -->
<bean id="crmDataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://haomo-tech.com:3309/milk?useUnicode=true&amp;characterEncoding=UTF8"
p:username="root" p:password="root"
p:validationQuery="select 1" p:testWhileIdle="true"
p:timeBetweenEvictionRunsMillis="3600000"
p:maxActive="300"
p:maxIdle="100"
p:minIdle="20"
p:removeAbandoned="true"
p:removeAbandonedTimeout="180"
p:logAbandoned="true"
p:initialSize="20"
p:minEvictableIdleTimeMillis="1800000"
p:testOnBorrow="true"
/>
<!-- quartz持久化存储 -->
<bean name="quartzScheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="dataSource">
<ref bean="crmDataSource" />
</property>
<property name="applicationContextSchedulerContextKey" value="applicationContext" />
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">CRMscheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<!-- 线程池配置 -->
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">20</prop>
<prop key="org.quartz.threadPool.threadPriority">5</prop>
<prop key="org.quartz.jobStore.misfireThreshold">120000</prop>
<!-- JobStore 配置 -->
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<!-- 集群配置 -->
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.jobStore.clusterCheckinInterval">15000</prop>
<prop key="org.quartz.jobStore.maxMisfiresToHandleAtATime">1</prop>
<!-- 数据表设置 -->
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.jobStore.dataSource">qzDS</prop>
</props>
</property>
</bean>
<!-- 开发,测试,生产,仿真环境数据连接池配置 -->
<beans profile="dev,test,prd,simu">
<!-- 加载配置属性文件 -->
<context:property-placeholder
location="classpath:config/data-access.properties" />
</beans>
<!-- 仿真,生产环境数据源jndi配置-->
<!-- <beans profile="prd,simu">
<context:property-placeholder location="classpath:properties/jndi_connection.properties" />
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>${symbol_dollar}{jndiName}</value>
</property>
</bean>
</beans> -->
</beans>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Copyright 2009-2016 the original author or authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>
<!ELEMENT databaseIdProvider (property*)>
<!ATTLIST databaseIdProvider
type CDATA #REQUIRED
>
<!ELEMENT properties (property*)>
<!ATTLIST properties
resource CDATA #IMPLIED
url CDATA #IMPLIED
>
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT settings (setting+)>
<!ELEMENT setting EMPTY>
<!ATTLIST setting
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT typeAliases (typeAlias*,package*)>
<!ELEMENT typeAlias EMPTY>
<!ATTLIST typeAlias
type CDATA #REQUIRED
alias CDATA #IMPLIED
>
<!ELEMENT typeHandlers (typeHandler*,package*)>
<!ELEMENT typeHandler EMPTY>
<!ATTLIST typeHandler
javaType CDATA #IMPLIED
jdbcType CDATA #IMPLIED
handler CDATA #REQUIRED
>
<!ELEMENT objectFactory (property*)>
<!ATTLIST objectFactory
type CDATA #REQUIRED
>
<!ELEMENT objectWrapperFactory (property*)>
<!ATTLIST objectWrapperFactory
type CDATA #REQUIRED
>
<!ELEMENT reflectorFactory EMPTY>
<!ATTLIST reflectorFactory
type CDATA #REQUIRED
>
<!ELEMENT plugins (plugin+)>
<!ELEMENT plugin (property*)>
<!ATTLIST plugin
interceptor CDATA #REQUIRED
>
<!ELEMENT environments (environment+)>
<!ATTLIST environments
default CDATA #REQUIRED
>
<!ELEMENT environment (transactionManager,dataSource)>
<!ATTLIST environment
id CDATA #REQUIRED
>
<!ELEMENT transactionManager (property*)>
<!ATTLIST transactionManager
type CDATA #REQUIRED
>
<!ELEMENT dataSource (property*)>
<!ATTLIST dataSource
type CDATA #REQUIRED
>
<!ELEMENT mappers (mapper*,package*)>
<!ELEMENT mapper EMPTY>
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
class CDATA #IMPLIED
>
<!ELEMENT package EMPTY>
<!ATTLIST package
name CDATA #REQUIRED
>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<bean id="propertyConfigurer" class="com.haomostudio.SpringMVCTemplate.common.PropertyConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
<list>
<value>classpath:filePath.properties</value>
</list>
</property>
</bean>
<!-- 自动扫描且只扫描@Controller -->
<context:component-scan base-package="com.haomostudio" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
<!--<mvc:interceptors>-->
<!--<bean class="com.haomostudio.SpringMVCTemplate.web.servlet.AuthenticationInterceptor"/>-->
<!--</mvc:interceptors>-->
<!-- 定义首页 -->
<!--
<mvc:view-controller path="/" view-name="redirect:/login.jsp" />
-->
<mvc:default-servlet-handler/>
<!-- 定义JSP -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 定义HTML -->
<bean id="htmlResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".html"/>
</bean>
<!-- 支持上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
<bean id="handlerExceptionResolver" class="com.haomostudio.SpringMVCTemplate.servlet.DefaultHandlerExceptionResolver"/>
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="prettyPrint" value="false"/>
<property name="objectMapper">
<!--bean class="com.github.miemiedev.mybatis.paginator.jackson2.PageListJsonMapper" /-->
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss"/>
</bean>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- 支持上传文件 -->
<!-- aop动态代理 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="fileEncoding" value="UTF-8"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
<list>
<value>classpath:config/application.properties</value>
<value>classpath:config/important.properties</value>
</list>
</property>
</bean>
<bean name="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<!-- add your properties here property name="..." value="..."></property-->
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"classpath:spring/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="multipleResultSetsEnabled" value="true" />
<setting name="useColumnLabel" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
<setting name="defaultStatementTimeout" value="25000" />
<setting name="callSettersOnNulls" value="true"/>
</settings>
<!--<plugins>-->
<!--<plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">-->
<!--<property name="dialectClass"-->
<!--value="com.github.miemiedev.mybatis.paginator.dialect.MysqlDialect"/>-->
<!--&lt;!&ndash;value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/>&ndash;&gt;-->
<!--<property name="asyncTotalCount" value="true"/>-->
<!--</plugin>-->
<!--</plugins>-->
</configuration>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>crm-web</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--<listener>-->
<!--<listener-class>com.github.miemiedev.mybatis.paginator.CleanupMybatisPaginatorListener</listener-class>-->
<!--</listener>-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*-config.xml</param-value>
</context-param>
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>production</param-value>
</context-param>
<context-param>
<param-name>quartz:shutdown-on-unload</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:wait-on-shutdown</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:config-file</param-name>
<param-value>scan-quartz.properties</param-value>
</context-param>
<context-param>
<param-name>quartz:start-scheduler-on-load</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:start-on-load</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.quartz.ee.servlet.QuartzInitializerListener</listener-class>
</listener>
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-mvc-config.xml</param-value>
</init-param>
<init-param>
<param-name>detectAllHandlerExceptionResolvers</param-name><!-- 取消其自动注册的异常解析器 -->
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Modeler的Rest服务 -->
<!--<servlet>-->
<!--<servlet-name>ModelRestServlet</servlet-name>-->
<!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:spring/spring-mvc-modeler.xml</param-value>-->
<!--</init-param>-->
<!--<load-on-startup>1</load-on-startup>-->
<!--</servlet>-->
<!--<servlet-mapping>-->
<!--<servlet-name>ModelRestServlet</servlet-name>-->
<!--<url-pattern>/service/*</url-pattern>-->
<!--</servlet-mapping>-->
<!-- Rest接口 -->
<!--<servlet>-->
<!--<servlet-name>RestServlet</servlet-name>-->
<!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:spring/spring-mvc-rest.xml</param-value>-->
<!--</init-param>-->
<!--<load-on-startup>1</load-on-startup>-->
<!--</servlet>-->
<!--<servlet-mapping>-->
<!--<servlet-name>RestServlet</servlet-name>-->
<!--<url-pattern>/rest/*</url-pattern>-->
<!--</servlet-mapping>-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--<filter>-->
<!--<filter-name>openEntityManagerInViewFilter</filter-name>-->
<!--<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>-->
<!--</filter>-->
<!--<filter-mapping>-->
<!--<filter-name>openEntityManagerInViewFilter</filter-name>-->
<!--<url-pattern>/*</url-pattern>-->
<!--</filter-mapping>-->
<!--
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>sitemeshFilter</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemeshFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<!--
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/assets/*</url-pattern>
</servlet-mapping>
-->
<!--<servlet-mapping>-->
<!--<servlet-name>default</servlet-name>-->
<!--<url-pattern>/apply/*</url-pattern>-->
<!--</servlet-mapping>-->
<!--<servlet-mapping>-->
<!--<servlet-name>jsp</servlet-name>-->
<!--<url-pattern>/WEB-INF/views/error/*</url-pattern>-->
<!--</servlet-mapping>-->
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<!--<error-page>-->
<!--<exception-type>java.lang.Throwable</exception-type>-->
<!--<location>/WEB-INF/views/error/500.jsp</location>-->
<!--</error-page>-->
<!--<error-page>-->
<!--<error-code>500</error-code>-->
<!--<location>/WEB-INF/views/error/500.jsp</location>-->
<!--</error-page>-->
<!--<error-page>-->
<!--<error-code>404</error-code>-->
<!--<location>/WEB-INF/views/error/404.jsp</location>-->
<!--</error-page>-->
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>crm-web</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--<listener>-->
<!--<listener-class>com.github.miemiedev.mybatis.paginator.CleanupMybatisPaginatorListener</listener-class>-->
<!--</listener>-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*-config.xml</param-value>
</context-param>
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>production</param-value>
</context-param>
<context-param>
<param-name>quartz:shutdown-on-unload</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:wait-on-shutdown</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:config-file</param-name>
<param-value>scan-quartz.properties</param-value>
</context-param>
<context-param>
<param-name>quartz:start-scheduler-on-load</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:start-on-load</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.quartz.ee.servlet.QuartzInitializerListener</listener-class>
</listener>
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-mvc-config.xml</param-value>
</init-param>
<init-param>
<param-name>detectAllHandlerExceptionResolvers</param-name><!-- 取消其自动注册的异常解析器 -->
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Modeler的Rest服务 -->
<!--<servlet>-->
<!--<servlet-name>ModelRestServlet</servlet-name>-->
<!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:spring/spring-mvc-modeler.xml</param-value>-->
<!--</init-param>-->
<!--<load-on-startup>1</load-on-startup>-->
<!--</servlet>-->
<!--<servlet-mapping>-->
<!--<servlet-name>ModelRestServlet</servlet-name>-->
<!--<url-pattern>/service/*</url-pattern>-->
<!--</servlet-mapping>-->
<!-- Rest接口 -->
<!--<servlet>-->
<!--<servlet-name>RestServlet</servlet-name>-->
<!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
<!--<init-param>-->
<!--<param-name>contextConfigLocation</param-name>-->
<!--<param-value>classpath:spring/spring-mvc-rest.xml</param-value>-->
<!--</init-param>-->
<!--<load-on-startup>1</load-on-startup>-->
<!--</servlet>-->
<!--<servlet-mapping>-->
<!--<servlet-name>RestServlet</servlet-name>-->
<!--<url-pattern>/rest/*</url-pattern>-->
<!--</servlet-mapping>-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--<filter>-->
<!--<filter-name>openEntityManagerInViewFilter</filter-name>-->
<!--<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>-->
<!--</filter>-->
<!--<filter-mapping>-->
<!--<filter-name>openEntityManagerInViewFilter</filter-name>-->
<!--<url-pattern>/*</url-pattern>-->
<!--</filter-mapping>-->
<!--
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>sitemeshFilter</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemeshFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<!--
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/assets/*</url-pattern>
</servlet-mapping>
-->
<!--<servlet-mapping>-->
<!--<servlet-name>default</servlet-name>-->
<!--<url-pattern>/apply/*</url-pattern>-->
<!--</servlet-mapping>-->
<!--<servlet-mapping>-->
<!--<servlet-name>jsp</servlet-name>-->
<!--<url-pattern>/WEB-INF/views/error/*</url-pattern>-->
<!--</servlet-mapping>-->
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<!--<error-page>-->
<!--<exception-type>java.lang.Throwable</exception-type>-->
<!--<location>/WEB-INF/views/error/500.jsp</location>-->
<!--</error-page>-->
<!--<error-page>-->
<!--<error-code>500</error-code>-->
<!--<location>/WEB-INF/views/error/500.jsp</location>-->
<!--</error-page>-->
<!--<error-page>-->
<!--<error-code>404</error-code>-->
<!--<location>/WEB-INF/views/error/404.jsp</location>-->
<!--</error-page>-->
</web-app>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment