فهرست منبع

zheng-cms规范包、增加zheng-cms-admin

shuzheng 8 سال پیش
والد
کامیت
1d9609c805
41فایلهای تغییر یافته به همراه1926 افزوده شده و 4 حذف شده
  1. 2 0
      zheng-cms/pom.xml
  2. 101 0
      zheng-cms/zheng-cms-admin/pom.xml
  3. 15 0
      zheng-cms/zheng-cms-admin/src/main/java/com/zheng/cms/admin/controller/BaseController.java
  4. 26 0
      zheng-cms/zheng-cms-admin/src/main/resources/applicationContext-threadpool.xml
  5. 1 0
      zheng-cms/zheng-cms-admin/src/main/resources/config.properties
  6. 23 0
      zheng-cms/zheng-cms-admin/src/main/resources/log4j.properties
  7. 1 0
      zheng-cms/zheng-cms-admin/src/main/resources/profiles/dev.properties
  8. 1 0
      zheng-cms/zheng-cms-admin/src/main/resources/profiles/prod.properties
  9. 1 0
      zheng-cms/zheng-cms-admin/src/main/resources/profiles/test.properties
  10. 17 0
      zheng-cms/zheng-cms-admin/src/main/webapp/WEB-INF/jsp/404.jsp
  11. 43 0
      zheng-cms/zheng-cms-admin/src/main/webapp/WEB-INF/jsp/500.jsp
  12. 17 0
      zheng-cms/zheng-cms-admin/src/main/webapp/WEB-INF/jsp/index.jsp
  13. 97 0
      zheng-cms/zheng-cms-admin/src/main/webapp/WEB-INF/web.xml
  14. 1 1
      zheng-cms/zheng-cms-job/pom.xml
  15. 47 0
      zheng-cms/zheng-cms-job/src/main/java/com/zheng/cms/job/jms/defaultQueueMessageListener.java
  16. 1 1
      zheng-cms/zheng-cms-job/src/main/resources/applicationContext-activemq.xml
  17. 17 0
      zheng-cms/zheng-cms-job/src/main/webapp/WEB-INF/jsp/404.jsp
  18. 43 0
      zheng-cms/zheng-cms-job/src/main/webapp/WEB-INF/jsp/500.jsp
  19. 17 0
      zheng-cms/zheng-cms-job/src/main/webapp/WEB-INF/jsp/index.jsp
  20. 14 0
      zheng-cms/zheng-cms-job/src/main/webapp/WEB-INF/web.xml
  21. 24 0
      zheng-cms/zheng-cms-search/pom.xml
  22. 7 0
      zheng-cms/zheng-cms-search/src/main/webapp/WEB-INF/web.xml
  23. 35 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/Interceptor/ManageInterceptor.java
  24. 63 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/ActiveMQController.java
  25. 15 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/BaseController.java
  26. 102 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/EhCacheController.java
  27. 143 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/HelloController.java
  28. 29 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/ManageController.java
  29. 82 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/RedisController.java
  30. 213 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/UserController.java
  31. 134 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/manage/CmsArticleController.java
  32. 133 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/manage/CmsCategoryController.java
  33. 131 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/manage/CmsCommentController.java
  34. 133 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/manage/CmsTagController.java
  35. 47 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/jms/defaultQueueMessageListener.java
  36. 58 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/schedule/LongSchedule.java
  37. 63 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/schedule/MapSchedule.java
  38. 8 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/task/TestTask.java
  39. 19 0
      zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/task/impl/TestTaskImpl.java
  40. 1 1
      zheng-cms/zheng-cms-web/src/main/resources/applicationContext-activemq.xml
  41. 1 1
      zheng-cms/zheng-cms-web/src/main/resources/springMVC-servlet.xml

+ 2 - 0
zheng-cms/pom.xml

@@ -23,6 +23,8 @@
         <module>zheng-cms-service</module>
         <module>zheng-cms-web</module>
         <module>zheng-cms-job</module>
+        <module>zheng-cms-search</module>
+        <module>zheng-cms-admin</module>
     </modules>
 
     <dependencyManagement>

+ 101 - 0
zheng-cms/zheng-cms-admin/pom.xml

@@ -0,0 +1,101 @@
+<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/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.zheng</groupId>
+        <artifactId>zheng-cms</artifactId>
+        <version>1.0.0</version>
+    </parent>
+
+    <artifactId>zheng-cms-admin</artifactId>
+    <packaging>war</packaging>
+
+    <name>zheng-cms-admin Maven Webapp</name>
+    <url>http://www.zhangshuzheng.cn</url>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.zheng</groupId>
+            <artifactId>zheng-cms-service</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>jstl</artifactId>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <profile>
+            <id>dev</id>
+            <properties>
+                <env>dev</env>
+            </properties>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+        </profile>
+        <profile>
+            <id>test</id>
+            <properties>
+                <env>test</env>
+            </properties>
+        </profile>
+        <profile>
+            <id>prod</id>
+            <properties>
+                <env>prod</env>
+            </properties>
+        </profile>
+    </profiles>
+
+    <build>
+        <finalName>zheng-cms-admin</finalName>
+        <filters>
+            <filter>src/main/resources/profiles/${env}.properties</filter>
+        </filters>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+        </resources>
+        <plugins>
+            <!-- jetty插件 -->
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>9.0.0.v20130308</version>
+                <configuration>
+                    <scanIntervalSeconds>3</scanIntervalSeconds>
+                    <webApp>
+                        <contextPath>/zheng-cms-admin</contextPath>
+                    </webApp>
+                    <httpConnector>
+                        <port>8081</port>
+                    </httpConnector>
+                    <reload>automatic</reload>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.18.1</version>
+                <configuration>
+                    <!--是否跳过单元测试-->
+                    <skipTests>true</skipTests>
+                    <!--是否忽略单元测试错误-->
+                    <testFailureIgnore>true</testFailureIgnore>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 15 - 0
zheng-cms/zheng-cms-admin/src/main/java/com/zheng/cms/admin/controller/BaseController.java

@@ -0,0 +1,15 @@
+package com.zheng.cms.admin.controller;
+
+/**
+ * 控制器基类
+ * @author shuzheng
+ * @date 2016年7月7日 上午10:08:47
+ */
+public class BaseController {
+	
+	public static final String RESULT = "result";
+	public static final String DATA = "data";
+	public static final String SUCCESS = "success";
+	public static final String FAILED = "failed";
+
+}

+ 26 - 0
zheng-cms/zheng-cms-admin/src/main/resources/applicationContext-threadpool.xml

@@ -0,0 +1,26 @@
+<?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-3.0.xsd">
+
+	<!-- 线程池配置 -->
+	<bean id="threadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
+		<!-- 线程池维护线程的最少数量 -->
+		<property name="corePoolSize" value="50" />
+		<!--  线程池维护线程的最大数量,默认为Integer.MAX_VALUE -->
+		<property name="maxPoolSize" value="1000" />
+		<!-- 线程池所使用的缓冲队列,一般需要设置值>=notifyScheduledMainExecutor.maxNum;默认为Integer.MAX_VALUE -->
+		<property name="queueCapacity" value="20000" />
+		<!-- 线程池维护线程所允许的空闲时间,默认为60s -->
+		<property name="keepAliveSeconds" value="300" />
+		<!-- 线程池对拒绝任务(无线程可用)的处理策略,目前只支持AbortPolicy、CallerRunsPolicy;默认为后者 -->
+		<property name="rejectedExecutionHandler">
+			<!-- AbortPolicy:直接抛出java.util.concurrent.RejectedExecutionException异常 -->
+			<!-- CallerRunsPolicy:主线程直接执行该任务,执行完之后尝试添加下一个任务到线程池中,可以有效降低向线程池内添加任务的速度 -->
+			<!-- DiscardOldestPolicy:抛弃旧的任务、暂不支持;会导致被丢弃的任务无法再次被执行 -->
+			<!-- DiscardPolicy:抛弃当前任务、暂不支持;会导致被丢弃的任务无法再次被执行 -->
+			<bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />
+		</property>
+	</bean>
+
+</beans>

+ 1 - 0
zheng-cms/zheng-cms-admin/src/main/resources/config.properties

@@ -0,0 +1 @@
+env=${profile.env}

+ 23 - 0
zheng-cms/zheng-cms-admin/src/main/resources/log4j.properties

@@ -0,0 +1,23 @@
+#off/fatal/error/warn/info/debug/all
+log4j.debug=false
+log4j.rootLogger=info, stdout
+
+# Console output
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
+
+#Spring logging configuration
+log4j.category.org.springframework = warn
+
+#Druid logging configuration
+log4j.logger.druid.sql=warn,stdout
+log4j.logger.druid.sql.DataSource=warn,stdout
+log4j.logger.druid.sql.Connection=warn,stdout
+log4j.logger.druid.sql.Statement=warn,stdout
+log4j.logger.druid.sql.ResultSet=warn,stdout
+
+# MyBatis logging configuration
+log4j.logger.com.zheng.cms.dao.mapper=debug
+#log4j.logger.com.zheng.cms.dao.mapper.UserMapper=debug
+#log4j.logger.com.zheng.cms.dao.mapper.UserMapper.selectUser=debug

+ 1 - 0
zheng-cms/zheng-cms-admin/src/main/resources/profiles/dev.properties

@@ -0,0 +1 @@
+profile.env=dev

+ 1 - 0
zheng-cms/zheng-cms-admin/src/main/resources/profiles/prod.properties

@@ -0,0 +1 @@
+profile.env=prod

+ 1 - 0
zheng-cms/zheng-cms-admin/src/main/resources/profiles/test.properties

@@ -0,0 +1 @@
+profile.env=test

+ 17 - 0
zheng-cms/zheng-cms-admin/src/main/webapp/WEB-INF/jsp/404.jsp

@@ -0,0 +1,17 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title><spring:message code="404"/></title>
+</head>
+<body>
+404
+</body>
+</html>

+ 43 - 0
zheng-cms/zheng-cms-admin/src/main/webapp/WEB-INF/jsp/500.jsp

@@ -0,0 +1,43 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>500</title>
+</head>
+<body>
+<center style="margin:50px auto">
+	<p>错误代码:500<%//=request.getAttribute("javax.servlet.error.status_code")%></p>
+	<p>您访问的页面有错误!</p>
+	<p>错误原因:${error.message}</p>
+	<p>错误内容:${error}</p>
+	<p><!--页面将在<span id="stime">5</span>秒后-->跳转到<a href="${pageContext.request.contextPath}/">首页</a>!</p>
+</center>
+<%
+/**
+监控出错人的IP
+String ip = request.getHeader(" x-forwarded-for");
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getHeader(" Proxy-Client-IP"); // 获取代理ip
+}
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getHeader(" WL-Proxy-Client-IP"); // 获取代理ip
+}
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getRemoteAddr(); // 获取真实ip
+}
+//out.println(ip+"<br/><br/>你的地址是:<br/><br/>");
+
+Document doc = Jsoup.connect("http://ip.chinaz.com/?IP="+ip).timeout(9000).get();
+Element e = doc.select("#status").first();
+//out.println(e);
+*/
+%>
+</body>
+</html>

+ 17 - 0
zheng-cms/zheng-cms-admin/src/main/webapp/WEB-INF/jsp/index.jsp

@@ -0,0 +1,17 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8"/>
+    <title>首页</title>
+</head>
+<body>
+
+</body>
+</html>

+ 97 - 0
zheng-cms/zheng-cms-admin/src/main/webapp/WEB-INF/web.xml

@@ -0,0 +1,97 @@
+<?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/web-app_2_5.xsd"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+         version="2.5">
+
+  <!-- 强制进行转码 -->
+  <filter>
+    <filter-name>CharacterEncodingFilter</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>
+  </filter>
+  <filter-mapping>
+    <filter-name>CharacterEncodingFilter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+    <dispatcher>FORWARD</dispatcher>
+  </filter-mapping>
+
+  <!-- 默认的spring配置文件是在WEB-INF下的applicationContext.xml -->
+  <listener>
+    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+  </listener>
+  <context-param>
+    <param-name>contextConfigLocation</param-name>
+    <param-value>
+      classpath*:applicationContext*.xml
+    </param-value>
+  </context-param>
+
+  <!-- 日志配置文件 -->
+  <context-param>
+    <param-name>log4jConfigLocation</param-name>
+    <param-value>classpath:log4j.properties</param-value>
+  </context-param>
+
+  <!-- springMVC的核心控制器 -->
+  <servlet>
+    <servlet-name>springMVC</servlet-name>
+    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+    <init-param>
+      <param-name>contextConfigLocation</param-name>
+      <param-value>classpath*:springMVC-servlet.xml</param-value>
+    </init-param>
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>springMVC</servlet-name>
+    <url-pattern>/</url-pattern>
+  </servlet-mapping>
+
+  <!-- Spring Security -->
+  <!--
+  <filter>
+      <filter-name>springSecurityFilterChain</filter-name>
+      <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+  </filter>
+  <filter-mapping>
+      <filter-name>springSecurityFilterChain</filter-name>
+      <url-pattern>/*</url-pattern>
+  </filter-mapping>
+  -->
+
+  <!-- Druid连接池监控页面 -->
+  <servlet>
+    <servlet-name>DruidStatView</servlet-name>
+    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>DruidStatView</servlet-name>
+    <url-pattern>/druid/*</url-pattern>
+  </servlet-mapping>
+
+  <!-- session配置 -->
+  <session-config>
+    <session-timeout>120</session-timeout>
+  </session-config>
+
+  <!-- 欢迎页面 -->
+  <welcome-file-list>
+    <welcome-file>index.html</welcome-file>
+    <welcome-file>index.jsp</welcome-file>
+  </welcome-file-list>
+
+  <!-- 错误页面 -->
+  <error-page>
+    <error-code>404</error-code>
+    <location>/WEB-INF/jsp/404.jsp</location>
+  </error-page>
+  <error-page>
+    <error-code>500</error-code>
+    <location>/WEB-INF/jsp/500.jsp</location>
+  </error-page>
+</web-app>

+ 1 - 1
zheng-cms/zheng-cms-job/pom.xml

@@ -80,7 +80,7 @@
                         <contextPath>/zheng-cms-job</contextPath>
                     </webApp>
                     <httpConnector>
-                        <port>8081</port>
+                        <port>8082</port>
                     </httpConnector>
                     <reload>automatic</reload>
                 </configuration>

+ 47 - 0
zheng-cms/zheng-cms-job/src/main/java/com/zheng/cms/job/jms/defaultQueueMessageListener.java

@@ -0,0 +1,47 @@
+package com.zheng.cms.job.jms;
+
+import com.zheng.cms.dao.model.User;
+import com.zheng.cms.service.UserService;
+import net.sf.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.TextMessage;
+
+/**
+ * MQ消费者
+ * Created by ZhangShuzheng on 2016/11/24.
+ */
+public class defaultQueueMessageListener implements MessageListener {
+
+    private static Logger _log = LoggerFactory.getLogger(defaultQueueMessageListener.class);
+
+    @Autowired
+    ThreadPoolTaskExecutor threadPoolTaskExecutor;
+
+    @Autowired
+    UserService userService;
+
+    public void onMessage(final Message message) {
+        // 使用线程池多线程处理
+        threadPoolTaskExecutor.execute(new Runnable() {
+            public void run() {
+                TextMessage textMessage = (TextMessage) message;
+                try {
+                    String text = textMessage.getText();
+                    JSONObject json = JSONObject.fromObject(text);
+                    User user = (User) JSONObject.toBean(json, User.class);
+                    userService.getMapper().insertSelective(user);
+                    _log.info("zheng-cms-mq接收到:{}", text);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+    }
+
+}

+ 1 - 1
zheng-cms/zheng-cms-job/src/main/resources/applicationContext-activemq.xml

@@ -23,7 +23,7 @@
 	</bean>
 
 	<!-- 消费者 -->
-	<bean id="defaultQueueMessageListener" class="com.zheng.cms.jms.defaultQueueMessageListener"/>
+	<bean id="defaultQueueMessageListener" class="com.zheng.cms.job.jms.defaultQueueMessageListener"/>
 	<bean id="jmsContainer"  class="org.springframework.jms.listener.DefaultMessageListenerContainer">
 		<property name="connectionFactory" ref="connectionFactory"/>
 		<property name="destination" ref="defaultQueueDestination"/>

+ 17 - 0
zheng-cms/zheng-cms-job/src/main/webapp/WEB-INF/jsp/404.jsp

@@ -0,0 +1,17 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title><spring:message code="404"/></title>
+</head>
+<body>
+404
+</body>
+</html>

+ 43 - 0
zheng-cms/zheng-cms-job/src/main/webapp/WEB-INF/jsp/500.jsp

@@ -0,0 +1,43 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>500</title>
+</head>
+<body>
+<center style="margin:50px auto">
+	<p>错误代码:500<%//=request.getAttribute("javax.servlet.error.status_code")%></p>
+	<p>您访问的页面有错误!</p>
+	<p>错误原因:${error.message}</p>
+	<p>错误内容:${error}</p>
+	<p><!--页面将在<span id="stime">5</span>秒后-->跳转到<a href="${pageContext.request.contextPath}/">首页</a>!</p>
+</center>
+<%
+/**
+监控出错人的IP
+String ip = request.getHeader(" x-forwarded-for");
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getHeader(" Proxy-Client-IP"); // 获取代理ip
+}
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getHeader(" WL-Proxy-Client-IP"); // 获取代理ip
+}
+if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
+	ip = request.getRemoteAddr(); // 获取真实ip
+}
+//out.println(ip+"<br/><br/>你的地址是:<br/><br/>");
+
+Document doc = Jsoup.connect("http://ip.chinaz.com/?IP="+ip).timeout(9000).get();
+Element e = doc.select("#status").first();
+//out.println(e);
+*/
+%>
+</body>
+</html>

+ 17 - 0
zheng-cms/zheng-cms-job/src/main/webapp/WEB-INF/jsp/index.jsp

@@ -0,0 +1,17 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<c:set var="basePath" value="${pageContext.request.contextPath}"/>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8"/>
+    <title>首页</title>
+</head>
+<body>
+
+</body>
+</html>

+ 14 - 0
zheng-cms/zheng-cms-job/src/main/webapp/WEB-INF/web.xml

@@ -37,4 +37,18 @@
     <param-value>classpath:log4j.properties</param-value>
   </context-param>
 
+  <!-- springMVC的核心控制器 -->
+  <servlet>
+    <servlet-name>springMVC</servlet-name>
+    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+    <init-param>
+      <param-name>contextConfigLocation</param-name>
+      <param-value>classpath*:springMVC-servlet.xml</param-value>
+    </init-param>
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>springMVC</servlet-name>
+    <url-pattern>/</url-pattern>
+  </servlet-mapping>
 </web-app>

+ 24 - 0
zheng-cms/zheng-cms-search/pom.xml

@@ -0,0 +1,24 @@
+<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/maven-v4_0_0.xsd">
+    <parent>
+        <artifactId>zheng-cms</artifactId>
+        <groupId>com.zheng</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>zheng-cms-search</artifactId>
+    <packaging>war</packaging>
+    <name>zheng-cms-search Maven Webapp</name>
+    <url>http://maven.apache.org</url>
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>3.8.1</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <build>
+        <finalName>zheng-cms-search</finalName>
+    </build>
+</project>

+ 7 - 0
zheng-cms/zheng-cms-search/src/main/webapp/WEB-INF/web.xml

@@ -0,0 +1,7 @@
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd" >
+
+<web-app>
+  <display-name>Archetype Created Web Application</display-name>
+</web-app>

+ 35 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/Interceptor/ManageInterceptor.java

@@ -0,0 +1,35 @@
+package com.zheng.cms.web.Interceptor;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 后台过滤器
+ * Created by ZhangShuzheng on 2016/10/17.
+ */
+public class ManageInterceptor extends HandlerInterceptorAdapter {
+
+	private static Logger _log = LoggerFactory.getLogger(ManageInterceptor.class);
+
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+		_log.info("ManageInterceptor==>preHandle");
+		return true;
+	}
+
+	@Override
+	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+
+	}
+
+	@Override
+	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+
+	}
+
+}

+ 63 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/ActiveMQController.java

@@ -0,0 +1,63 @@
+package com.zheng.cms.web.controller;
+
+import com.zheng.cms.dao.model.User;
+import com.zheng.common.util.JmsUtil;
+import net.sf.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jms.core.JmsTemplate;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.jms.Destination;
+
+/**
+ * 消息队列controller
+ * @author shuzheng
+ * @date 2016年11月24日
+ */
+@Controller
+@RequestMapping("/activemq")
+public class ActiveMQController extends BaseController {
+
+	private static Logger _log = LoggerFactory.getLogger(ActiveMQController.class);
+
+	@Autowired
+	JmsTemplate jmsQueueTemplate;
+
+	@Autowired
+	Destination defaultQueueDestination;
+
+	@RequestMapping("/send")
+	@ResponseBody
+	public Object send() {
+		long start = System.currentTimeMillis();
+		User user = null;
+		for (int i = 1; i <= 1000; i ++) {
+			user = new User();
+			user.setUsername("用户" + i);
+			user.setPassword("123456");
+			user.setNickname("昵称");
+			user.setSex(1);
+			user.setCtime(System.currentTimeMillis());
+			user.setContent("用户描述");
+//			jmsQueueTemplate.convertAndSend(defaultQueueDestination, user);
+			JmsUtil.sendMessage(jmsQueueTemplate, defaultQueueDestination, JSONObject.fromObject(user).toString());
+		}
+		_log.info("发送消息消耗时间" + (System.currentTimeMillis() - start));
+		return "success";
+	}
+
+	public static void main(String[] args) {
+		User user = new User();
+		user.setUsername("用户");
+		user.setPassword("123456");
+		user.setNickname("昵称");
+		user.setSex(1);
+		user.setCtime(System.currentTimeMillis());
+		user.setContent("用户描述");
+		System.out.println(JSONObject.fromObject(user).toString());
+	}
+}

+ 15 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/BaseController.java

@@ -0,0 +1,15 @@
+package com.zheng.cms.web.controller;
+
+/**
+ * 控制器基类
+ * @author shuzheng
+ * @date 2016年7月7日 上午10:08:47
+ */
+public class BaseController {
+	
+	public static final String RESULT = "result";
+	public static final String DATA = "data";
+	public static final String SUCCESS = "success";
+	public static final String FAILED = "failed";
+
+}

+ 102 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/EhCacheController.java

@@ -0,0 +1,102 @@
+package com.zheng.cms.web.controller;
+
+import com.zheng.cms.service.UserService;
+import com.zheng.common.util.EhCacheUtil;
+import com.zheng.common.util.PropertiesFileUtil;
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.Element;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 缓存controller
+ * @author shuzheng
+ * @date 2016年10月15日
+ */
+@Controller
+@RequestMapping("/ehcache")
+public class EhCacheController extends BaseController {
+
+	private static Logger _log = LoggerFactory.getLogger(EhCacheController.class);
+
+	private final static String EHCACHE_NAME = PropertiesFileUtil.getInstance().get("ehcache");
+
+	@Autowired
+	private UserService userService;
+
+	@RequestMapping("/test")
+	@ResponseBody
+	public Object test(HttpServletRequest request) {
+		return System.getProperty("java.io.tmpdir");
+	}
+
+	/**
+	 * 新增缓存记录
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping("/add")
+	@ResponseBody
+	public Object add(HttpServletRequest request) {
+		String key = request.getParameter("key");
+		String value = request.getParameter("value");
+		EhCacheUtil.put(EHCACHE_NAME, key, value);
+		return "success";
+	}
+
+	/**
+	 * 删除缓存记录
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping("/remove")
+	@ResponseBody
+	public Object remove(HttpServletRequest request) {
+		String key = request.getParameter("key");
+		EhCacheUtil.remove(EHCACHE_NAME, key);
+		return "success";
+	}
+
+	/**
+	 * 获取缓存记录
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping("/get")
+	@ResponseBody
+	public Object get(HttpServletRequest request) {
+		String key = request.getParameter("key");
+		Object object = EhCacheUtil.get(EHCACHE_NAME, key);
+		if (null == object) {
+			_log.debug("【Ehcache】没有找到key={}的记录!", key);
+			return "";
+		}
+		return object;
+	}
+
+	public static void main(String[] args) {
+		// EhCache调用
+		// Create a cache manager
+		final CacheManager cacheManager = CacheManager.getInstance();
+		// create the cache called "hello-world"
+		final Cache cache = cacheManager.getCache("ehcache_common");
+		// create a key to map the data to
+		final String key = "key";
+		// Create a data element
+		final Element element = new Element(key, "value");
+		// Put the element into the data store
+		cache.put(element);
+		// Retrieve the data element
+		final Element cacheElement = cache.get(key);
+		// Print the value
+		System.out.println(cacheElement.getObjectValue());
+	}
+
+}

+ 143 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/HelloController.java

@@ -0,0 +1,143 @@
+package com.zheng.cms.web.controller;
+
+import com.zheng.cms.dao.model.User;
+import com.zheng.cms.service.impl.UserServiceImpl;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * 示例controller
+ * @author shuzheng
+ * @date 2016年7月6日 下午6:16:00
+ */
+@Controller
+@RequestMapping("/hello")
+public class HelloController extends BaseController {
+
+	private static Logger _log = LoggerFactory.getLogger(HelloController.class);
+
+	private UserServiceImpl userService;
+
+	public void setUserServiceImpl(UserServiceImpl userService) {
+		this.userService = userService;
+	}
+	
+	@RequestMapping("/index")
+	public String index() {
+		// 视图渲染,/WEB-INF/jsp/hello/world.jsp
+		return "/hello/world";
+	}
+	
+	// 方法级别的RequestMapping, 限制并缩小了URL路径匹配,同类级别的标签协同工作,最终确定拦截到的URL由那个方法处理
+	@RequestMapping("/world")
+	public String world() {
+		// 视图渲染,/WEB-INF/jsp/hello/world.jsp
+		return "/hello/world";
+	}
+
+	// 本方法将处理 /hello/view?courseId=123 形式的URL
+	@RequestMapping(value = "/view", method = RequestMethod.GET)
+	public String viewCourse(@RequestParam("courseId") Integer courseId, Model model) {
+
+		User user = userService.getMapper().selectByPrimaryKey(courseId);
+		model.addAttribute(user);
+		return "course_overview";
+	}
+
+	// 本方法将处理 /hello/view2/123 形式的URL
+	@RequestMapping("/view2/{courseId}")
+	public String viewCourse2(@PathVariable("courseId") Integer courseId, Map<String, Object> map) {
+
+		User user = userService.getMapper().selectByPrimaryKey(courseId);
+		map.put("user", user);
+		return "course_overview";
+	}
+
+	// 本方法将处理 /hello/view3?courseId=123 形式的URL
+	@RequestMapping("/view3")
+	public String viewCourse3(HttpServletRequest request) {
+
+		Integer courseId = Integer.valueOf(request.getParameter("courseId"));
+		User user = userService.getMapper().selectByPrimaryKey(courseId);
+		request.setAttribute("user", user);
+
+		return "course_overview";
+	}
+
+	@RequestMapping(value = "/admin", method = RequestMethod.GET, params = "add")
+	public String createCourse() {
+		return "course_admin/edit";
+	}
+
+	@RequestMapping(value = "/save", method = RequestMethod.POST)
+	public String doSave(@ModelAttribute User user) {
+
+		_log.debug("Info of Course:");
+		_log.debug(ReflectionToStringBuilder.toString(user));
+
+		// 在此进行业务操作,比如数据库持久化
+		user.setUserId(123);
+		return "redirect:view2/" + user.getUserId();
+	}
+
+	@RequestMapping(value = "/upload", method = RequestMethod.GET)
+	public String showUploadPage(@RequestParam(value = "multi", required = false) Boolean multi) {
+		if (multi != null && multi) {
+			return "course_admin/multifile";
+		}
+		return "course_admin/file";
+	}
+
+	@RequestMapping(value = "/doUpload", method = RequestMethod.POST)
+	public String doUploadFile(@RequestParam("file") MultipartFile file) throws IOException {
+
+		if (!file.isEmpty()) {
+			FileUtils.copyInputStreamToFile(file.getInputStream(), new File("c:\\temp\\imooc\\", System.currentTimeMillis() + file.getOriginalFilename()));
+		}
+
+		return "success";
+	}
+
+	@RequestMapping(value = "/doUpload2", method = RequestMethod.POST)
+	public String doUploadFile2(MultipartHttpServletRequest multiRequest) throws IOException {
+
+		Iterator<String> filesNames = multiRequest.getFileNames();
+		while (filesNames.hasNext()) {
+			String fileName = filesNames.next();
+			MultipartFile file = multiRequest.getFile(fileName);
+			if (!file.isEmpty()) {
+				FileUtils.copyInputStreamToFile(file.getInputStream(), new File("c:\\temp\\imooc\\", System.currentTimeMillis() + file.getOriginalFilename()));
+			}
+
+		}
+
+		return "success";
+	}
+
+	@RequestMapping(value = "/{courseId}", method = RequestMethod.GET)
+	public @ResponseBody
+	User getCourseInJson(@PathVariable Integer courseId) {
+		return userService.getMapper().selectByPrimaryKey(courseId);
+	}
+
+	@RequestMapping(value = "/jsontype/{courseId}", method = RequestMethod.GET)
+	public ResponseEntity<User> getCourseInJson2(@PathVariable Integer courseId) {
+		User user = userService.getMapper().selectByPrimaryKey(courseId);
+		return new ResponseEntity<User>(user, HttpStatus.OK);
+	}
+}

+ 29 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/ManageController.java

@@ -0,0 +1,29 @@
+package com.zheng.cms.web.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * 后台controller
+ * @author shuzheng
+ * @date 2016年10月18日
+ */
+@Controller
+@RequestMapping("/manage")
+public class ManageController extends BaseController {
+
+	private static Logger _log = LoggerFactory.getLogger(ManageController.class);
+
+	@RequestMapping(value = {"", "/index"})
+	public String index() {
+		return "/manage/index";
+	}
+
+	@RequestMapping("/login")
+	public String login() {
+		return "/manage/login";
+	}
+
+}

+ 82 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/RedisController.java

@@ -0,0 +1,82 @@
+package com.zheng.cms.web.controller;
+
+import com.zheng.common.util.RedisUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 缓存controller
+ *
+ * @author shuzheng
+ * @date 2016年11月26日
+ */
+@Controller
+@RequestMapping("/redis")
+public class RedisController extends BaseController {
+
+    private static Logger _log = LoggerFactory.getLogger(RedisController.class);
+
+    @RequestMapping("/test")
+    @ResponseBody
+    public Object test(HttpServletRequest request) {
+        long time = System.currentTimeMillis();
+        for (int i = 1; i <= 10000; i ++) {
+            RedisUtil.set("key" + i, "value" + i, i * 5);
+        }
+        return System.currentTimeMillis() - time;
+    }
+
+    /**
+     * 新增缓存记录
+     *
+     * @param request
+     * @return
+     */
+    @RequestMapping("/add")
+    @ResponseBody
+    public Object add(HttpServletRequest request) {
+        String key = request.getParameter("key");
+        String value = request.getParameter("value");
+        String time = request.getParameter("time");
+        RedisUtil.set(key, value, Integer.parseInt(time));
+        return "success";
+    }
+
+    /**
+     * 删除缓存记录
+     *
+     * @param request
+     * @return
+     */
+    @RequestMapping("/remove")
+    @ResponseBody
+    public Object remove(HttpServletRequest request) {
+        String key = request.getParameter("key");
+        RedisUtil.remove(key);
+        return "success";
+    }
+
+    /**
+     * 获取缓存记录
+     *
+     * @param request
+     * @return
+     */
+    @RequestMapping("/get")
+    @ResponseBody
+    public Object get(HttpServletRequest request) {
+        String key = request.getParameter("key");
+        String value = RedisUtil.get(key);
+        if (null == value) {
+            _log.debug("【redis】没有找到key={}的记录!", key);
+            return "";
+        }
+        return value;
+    }
+
+}

+ 213 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/UserController.java

@@ -0,0 +1,213 @@
+package com.zheng.cms.web.controller;
+
+import com.zheng.cms.dao.model.User;
+import com.zheng.cms.dao.model.UserExample;
+import com.zheng.cms.service.UserService;
+import com.zheng.common.util.Paginator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 用户控制器
+ * @author shuzheng
+ * @date 2016年7月6日 下午6:16:25
+ */
+@Controller
+@RequestMapping("/user")
+public class UserController extends BaseController {
+
+	private static Logger _log = LoggerFactory.getLogger(UserController.class);
+	
+	@Autowired
+	private UserService userService;
+
+	@ExceptionHandler(Exception.class)
+	public void exceptionHandler(Exception e) {
+		e.printStackTrace();
+	}
+	
+	/**
+	 * 首页
+	 * @return
+	 */
+	@RequestMapping(value = {"", "index"})
+	public String index() {
+		return "redirect:/user/list";
+	}
+	
+	/**
+	 * 列表
+	 * @param page
+	 * @param rows
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping("/list")
+	public String list(
+			@RequestParam(required = false, defaultValue = "1", value = "page") int page,
+			@RequestParam(required = false, defaultValue = "20", value = "rows") int rows,
+			HttpServletRequest request, Model model) {
+
+		UserExample userExample = new UserExample();
+		userExample.createCriteria()
+				.andUserIdGreaterThan(0);
+		userExample.setOffset((page -1) * rows);
+		userExample.setLimit(rows);
+		userExample.setDistinct(false);
+		userExample.setOrderByClause(" user_id asc ");
+		List<User> users = userService.getMapper().selectByExample(userExample);
+		model.addAttribute("users", users);
+
+		// 创建分页对象
+		long total = userService.getMapper().countByExample(userExample);
+		Paginator paginator = new Paginator();
+		paginator.setTotal(total);
+		paginator.setPage(page);
+		paginator.setRows(rows);
+		paginator.setParam("page");
+		paginator.setUrl(request.getRequestURI());
+		paginator.setQuery(request.getQueryString());
+		model.addAttribute("paginator", paginator);
+
+		return "/user/list";
+	}
+	
+	/**
+	 * 新增get
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.GET)
+	public String add() {
+		return "/user/add";
+	}
+	
+	/**
+	 * 新增post
+	 * @param user
+	 * @param binding
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.POST)
+	public String add(@Valid User user, BindingResult binding) {
+		if (binding.hasErrors()) {
+			for (ObjectError error : binding.getAllErrors()) {
+				_log.error(error.getDefaultMessage());
+			}
+			return "/user/add";
+		}
+		user.setCtime(System.currentTimeMillis());
+
+		userService.getMapper().insertSelective(user);
+
+		_log.info("新增记录id为:{}", user.getUserId());
+
+		return "redirect:/user/list";
+	}
+
+	/**
+	 * 删除
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/delete/{id}",method = RequestMethod.GET)
+	public String delete(@PathVariable("id") int id) {
+		userService.getMapper().deleteByPrimaryKey(id);
+		return "redirect:/user/list";
+	}
+	
+	/**
+	 * 修改get
+	 * @param id
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
+	public String update(@PathVariable("id") int id, Model model) {
+		model.addAttribute("user", userService.getMapper().selectByPrimaryKey(id));
+		return "/user/update";
+	}
+	
+	/**
+	 * 修改post
+	 * @param id
+	 * @param user
+	 * @param binding
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+	public String update(@PathVariable("id") int id, @Valid User user, BindingResult binding, Model model) {
+		if (binding.hasErrors()) {
+			model.addAttribute("errors", binding.getAllErrors());
+			return "user/update/" + id;
+		}
+		userService.getMapper().updateByPrimaryKeySelective(user);
+		return "redirect:/user/list";
+	}
+	
+	/**
+	 * 上传文件
+	 * @param file
+	 * @param request
+	 * @return
+	 * @throws IOException 
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/upload", method = RequestMethod.POST)
+	public Object upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) throws IOException {
+		// 返回结果
+		Map<String, Object> map = new HashMap<String, Object>();
+		// 判断上传文件类型
+		String contentType = file.getContentType().toLowerCase();
+		if ((!contentType.equals("image/jpeg")) && 
+				(!contentType.equals("image/pjpeg")) && 
+				(!contentType.equals("image/png")) && 
+				(!contentType.equals("image/x-png")) && 
+				(!contentType.equals("image/bmp")) && 
+				(!contentType.equals("image/gif"))) {
+			map.put(RESULT, FAILED);
+			map.put(DATA, "不支持该类型的文件!");
+			return map;
+		}
+		// 创建图片目录
+		String basePath = request.getSession().getServletContext().getRealPath("/attached");
+		String fileName = file.getOriginalFilename();
+		String savePath = basePath + "/images/";
+		File targetFile = new File(savePath, fileName);
+		if (!targetFile.exists()) {
+			targetFile.mkdirs();
+		}
+		// 保存图片
+		file.transferTo(targetFile);
+		map.put(RESULT, SUCCESS);
+		map.put(DATA, targetFile.getAbsoluteFile());
+		return map;
+	}
+	
+	/**
+	 * ajax
+	 * @param id
+	 * @return
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/ajax/{id}", method = RequestMethod.GET)
+	public Object ajax(@PathVariable int id) {
+		return userService.getMapper().selectByPrimaryKey(id);
+	}
+	
+}

+ 134 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/manage/CmsArticleController.java

@@ -0,0 +1,134 @@
+package com.zheng.cms.web.controller.manage;
+
+import com.zheng.cms.web.controller.BaseController;
+import com.zheng.cms.dao.model.CmsArticle;
+import com.zheng.cms.dao.model.CmsArticleExample;
+import com.zheng.cms.service.CmsArticleService;
+import com.zheng.common.util.Paginator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 文章控制器
+ * Created by shuzheng on 2016/11/14.
+ */
+@Controller
+@RequestMapping("/manage/article")
+public class CmsArticleController extends BaseController {
+
+	private final static Logger _log = LoggerFactory.getLogger(CmsArticleController.class);
+	
+	@Autowired
+	private CmsArticleService cmsArticleService;
+
+	/**
+	 * 列表
+	 * @param page 当前页码
+	 * @param rows 每页条数
+	 * @param desc 降序排序
+	 * @param request
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping("/list")
+	public String list(
+			@RequestParam(required = false, defaultValue = "1", value = "page") int page,
+			@RequestParam(required = false, defaultValue = "20", value = "rows") int rows,
+			@RequestParam(required = false, defaultValue = "true", value = "desc") boolean desc,
+			HttpServletRequest request, Model model) {
+
+		// 数据列表
+		CmsArticleExample cmsArticleExample = new CmsArticleExample();
+		cmsArticleExample.setOffset((page - 1) * rows);
+		cmsArticleExample.setLimit(rows);
+		cmsArticleExample.setOrderByClause(desc ? "orders desc" : "orders asc");
+		List<CmsArticle> articles = cmsArticleService.getMapper().selectByExample(cmsArticleExample);
+
+		// 分页对象
+		long total = cmsArticleService.getMapper().countByExample(cmsArticleExample);
+		Paginator paginator = new Paginator(total, page, rows, request);
+
+		model.addAttribute("articles", articles);
+		model.addAttribute("paginator", paginator);
+		return "/manage/article/list";
+	}
+	
+	/**
+	 * 新增get
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.GET)
+	public String add() {
+		return "/manage/article/add";
+	}
+	
+	/**
+	 * 新增post
+	 * @param cmsArticle
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.POST)
+	public String add(CmsArticle cmsArticle, Model model) {
+		long time = System.currentTimeMillis();
+		cmsArticle.setCtime(time);
+		cmsArticle.setOrders(time);
+		int count = cmsArticleService.getMapper().insertSelective(cmsArticle);
+		model.addAttribute("count", count);
+		_log.info("新增记录id为:{}", cmsArticle.getArticleId());
+		return "redirect:/manage/article/list";
+	}
+
+	/**
+	 * 删除
+	 * @param ids
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/delete/{ids}",method = RequestMethod.GET)
+	public String delete(@PathVariable("ids") String ids, Model model) {
+		int count = cmsArticleService.deleteByPrimaryKeys(ids);
+		model.addAttribute("count", count);
+		return "redirect:/manage/article/list";
+	}
+	
+	/**
+	 * 修改get
+	 * @param id
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
+	public String update(@PathVariable("id") int id, Model model) {
+		CmsArticle article = cmsArticleService.getMapper().selectByPrimaryKey(id);
+		model.addAttribute("article", article);
+		return "/manage/article/update";
+	}
+	
+	/**
+	 * 修改post
+	 * @param id
+	 * @param cmsArticle
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+	public String update(@PathVariable("id") int id, CmsArticle cmsArticle, Model model) {
+		int count = cmsArticleService.getMapper().updateByPrimaryKeySelective(cmsArticle);
+		model.addAttribute("count", count);
+		model.addAttribute("id", id);
+		return "redirect:/manage/article/list";
+	}
+
+
+}

+ 133 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/manage/CmsCategoryController.java

@@ -0,0 +1,133 @@
+package com.zheng.cms.web.controller.manage;
+
+import com.zheng.cms.web.controller.BaseController;
+import com.zheng.cms.dao.model.CmsCategory;
+import com.zheng.cms.dao.model.CmsCategoryExample;
+import com.zheng.cms.service.CmsCategoryService;
+import com.zheng.common.util.Paginator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 类目控制器
+ * Created by shuzheng on 2016/11/14.
+ */
+@Controller
+@RequestMapping("/manage/category")
+public class CmsCategoryController extends BaseController {
+
+	private final static Logger _log = LoggerFactory.getLogger(CmsCategoryController.class);
+	
+	@Autowired
+	private CmsCategoryService cmsCategoryService;
+
+	/**
+	 * 列表
+	 * @param page 当前页码
+	 * @param rows 每页条数
+	 * @param desc 降序排序
+	 * @param request
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping("/list")
+	public String list(
+			@RequestParam(required = false, defaultValue = "1", value = "page") int page,
+			@RequestParam(required = false, defaultValue = "20", value = "rows") int rows,
+			@RequestParam(required = false, defaultValue = "false", value = "desc") boolean desc,
+			HttpServletRequest request, Model model) {
+
+		// 数据列表
+		CmsCategoryExample cmsCategoryExample = new CmsCategoryExample();
+		cmsCategoryExample.setOffset((page - 1) * rows);
+		cmsCategoryExample.setLimit(rows);
+		cmsCategoryExample.setOrderByClause(desc ? "orders desc" : "orders asc");
+		List<CmsCategory> categorys = cmsCategoryService.getMapper().selectByExample(cmsCategoryExample);
+
+		// 分页对象
+		long total = cmsCategoryService.getMapper().countByExample(cmsCategoryExample);
+		Paginator paginator = new Paginator(total, page, rows, request);
+
+		model.addAttribute("categorys", categorys);
+		model.addAttribute("paginator", paginator);
+		return "/manage/category/list";
+	}
+	
+	/**
+	 * 新增get
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.GET)
+	public String add() {
+		return "/manage/category/add";
+	}
+	
+	/**
+	 * 新增post
+	 * @param cmsCategory
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.POST)
+	public String add(CmsCategory cmsCategory, Model model) {
+		long time = System.currentTimeMillis();
+		cmsCategory.setCtime(time);
+		cmsCategory.setOrders(time);
+		int count = cmsCategoryService.getMapper().insertSelective(cmsCategory);
+		model.addAttribute("count", count);
+		_log.info("新增记录id为:{}", cmsCategory.getCategoryId());
+		return "redirect:/manage/category/list";
+	}
+
+	/**
+	 * 删除
+	 * @param ids
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/delete/{ids}",method = RequestMethod.GET)
+	public String delete(@PathVariable("ids") String ids, Model model) {
+		int count = cmsCategoryService.deleteByPrimaryKeys(ids);
+		model.addAttribute("count", count);
+		return "redirect:/manage/category/list";
+	}
+	
+	/**
+	 * 修改get
+	 * @param id
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
+	public String update(@PathVariable("id") int id, Model model) {
+		CmsCategory category = cmsCategoryService.getMapper().selectByPrimaryKey(id);
+		model.addAttribute("category", category);
+		return "/manage/category/update";
+	}
+	
+	/**
+	 * 修改post
+	 * @param id
+	 * @param cmsCategory
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+	public String update(@PathVariable("id") int id, CmsCategory cmsCategory, Model model) {
+		int count = cmsCategoryService.getMapper().updateByPrimaryKeySelective(cmsCategory);
+		model.addAttribute("count", count);
+		model.addAttribute("id", id);
+		return "redirect:/manage/category/list";
+	}
+
+}

+ 131 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/manage/CmsCommentController.java

@@ -0,0 +1,131 @@
+package com.zheng.cms.web.controller.manage;
+
+import com.zheng.cms.web.controller.BaseController;
+import com.zheng.cms.dao.model.CmsComment;
+import com.zheng.cms.dao.model.CmsCommentExample;
+import com.zheng.cms.service.CmsCommentService;
+import com.zheng.common.util.Paginator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 评论控制器
+ * Created by shuzheng on 2016/11/14.
+ */
+@Controller
+@RequestMapping("/manage/comment")
+public class CmsCommentController extends BaseController {
+
+	private final static Logger _log = LoggerFactory.getLogger(CmsCommentController.class);
+	
+	@Autowired
+	private CmsCommentService cmsCommentService;
+
+	/**
+	 * 列表
+	 * @param page 当前页码
+	 * @param rows 每页条数
+	 * @param desc 降序排序
+	 * @param request
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping("/list")
+	public String list(
+			@RequestParam(required = false, defaultValue = "1", value = "page") int page,
+			@RequestParam(required = false, defaultValue = "20", value = "rows") int rows,
+			@RequestParam(required = false, defaultValue = "true", value = "desc") boolean desc,
+			HttpServletRequest request, Model model) {
+
+		// 数据列表
+		CmsCommentExample cmsCommentExample = new CmsCommentExample();
+		cmsCommentExample.setOffset((page - 1) * rows);
+		cmsCommentExample.setLimit(rows);
+		cmsCommentExample.setOrderByClause(desc ? "comment_id desc" : "comment_id asc");
+		List<CmsComment> comments = cmsCommentService.getMapper().selectByExample(cmsCommentExample);
+
+		// 分页对象
+		long total = cmsCommentService.getMapper().countByExample(cmsCommentExample);
+		Paginator paginator = new Paginator(total, page, rows, request);
+
+		model.addAttribute("comments", comments);
+		model.addAttribute("paginator", paginator);
+		return "/manage/comment/list";
+	}
+	
+	/**
+	 * 新增get
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.GET)
+	public String add() {
+		return "/manage/comment/add";
+	}
+	
+	/**
+	 * 新增post
+	 * @param cmsComment
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.POST)
+	public String add(CmsComment cmsComment, Model model) {
+		cmsComment.setCtime(System.currentTimeMillis());
+		int count = cmsCommentService.getMapper().insertSelective(cmsComment);
+		model.addAttribute("count", count);
+		_log.info("新增记录id为:{}", cmsComment.getArticleId());
+		return "redirect:/manage/comment/list";
+	}
+
+	/**
+	 * 删除
+	 * @param ids
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/delete/{ids}",method = RequestMethod.GET)
+	public String delete(@PathVariable("ids") String ids, Model model) {
+		int count = cmsCommentService.deleteByPrimaryKeys(ids);
+		model.addAttribute("count", count);
+		return "redirect:/manage/comment/list";
+	}
+	
+	/**
+	 * 修改get
+	 * @param id
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
+	public String update(@PathVariable("id") int id, Model model) {
+		CmsComment comment = cmsCommentService.getMapper().selectByPrimaryKey(id);
+		model.addAttribute("comment", comment);
+		return "/manage/comment/update";
+	}
+	
+	/**
+	 * 修改post
+	 * @param id
+	 * @param cmsComment
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+	public String update(@PathVariable("id") int id, CmsComment cmsComment, Model model) {
+		int count = cmsCommentService.getMapper().updateByPrimaryKeySelective(cmsComment);
+		model.addAttribute("count", count);
+		model.addAttribute("id", id);
+		return "redirect:/manage/comment/list";
+	}
+
+}

+ 133 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/controller/manage/CmsTagController.java

@@ -0,0 +1,133 @@
+package com.zheng.cms.web.controller.manage;
+
+import com.zheng.cms.web.controller.BaseController;
+import com.zheng.cms.dao.model.CmsTag;
+import com.zheng.cms.dao.model.CmsTagExample;
+import com.zheng.cms.service.CmsTagService;
+import com.zheng.common.util.Paginator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 标签控制器
+ * Created by shuzheng on 2016/11/14.
+ */
+@Controller
+@RequestMapping("/manage/tag")
+public class CmsTagController extends BaseController {
+
+	private final static Logger _log = LoggerFactory.getLogger(CmsTagController.class);
+	
+	@Autowired
+	private CmsTagService cmsTagService;
+
+	/**
+	 * 列表
+	 * @param page 当前页码
+	 * @param rows 每页条数
+	 * @param desc 降序排序
+	 * @param request
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping("/list")
+	public String list(
+			@RequestParam(required = false, defaultValue = "1", value = "page") int page,
+			@RequestParam(required = false, defaultValue = "20", value = "rows") int rows,
+			@RequestParam(required = false, defaultValue = "false", value = "desc") boolean desc,
+			HttpServletRequest request, Model model) {
+
+		// 数据列表
+		CmsTagExample cmsTagExample = new CmsTagExample();
+		cmsTagExample.setOffset((page - 1) * rows);
+		cmsTagExample.setLimit(rows);
+		cmsTagExample.setOrderByClause(desc ? "orders desc" : "orders asc");
+		List<CmsTag> tags = cmsTagService.getMapper().selectByExample(cmsTagExample);
+
+		// 分页对象
+		long total = cmsTagService.getMapper().countByExample(cmsTagExample);
+		Paginator paginator = new Paginator(total, page, rows, request);
+
+		model.addAttribute("tags", tags);
+		model.addAttribute("paginator", paginator);
+		return "/manage/tag/list";
+	}
+	
+	/**
+	 * 新增get
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.GET)
+	public String add() {
+		return "/manage/tag/add";
+	}
+	
+	/**
+	 * 新增post
+	 * @param cmsTag
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/add", method = RequestMethod.POST)
+	public String add(CmsTag cmsTag, Model model) {
+		long time = System.currentTimeMillis();
+		cmsTag.setCtime(time);
+		cmsTag.setOrders(time);
+		int count = cmsTagService.getMapper().insertSelective(cmsTag);
+		model.addAttribute("count", count);
+		_log.info("新增记录id为:{}", cmsTag.getTagId());
+		return "redirect:/manage/tag/list";
+	}
+
+	/**
+	 * 删除
+	 * @param ids
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/delete/{ids}",method = RequestMethod.GET)
+	public String delete(@PathVariable("ids") String ids, Model model) {
+		int count = cmsTagService.deleteByPrimaryKeys(ids);
+		model.addAttribute("count", count);
+		return "redirect:/manage/tag/list";
+	}
+	
+	/**
+	 * 修改get
+	 * @param id
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
+	public String update(@PathVariable("id") int id, Model model) {
+		CmsTag tag = cmsTagService.getMapper().selectByPrimaryKey(id);
+		model.addAttribute("tag", tag);
+		return "/manage/tag/update";
+	}
+	
+	/**
+	 * 修改post
+	 * @param id
+	 * @param cmsTag
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+	public String update(@PathVariable("id") int id, CmsTag cmsTag, Model model) {
+		int count = cmsTagService.getMapper().updateByPrimaryKeySelective(cmsTag);
+		model.addAttribute("count", count);
+		model.addAttribute("id", id);
+		return "redirect:/manage/tag/list";
+	}
+
+}

+ 47 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/jms/defaultQueueMessageListener.java

@@ -0,0 +1,47 @@
+package com.zheng.cms.web.jms;
+
+import com.zheng.cms.dao.model.User;
+import com.zheng.cms.service.UserService;
+import net.sf.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.TextMessage;
+
+/**
+ * MQ消费者
+ * Created by ZhangShuzheng on 2016/11/24.
+ */
+public class defaultQueueMessageListener implements MessageListener {
+
+	private static Logger _log = LoggerFactory.getLogger(defaultQueueMessageListener.class);
+
+	@Autowired
+	ThreadPoolTaskExecutor threadPoolTaskExecutor;
+
+    @Autowired
+    UserService userService;
+
+	public void onMessage(final Message message) {
+		// 使用线程池多线程处理
+		threadPoolTaskExecutor.execute(new Runnable() {
+			public void run() {
+				TextMessage textMessage = (TextMessage) message;
+				try {
+					String text = textMessage.getText();
+                    JSONObject json = JSONObject.fromObject(text);
+					User user = (User) JSONObject.toBean(json, User.class);
+                    userService.getMapper().insertSelective(user);
+					_log.info("zheng-cms-web接收到:{}", text);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+}

+ 58 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/schedule/LongSchedule.java

@@ -0,0 +1,58 @@
+package com.zheng.cms.web.schedule;
+
+import com.taobao.pamirs.schedule.IScheduleTaskDealSingle;
+import com.taobao.pamirs.schedule.TaskItemDefine;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
+/**
+ * 测试任务
+ * Created by zhangshuzheng on 2016/11/14.
+ */
+public class LongSchedule implements IScheduleTaskDealSingle<Long> {
+
+    /**
+     * 执行单个任务
+     * @param item Object
+     * @param ownSign 当前环境名称
+     * @throws Exception
+     */
+    @Override
+    public boolean execute(Long item, String ownSign) throws Exception {
+        System.out.println("执行任务:" + item);
+        return true;
+    }
+
+    /**
+     * 根据条件,查询当前调度服务器可处理的任务
+     * @param taskParameter 任务的自定义参数
+     * @param ownSign 当前环境名称
+     * @param taskItemNum 当前任务类型的任务队列数量
+     * @param taskItemList 当前调度服务器,分配到的可处理队列
+     * @param eachFetchDataNum 每次获取数据的数量
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Long> selectTasks(String taskParameter, String ownSign, int taskItemNum, List<TaskItemDefine> taskItemList, int eachFetchDataNum) throws Exception {
+        List<Long> allDrawList = new ArrayList<>();
+        allDrawList.add(System.currentTimeMillis());
+        return allDrawList;
+    }
+
+    /**
+     * 获取任务的比较器,只有在NotSleep模式下需要用到
+     * @return
+     */
+    @Override
+    public Comparator<Long> getComparator() {
+        return new Comparator<Long>() {
+            public int compare(Long o1, Long o2) {
+                return o1.compareTo(o2);
+            }
+        };
+    }
+
+}

+ 63 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/schedule/MapSchedule.java

@@ -0,0 +1,63 @@
+package com.zheng.cms.web.schedule;
+
+import com.taobao.pamirs.schedule.IScheduleTaskDealSingle;
+import com.taobao.pamirs.schedule.TaskItemDefine;
+
+import java.util.*;
+
+/**
+ * 测试任务
+ * Created by zhangshuzheng on 2016/11/14.
+ */
+public class MapSchedule implements IScheduleTaskDealSingle<Map> {
+
+    /**
+     * 执行单个任务
+     * @param item Object
+     * @param ownSign 当前环境名称
+     * @throws Exception
+     */
+    @Override
+    public boolean execute(Map item, String ownSign) throws Exception {
+        System.out.println("执行任务:" + item);
+        return true;
+    }
+
+    /**
+     * 根据条件,查询当前调度服务器可处理的任务
+     * @param taskParameter 任务的自定义参数
+     * @param ownSign 当前环境名称
+     * @param taskItemNum 当前任务类型的任务队列数量
+     * @param taskItemList 当前调度服务器,分配到的可处理队列
+     * @param eachFetchDataNum 每次获取数据的数量
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map> selectTasks(String taskParameter, String ownSign, int taskItemNum, List<TaskItemDefine> taskItemList, int eachFetchDataNum) throws Exception {
+        List<Map> allDrawList = new ArrayList<>();
+        Map map = new HashMap();
+        map.put("ID", System.currentTimeMillis());
+        allDrawList.add(map);
+        return allDrawList;
+    }
+
+    /**
+     * 获取任务的比较器,只有在NotSleep模式下需要用到
+     * @return
+     */
+    @Override
+    public Comparator<Map> getComparator() {
+        return new Comparator<Map>() {
+            public int compare(Map o1, Map o2) {
+                Long l1 = (Long) o1.get("ID");
+                Long l2 = (Long) o2.get("ID");
+                return l1.compareTo(l2);
+            }
+            public boolean equals(Object obj) {
+                return this == obj;
+            }
+        };
+    }
+
+}

+ 8 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/task/TestTask.java

@@ -0,0 +1,8 @@
+package com.zheng.cms.web.task;
+
+/**
+ * Created by ZhangShuzheng on 2016/11/1.
+ */
+public interface TestTask {
+	public void test();
+}

+ 19 - 0
zheng-cms/zheng-cms-web/src/main/java/com/zheng/cms/web/task/impl/TestTaskImpl.java

@@ -0,0 +1,19 @@
+package com.zheng.cms.web.task.impl;
+
+import com.zheng.cms.web.task.TestTask;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by ZhangShuzheng on 2016/11/1.
+ */
+@Component
+public class TestTaskImpl implements TestTask {
+
+	@Scheduled(cron = "0 0/1 * * * ?")
+	@Override
+	public void test() {
+		System.out.println("Task");
+	}
+
+}

+ 1 - 1
zheng-cms/zheng-cms-web/src/main/resources/applicationContext-activemq.xml

@@ -35,7 +35,7 @@
 	</bean>
 
 	<!-- 消费者 -->
-	<bean id="defaultQueueMessageListener" class="com.zheng.cms.jms.defaultQueueMessageListener"/>
+	<bean id="defaultQueueMessageListener" class="com.zheng.cms.web.jms.defaultQueueMessageListener"/>
 	<bean id="jmsContainer"  class="org.springframework.jms.listener.DefaultMessageListenerContainer">
 		<property name="connectionFactory" ref="connectionFactory"/>
 		<property name="destination" ref="defaultQueueDestination"/>

+ 1 - 1
zheng-cms/zheng-cms-web/src/main/resources/springMVC-servlet.xml

@@ -20,7 +20,7 @@
 			<!-- 非拦截路径 -->
 			<mvc:exclude-mapping path="/manage/login"/>
 			<!-- 拦截器对象 -->
-			<bean id="manageInterceptor" class="com.zheng.cms.Interceptor.ManageInterceptor"/>
+			<bean id="manageInterceptor" class="com.zheng.cms.web.Interceptor.ManageInterceptor"/>
 		</mvc:interceptor>
 	</mvc:interceptors>