Browse Source

project start

chenxz 7 years ago
commit
77f9c12c34

+ 16 - 0
.gitignore

@@ -0,0 +1,16 @@
+/eclipse
+tmp
+precompiled
+/conf/application.conf
+test-result
+.classpath
+*.launch
+*.classpath
+*.DS_Store
+**.iml
+**.ipr
+**.iws
+**.log
+/log/
+.idea/
+**target/

+ 28 - 0
mooctest-user-client/pom.xml

@@ -0,0 +1,28 @@
+<?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">
+    <parent>
+        <artifactId>mooctest-user</artifactId>
+        <groupId>cn.iselab.mooctest</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>mooctest-user-client</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>cn.iselab.mooctest</groupId>
+            <artifactId>mooctest-user-common</artifactId>
+            <version>0.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+            <version>${spring.boot.version}</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+</project>

+ 27 - 0
mooctest-user-common/pom.xml

@@ -0,0 +1,27 @@
+<?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">
+    <parent>
+        <artifactId>mooctest-user</artifactId>
+        <groupId>cn.iselab.mooctest</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>mooctest-user-common</artifactId>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.6</source>
+                    <target>1.6</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 15 - 0
mooctest-user-job/pom.xml

@@ -0,0 +1,15 @@
+<?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">
+    <parent>
+        <artifactId>mooctest-user</artifactId>
+        <groupId>cn.iselab.mooctest</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>mooctest-user-job</artifactId>
+
+
+</project>

+ 127 - 0
mooctest-user-job/src/main/java/cn/iselab/mooctest/user/Application.java

@@ -0,0 +1,127 @@
+package cn.iselab.mooctest.user;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.MessageSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
+import org.springframework.boot.autoconfigure.aop.AopAutoConfiguration;
+import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration;
+import org.springframework.boot.autoconfigure.cloud.CloudAutoConfiguration;
+import org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.solr.SolrRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration;
+import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration;
+import org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration;
+import org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration;
+import org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration;
+import org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration;
+import org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration;
+import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration;
+import org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration;
+import org.springframework.boot.autoconfigure.jms.JndiConnectionFactoryAutoConfiguration;
+import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
+import org.springframework.boot.autoconfigure.jms.hornetq.HornetQAutoConfiguration;
+import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration;
+import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration;
+import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration;
+import org.springframework.boot.autoconfigure.mobile.DeviceDelegatingViewResolverAutoConfiguration;
+import org.springframework.boot.autoconfigure.mobile.DeviceResolverAutoConfiguration;
+import org.springframework.boot.autoconfigure.mobile.SitePreferenceAutoConfiguration;
+import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
+import org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration;
+import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
+import org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration;
+import org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration;
+import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration;
+import org.springframework.boot.autoconfigure.social.FacebookAutoConfiguration;
+import org.springframework.boot.autoconfigure.social.LinkedInAutoConfiguration;
+import org.springframework.boot.autoconfigure.social.SocialWebAutoConfiguration;
+import org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration;
+import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
+import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration;
+import org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration;
+import org.springframework.boot.autoconfigure.web.*;
+import org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration;
+
+/**
+ * @Author ROKG
+ * @Description
+ * @Date: Created in 下午7:12 2018/2/12
+ * @Modified By:
+ */
+@SpringBootApplication(exclude = {
+        ActiveMQAutoConfiguration.class,
+        AopAutoConfiguration.class,
+        BatchAutoConfiguration.class,
+        CloudAutoConfiguration.class,
+        DataSourceAutoConfiguration.class,
+        DataSourceTransactionManagerAutoConfiguration.class,
+        DeviceDelegatingViewResolverAutoConfiguration.class,
+        DeviceResolverAutoConfiguration.class,
+        DispatcherServletAutoConfiguration.class,
+        ElasticsearchRepositoriesAutoConfiguration.class,
+        EmbeddedServletContainerAutoConfiguration.class,
+        ErrorMvcAutoConfiguration.class,
+        FacebookAutoConfiguration.class,
+        FallbackWebSecurityAutoConfiguration.class,
+        FlywayAutoConfiguration.class,
+        FreeMarkerAutoConfiguration.class,
+        GroovyTemplateAutoConfiguration.class,
+        GsonAutoConfiguration.class,
+        HibernateJpaAutoConfiguration.class,
+        HornetQAutoConfiguration.class,
+        HttpEncodingAutoConfiguration.class,
+        HttpMessageConvertersAutoConfiguration.class,
+        HypermediaAutoConfiguration.class,
+        IntegrationAutoConfiguration.class,
+        JacksonAutoConfiguration.class,
+        JerseyAutoConfiguration.class,
+        JmsAutoConfiguration.class,
+        JmxAutoConfiguration.class,
+        JndiConnectionFactoryAutoConfiguration.class,
+        JndiDataSourceAutoConfiguration.class,
+        JpaRepositoriesAutoConfiguration.class,
+        LinkedInAutoConfiguration.class,
+        LiquibaseAutoConfiguration.class,
+        MailSenderAutoConfiguration.class,
+        MessageSourceAutoConfiguration.class,
+        MongoAutoConfiguration.class,
+        MongoRepositoriesAutoConfiguration.class,
+        MultipartAutoConfiguration.class,
+        MustacheAutoConfiguration.class,
+        PersistenceExceptionTranslationAutoConfiguration.class,
+        RabbitAutoConfiguration.class,
+        ReactorAutoConfiguration.class,
+        RepositoryRestMvcAutoConfiguration.class,
+        SecurityAutoConfiguration.class,
+        ServerPropertiesAutoConfiguration.class,
+        SitePreferenceAutoConfiguration.class,
+        SocialWebAutoConfiguration.class,
+        SolrAutoConfiguration.class,
+        SolrRepositoriesAutoConfiguration.class,
+        SpringDataWebAutoConfiguration.class,
+        ThymeleafAutoConfiguration.class,
+        TwitterAutoConfiguration.class,
+        VelocityAutoConfiguration.class,
+        WebMvcAutoConfiguration.class,
+        WebSocketAutoConfiguration.class,
+        XADataSourceAutoConfiguration.class
+})
+public class Application {
+
+    public static void main(String[] args){
+        System.setProperty("org.jboss.logging.provider", "slf4j");
+
+        SpringApplication application = new SpringApplication(Application.class);
+        application.run(args);
+    }
+}

+ 177 - 0
mooctest-user-server/pom.xml

@@ -0,0 +1,177 @@
+<?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">
+    <parent>
+        <artifactId>mooctest-user</artifactId>
+        <groupId>cn.iselab.mooctest</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>mooctest-user-server</artifactId>
+
+    <properties>
+        <spring.boot.version>1.3.8.RELEASE</spring.boot.version>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <java.version>1.8</java.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>cn.iselab.mooctest</groupId>
+            <artifactId>mooctest-user-common</artifactId>
+            <version>0.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <version>${spring.boot.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+            <version>${spring.boot.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-web</artifactId>
+            <version>2.4.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-log4j2</artifactId>
+            <version>${spring.boot.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <version>${spring.boot.version}</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <version>${spring.boot.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+            <version>${spring.boot.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework</groupId>
+                    <artifactId>spring-context</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework</groupId>
+                    <artifactId>spring-beans</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.jboss.logging</groupId>
+                    <artifactId>jboss-logging</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.jboss.logging</groupId>
+                    <artifactId>jboss-logging-annotations</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>io.dubbo.springboot</groupId>
+            <artifactId>spring-boot-starter-dubbo</artifactId>
+            <version>1.0.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.javassist</groupId>
+                    <artifactId>javassist</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>5.1.38</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.16.6</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.6.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                    <artifactId>jackson-annotations</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.dataformat</groupId>
+            <artifactId>jackson-dataformat-yaml</artifactId>
+            <version>2.6.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.lmax</groupId>
+            <artifactId>disruptor</artifactId>
+            <version>3.3.2</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <version>2.7</version>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.6.0</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+
+        </plugins>
+    </build>
+</project>

+ 105 - 0
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/Application.java

@@ -0,0 +1,105 @@
+package cn.iselab.mooctest.user;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.MessageSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
+import org.springframework.boot.autoconfigure.aop.AopAutoConfiguration;
+import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration;
+import org.springframework.boot.autoconfigure.cloud.CloudAutoConfiguration;
+import org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.solr.SolrRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration;
+import org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration;
+import org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration;
+import org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration;
+import org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration;
+import org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration;
+import org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration;
+import org.springframework.boot.autoconfigure.jms.JndiConnectionFactoryAutoConfiguration;
+import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
+import org.springframework.boot.autoconfigure.jms.hornetq.HornetQAutoConfiguration;
+import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration;
+import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration;
+import org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration;
+import org.springframework.boot.autoconfigure.mobile.DeviceDelegatingViewResolverAutoConfiguration;
+import org.springframework.boot.autoconfigure.mobile.DeviceResolverAutoConfiguration;
+import org.springframework.boot.autoconfigure.mobile.SitePreferenceAutoConfiguration;
+import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
+import org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration;
+import org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration;
+import org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration;
+import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration;
+import org.springframework.boot.autoconfigure.social.FacebookAutoConfiguration;
+import org.springframework.boot.autoconfigure.social.LinkedInAutoConfiguration;
+import org.springframework.boot.autoconfigure.social.SocialWebAutoConfiguration;
+import org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration;
+import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
+import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration;
+import org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration;
+import org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration;
+
+/**
+ * @Author ROKG
+ * @Description
+ * @Date: Created in 下午6:19 2018/2/12
+ * @Modified By:
+ */
+@SpringBootApplication(exclude = {
+        ActiveMQAutoConfiguration.class,
+        AopAutoConfiguration.class,
+        BatchAutoConfiguration.class,
+        CloudAutoConfiguration.class,
+        DeviceDelegatingViewResolverAutoConfiguration.class,
+        DeviceResolverAutoConfiguration.class,
+        ElasticsearchRepositoriesAutoConfiguration.class,
+        FacebookAutoConfiguration.class,
+        FallbackWebSecurityAutoConfiguration.class,
+        FlywayAutoConfiguration.class,
+        FreeMarkerAutoConfiguration.class,
+        GroovyTemplateAutoConfiguration.class,
+        GsonAutoConfiguration.class,
+        HornetQAutoConfiguration.class,
+        HypermediaAutoConfiguration.class,
+        IntegrationAutoConfiguration.class,
+        JerseyAutoConfiguration.class,
+        JmsAutoConfiguration.class,
+        JmxAutoConfiguration.class,
+        JndiConnectionFactoryAutoConfiguration.class,
+        JndiDataSourceAutoConfiguration.class,
+        LinkedInAutoConfiguration.class,
+        LiquibaseAutoConfiguration.class,
+        MailSenderAutoConfiguration.class,
+        MessageSourceAutoConfiguration.class,
+        MongoAutoConfiguration.class,
+        MongoRepositoriesAutoConfiguration.class,
+        MustacheAutoConfiguration.class,
+        PersistenceExceptionTranslationAutoConfiguration.class,
+        RabbitAutoConfiguration.class,
+        ReactorAutoConfiguration.class,
+        RepositoryRestMvcAutoConfiguration.class,
+        SecurityAutoConfiguration.class,
+        SitePreferenceAutoConfiguration.class,
+        SocialWebAutoConfiguration.class,
+        SolrAutoConfiguration.class,
+        SolrRepositoriesAutoConfiguration.class,
+        ThymeleafAutoConfiguration.class,
+        TwitterAutoConfiguration.class,
+        VelocityAutoConfiguration.class,
+        WebSocketAutoConfiguration.class,
+        XADataSourceAutoConfiguration.class
+})
+public class Application {
+
+    public static void main(String[] args){
+        SpringApplication application = new SpringApplication(Application.class);
+        application.setWebEnvironment(true);
+        application.run(args);
+    }
+}

+ 67 - 0
mooctest-user-server/src/main/resources/application.yaml

@@ -0,0 +1,67 @@
+spring.profiles.active: dev
+
+spring:
+    cache:
+        guava:
+            spec: expireAfterWrite=30s
+    datasource:
+        driver-class-name: com.mysql.jdbc.Driver
+        # Keep the connection alive if idle for a long time (needed in production)
+        testWhileIdle: true
+        validationQuery: SELECT 1
+    # Show or not log for each sql query
+    jpa:
+        show-sql: true
+    # Hibernate ddl auto (create, create-drop, update)
+    hibernate:
+        ddl-auto: validate
+        #hbm2ddl.auto: update
+        # Naming strategy
+        naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+    # The SQL dialect makes Hibernate generate better SQL for the chosen database
+    properties.hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
+
+---
+# 开发环境
+spring:
+    profiles: dev
+    datasource:
+        url: jdbc:mysql://127.0.0.1:3306/mooctest_user?useUnicode=yes&characterEncoding=UTF-8
+        username: root
+        password: cxz6518
+
+server:
+    port: 8080
+
+logging.config: classpath:log4j2.yaml
+
+---
+# 测试服务环境
+spring:
+    profiles: test
+    datasource:
+        url: jdbc:mysql://test-mysql:3306/mooctest-oauth2 # please modify manually
+        username: test-username # please modify manually
+        password: test-password # please modify manually
+
+logging.config: classpath:log4j2.test.yaml
+logging.access.directory: /home/share/log
+
+spring.jpa.show-sql: false
+
+---
+# 线上服务环境
+spring:
+    profiles: online
+    datasource:
+        url: jdbc:mysql://127.0.0.1:3306/mooctest_user?useUnicode=yes&characterEncoding=UTF-8
+        username: mooctest
+        password: secr3t!
+
+server:
+    port: 8090
+
+logging.config: classpath:log4j2.online.yaml
+logging.access.directory: /home/share/log
+
+spring.jpa.show-sql: false

+ 64 - 0
mooctest-user-server/src/main/resources/log4j2.online.yaml

@@ -0,0 +1,64 @@
+Configuration:
+  properties:
+    property:
+      - name: logPath
+        value: /home/share/log/
+      - name: filename
+        value: mooctest-user.log
+      - name: pattern
+        value: "%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] [%c] %m%n"
+      - name: httpRequestPattern
+        value: "%-d{yyyy-MM-dd HH:mm:ss} %m%n"
+
+  status: "info"
+  Appenders:
+    RollingRandomAccessFile:
+      - name: "FileAppender"
+        fileName: "${logPath}${filename}"
+        filePattern: "${logPath}${filename}.%d{yyyy-MM-dd}"
+        PatternLayout:
+          pattern: "${pattern}"
+        Policies:
+          TimeBasedTriggeringPolicy: {}
+      - name: "AnalysisFileAppender"
+        fileName: "${logPath}analysis-${filename}"
+        filePattern: "${logPath}analysis-${filename}.%d{yyyy-MM-dd}"
+        PatternLayout:
+          pattern: "${pattern}"
+        Policies:
+          TimeBasedTriggeringPolicy: {}
+      - name: "HTTPRequestFileAppender"
+        fileName: "${logPath}http-request-${filename}"
+        filePattern: "${logPath}http-request-${filename}.%d{yyyy-MM-dd}"
+        PatternLayout:
+          pattern: "${httpRequestPattern}"
+        Policies:
+          TimeBasedTriggeringPolicy: {}
+      - name: "RPCRequestFileAppender"
+        fileName: "${logPath}rpc-request-${filename}"
+        filePattern: "${logPath}rpc-request-${filename}.%d{yyyy-MM-dd}"
+        PatternLayout:
+          pattern: "${pattern}"
+        Policies:
+          TimeBasedTriggeringPolicy: {}
+  Loggers:
+    AsyncLogger:
+      - name: RequestLogger
+        level: info
+        additivity: false
+        AppenderRef:
+          - ref: HTTPRequestFileAppender
+      - name: "RpcRequestLogger"
+        level: "info"
+        additivity: false
+        AppenderRef:
+          - ref: RPCRequestFileAppender
+      - name: AnalysisLogger
+        level: info
+        additivity: false
+        AppenderRef:
+          - ref: AnalysisFileAppender
+    AsyncRoot:
+      level: info
+      AppenderRef:
+        - ref: FileAppender

+ 64 - 0
mooctest-user-server/src/main/resources/log4j2.test.yaml

@@ -0,0 +1,64 @@
+Configuration:
+  properties:
+    property:
+      - name: logPath
+        value: /home/share/log/
+      - name: filename
+        value: mooctest-user.log
+      - name: pattern
+        value: "%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] [%c] %m%n"
+      - name: httpRequestPattern
+        value: "%-d{yyyy-MM-dd HH:mm:ss} %m%n"
+
+  status: "info"
+  Appenders:
+    RollingRandomAccessFile:
+      - name: "FileAppender"
+        fileName: "${logPath}${filename}"
+        filePattern: "${logPath}${filename}.%d{yyyy-MM-dd}"
+        PatternLayout:
+          pattern: "${pattern}"
+        Policies:
+          TimeBasedTriggeringPolicy: {}
+      - name: "AnalysisFileAppender"
+        fileName: "${logPath}analysis-${filename}"
+        filePattern: "${logPath}analysis-${filename}.%d{yyyy-MM-dd}"
+        PatternLayout:
+          pattern: "${pattern}"
+        Policies:
+          TimeBasedTriggeringPolicy: {}
+      - name: "HTTPRequestFileAppender"
+        fileName: "${logPath}http-request-${filename}"
+        filePattern: "${logPath}http-request-${filename}.%d{yyyy-MM-dd}"
+        PatternLayout:
+          pattern: "${httpRequestPattern}"
+        Policies:
+          TimeBasedTriggeringPolicy: {}
+      - name: "RPCRequestFileAppender"
+        fileName: "${logPath}rpc-request-${filename}"
+        filePattern: "${logPath}rpc-request-${filename}.%d{yyyy-MM-dd}"
+        PatternLayout:
+          pattern: "${pattern}"
+        Policies:
+          TimeBasedTriggeringPolicy: {}
+  Loggers:
+    AsyncLogger:
+      - name: RequestLogger
+        level: info
+        additivity: false
+        AppenderRef:
+          - ref: HTTPRequestFileAppender
+      - name: "RpcRequestLogger"
+        level: "info"
+        additivity: false
+        AppenderRef:
+          - ref: RPCRequestFileAppender
+      - name: AnalysisLogger
+        level: info
+        additivity: false
+        AppenderRef:
+          - ref: AnalysisFileAppender
+    AsyncRoot:
+      level: info
+      AppenderRef:
+        - ref: FileAppender

+ 13 - 0
mooctest-user-server/src/main/resources/log4j2.yaml

@@ -0,0 +1,13 @@
+Configuration:
+  status: info
+  Appenders:
+    Console:
+      name: console
+      target: SYSTEM_OUT
+      PatternLayout:
+        pattern: "%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] [%c] %m%n"
+  Loggers:
+    AsyncRoot:
+      level: info
+      AppenderRef:
+        - ref: console

+ 62 - 0
pom.xml

@@ -0,0 +1,62 @@
+<?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>cn.iselab.mooctest</groupId>
+    <artifactId>mooctest-user</artifactId>
+    <packaging>pom</packaging>
+    <version>0.0.1</version>
+
+    <properties>
+        <spring.boot.version>1.3.8.RELEASE</spring.boot.version>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+    </properties>
+
+    <parent>
+        <groupId>cn.iselab</groupId>
+        <artifactId>iselab-parent</artifactId>
+        <version>1.0.1</version>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>cn.iselab</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>1.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.iselab</groupId>
+            <artifactId>commons-spring</artifactId>
+            <version>1.0.4</version>
+        </dependency>
+        <dependency>
+            <groupId>com.taocoder</groupId>
+            <artifactId>ourea-core</artifactId>
+            <version>0.0.9</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-classic</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+    <modules>
+        <module>mooctest-user-common</module>
+        <module>mooctest-user-client</module>
+        <module>mooctest-user-server</module>
+        <module>mooctest-user-job</module>
+        <module>mooctest-user-common</module>
+        <module>mooctest-user-server</module>
+        <module>mooctest-user-job</module>
+        <module>mooctest-user-client</module>
+    </modules>
+</project>