فهرست منبع

还原web.xml父容器配置,子容器去掉applicationContext依赖,web层去掉事务注解,spring-mvc增加配置文件

luoshi 6 سال پیش
والد
کامیت
5dc3b22cc4

+ 0 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ArbitrateController.java

@@ -15,7 +15,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -156,7 +155,6 @@ public class ArbitrateController extends BaseExamController {
 
     @RequestMapping(value = "/back", method = RequestMethod.POST)
     @ResponseBody
-    @Transactional
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
     public JSONObject back(HttpServletRequest request, @RequestParam Integer historyId) {
         JSONObject obj = new JSONObject();

+ 0 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ExamController.java

@@ -9,7 +9,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -186,7 +185,6 @@ public class ExamController extends BaseExamController {
     }
 
     @RequestMapping("/exam/finish")
-    @Transactional
     @ResponseBody
     @RoleRequire(Role.SCHOOL_ADMIN)
     public void finished(HttpServletRequest request) {

+ 0 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/LibraryController.java

@@ -8,7 +8,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -95,7 +94,6 @@ public class LibraryController extends BaseExamController {
 
     @RequestMapping(value = "/back", method = RequestMethod.POST)
     @ResponseBody
-    @Transactional
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
     public JSONObject back(HttpServletRequest request, @RequestParam Integer id) {
         JSONObject obj = new JSONObject();

+ 0 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkGroupController.java

@@ -12,7 +12,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -263,7 +262,6 @@ public class MarkGroupController extends BaseExamController {
     }
 
     @RequestMapping("/delete")
-    @Transactional
     @RoleRequire(Role.SCHOOL_ADMIN)
     public String delete(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
             @RequestParam String subjectCode, @RequestParam Integer number) {
@@ -343,7 +341,6 @@ public class MarkGroupController extends BaseExamController {
 
     @SuppressWarnings("unchecked")
     @RequestMapping("/insert")
-    @Transactional
     @RoleRequire(Role.SCHOOL_ADMIN)
     public String insert(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
             @RequestParam String subjectCode, @RequestParam Integer number,

+ 3 - 5
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkerController.java

@@ -16,7 +16,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -160,7 +159,6 @@ public class MarkerController extends BaseExamController {
     }
 
     @RequestMapping(value = "/reset")
-    @Transactional
     @RoleRequire(Role.SCHOOL_ADMIN)
     public String delete(@RequestParam Integer id, Model model, RedirectAttributes redirectAttributes) {
         Marker marker = markerService.findById(id);
@@ -174,7 +172,6 @@ public class MarkerController extends BaseExamController {
 
     @RequestMapping(value = "/reset", method = RequestMethod.POST)
     @ResponseBody
-    @Transactional
     @RoleRequire(Role.SCHOOL_ADMIN)
     public JSONObject resetMarker(@RequestParam Integer id) {
         Marker marker = markerService.findById(id);
@@ -303,7 +300,8 @@ public class MarkerController extends BaseExamController {
     }
 
     @RequestMapping(value = "/import", method = RequestMethod.POST)
-    public String importFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes,@RequestParam String subjectCode) {
+    public String importFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes,
+            @RequestParam String subjectCode) {
         int examId = getSessionExamId(request);
         try {
             int successNum = 0;
@@ -352,7 +350,7 @@ public class MarkerController extends BaseExamController {
             log.error("Batch import marker error!", e);
             addMessage(redirectAttributes, "导入评卷员失败!失败信息:" + e.getMessage());
         }
-        return "redirect:" + "/admin/exam/marker?subjectCode="+subjectCode;
+        return "redirect:" + "/admin/exam/marker?subjectCode=" + subjectCode;
     }
 
     @RequestMapping(value = "/importUpdate", method = RequestMethod.POST)

+ 0 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/SubjectController.java

@@ -5,7 +5,6 @@ import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -37,7 +36,6 @@ public class SubjectController extends BaseExamController {
 
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @RoleRequire(Role.SCHOOL_ADMIN)
-    @Transactional
     public String save(HttpServletRequest request, ExamSubject subject, Model model) {
         ExamSubject previous = subjectService.find(getSessionExamId(request), subject.getCode());
         if (previous != null && StringUtils.isNotBlank(subject.getName())) {

+ 161 - 151
stmms-web/src/main/webapp/WEB-INF/spring-mvc.xml

@@ -1,152 +1,162 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
-	   xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
-	   xmlns:task="http://www.springframework.org/schema/task"
-	   xsi:schemaLocation="
-        http://www.springframework.org/schema/beans
-        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-        http://www.springframework.org/schema/context
-        http://www.springframework.org/schema/context/spring-context-3.0.xsd
-        http://www.springframework.org/schema/mvc
-        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
-        http://www.springframework.org/schema/task
-		 http://www.springframework.org/schema/task/spring-task-3.2.xsd">
-        
-	<import resource="applicationContext.xml"/>
-	
-	<!-- Handles HTTP GET requests for /static/** by efficiently serving 
-		up static resources in the ${webappRoot}/static/ directory -->
-	<mvc:resources mapping="/resources/**" location="/static/" order="0"/>
-	<mvc:resources mapping="/static/**" location="file:${app.home}/static/" order="0"/>
-	
-	<!-- 自动扫描包下的所有类,使其认为spring mvc的控制器 -->
-	<context:component-scan base-package="cn.com.qmth.stmms.common.controller,
-					  cn.com.qmth.stmms.admin,
-					  cn.com.qmth.stmms.api,
-					  cn.com.qmth.stmms.file,
-					  cn.com.qmth.stmms.mark,
-					  cn.com.qmth.stmms.monitor">
-		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
-		<context:include-filter type="annotation" expression="org.springframework.stereotype.Component" />
-	</context:component-scan>
-
-	<mvc:annotation-driven />
- 
-	<mvc:interceptors>
-		<mvc:interceptor>
-			<mvc:mapping path="/**" />
-			<mvc:exclude-mapping path="/resources/**"/>
-			<mvc:exclude-mapping path="/static/**"/>
-			<mvc:exclude-mapping path="/file/**"/>
-			<mvc:exclude-mapping path="/api/**"/>
-			<bean id="commonInterceptor" class="cn.com.qmth.stmms.common.interceptor.CommonInterceptor"></bean>
-		</mvc:interceptor>
-		<mvc:interceptor>
-			<mvc:mapping path="/admin/**" />
-			<bean id="adminInterceptor" class="cn.com.qmth.stmms.admin.interceptor.AdminInterceptor"></bean>
-		</mvc:interceptor>
-		<mvc:interceptor>
-			<mvc:mapping path="/admin/sys/**" />
-			<bean id="sysAdminInterceptor" class="cn.com.qmth.stmms.admin.interceptor.SysAdminInterceptor"></bean>
-		</mvc:interceptor>
-		<mvc:interceptor>
-			<mvc:mapping path="/admin/exam/**" />
-			<bean id="adminExamInterceptor" class="cn.com.qmth.stmms.admin.interceptor.AdminExamInterceptor"></bean>
-		</mvc:interceptor>
-		<mvc:interceptor>
-			<mvc:mapping path="/api/**" />
-			<bean id="apiInterceptor" class="cn.com.qmth.stmms.api.interceptor.ApiInterceptor"></bean>
-		</mvc:interceptor>
-		<mvc:interceptor>
-			<mvc:mapping path="/mark/**" />
-			<bean id="markInterceptor" class="cn.com.qmth.stmms.mark.interceptor.MarkInterceptor"></bean>
-		</mvc:interceptor>
-		<mvc:interceptor>
-			<mvc:mapping path="/**" />
-			<mvc:exclude-mapping path="/resources/**"/>
-			<mvc:exclude-mapping path="/static/**"/>
-			<mvc:exclude-mapping path="/file/**"/>
-			<mvc:exclude-mapping path="/api/**"/>
-			<bean id="methodInterceptor" class="cn.com.qmth.stmms.common.interceptor.MethodInterceptor"></bean>
-		</mvc:interceptor>
-	</mvc:interceptors>
-
-	<!-- <bean
-		class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
-		<property name="mediaTypes">
-			<map>
-				<entry key="atom" value="application/atom+xml" />
-				<entry key="html" value="text/html" />
-				<entry key="json" value="application/json" />
-			</map>
-		</property>
-		<property name="viewResolvers">
-			<list>
-				<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
-				<bean
-					class="org.springframework.web.servlet.view.InternalResourceViewResolver">
-					<property name="prefix" value="/WEB-INF/jsp/" />
-					<property name="suffix" value=".jsp" />
-					<property name="exposedContextBeanNames">
-						<list>
-							<value>properties</value>
-						</list>
-					</property>
-				</bean>
-			</list>
-		</property>
-		<property name="defaultViews">
-			<list>
-				<bean
-					class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
-			</list>
-		</property>
-	</bean> -->
-	
-	<!-- 视图文件解析配置 -->
-	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
-		<property name="prefix" value="/WEB-INF/views/"/>
-		<property name="suffix" value=".jsp"/>
-		<property name="exposedContextBeanNames">
-			<list>
-				<value>properties</value>
-			</list>
-		</property>
-	</bean>
-	<!-- Mapping exception to the handler view -->
-	<!-- <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
-		to /error.jsp -->
-	<!-- <property name="defaultErrorView" value="error"/> <property name="exceptionMappings"> 
-		<props> </props> </property> </bean> -->
-
-	<!-- 配置SpringMVC @ResponseBody和@RequestBody注解 -->
-	<bean
-		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
-		<property name="messageConverters">
-			<list>
-				<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
-				<ref bean="jsonHttpMessageConverter" />
-			</list>
-		</property>
-	</bean>
-
-	<bean id="jsonHttpMessageConverter"
-		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
-		<property name="supportedMediaTypes">
-			<list>
-				<value>application/json;charset=UTF-8</value>
-			</list>
-		</property>
-	</bean>
-	
-	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
-	<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" >
-		<property name="ignoreResourceNotFound" value="true" />
-		<property name="locations">
-			<list>
-				<value>/WEB-INF/application.properties</value>
-			</list>
-		</property>
-	</bean>
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+	   xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
+	   xmlns:task="http://www.springframework.org/schema/task"
+	   xsi:schemaLocation="
+        http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+        http://www.springframework.org/schema/context
+        http://www.springframework.org/schema/context/spring-context-3.0.xsd
+        http://www.springframework.org/schema/mvc
+        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
+        http://www.springframework.org/schema/task
+		 http://www.springframework.org/schema/task/spring-task-3.2.xsd">
+        
+	<!--  <import resource="applicationContext.xml"/>-->
+	
+	<!-- Handles HTTP GET requests for /static/** by efficiently serving 
+		up static resources in the ${webappRoot}/static/ directory -->
+	<mvc:resources mapping="/resources/**" location="/static/" order="0"/>
+	<mvc:resources mapping="/static/**" location="file:${app.home}/static/" order="0"/>
+	
+	<!-- 自动扫描包下的所有类,使其认为spring mvc的控制器 -->
+	<context:component-scan base-package="cn.com.qmth.stmms.common.controller,
+					  cn.com.qmth.stmms.admin,
+					  cn.com.qmth.stmms.api,
+					  cn.com.qmth.stmms.file,
+					  cn.com.qmth.stmms.mark,
+					  cn.com.qmth.stmms.monitor">
+		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
+		<context:include-filter type="annotation" expression="org.springframework.stereotype.Component" />
+	</context:component-scan>
+
+	<mvc:annotation-driven />
+ 
+	<mvc:interceptors>
+		<mvc:interceptor>
+			<mvc:mapping path="/**" />
+			<mvc:exclude-mapping path="/resources/**"/>
+			<mvc:exclude-mapping path="/static/**"/>
+			<mvc:exclude-mapping path="/file/**"/>
+			<mvc:exclude-mapping path="/api/**"/>
+			<bean id="commonInterceptor" class="cn.com.qmth.stmms.common.interceptor.CommonInterceptor"></bean>
+		</mvc:interceptor>
+		<mvc:interceptor>
+			<mvc:mapping path="/admin/**" />
+			<bean id="adminInterceptor" class="cn.com.qmth.stmms.admin.interceptor.AdminInterceptor"></bean>
+		</mvc:interceptor>
+		<mvc:interceptor>
+			<mvc:mapping path="/admin/sys/**" />
+			<bean id="sysAdminInterceptor" class="cn.com.qmth.stmms.admin.interceptor.SysAdminInterceptor"></bean>
+		</mvc:interceptor>
+		<mvc:interceptor>
+			<mvc:mapping path="/admin/exam/**" />
+			<bean id="adminExamInterceptor" class="cn.com.qmth.stmms.admin.interceptor.AdminExamInterceptor"></bean>
+		</mvc:interceptor>
+		<mvc:interceptor>
+			<mvc:mapping path="/api/**" />
+			<bean id="apiInterceptor" class="cn.com.qmth.stmms.api.interceptor.ApiInterceptor"></bean>
+		</mvc:interceptor>
+		<mvc:interceptor>
+			<mvc:mapping path="/mark/**" />
+			<bean id="markInterceptor" class="cn.com.qmth.stmms.mark.interceptor.MarkInterceptor"></bean>
+		</mvc:interceptor>
+		<mvc:interceptor>
+			<mvc:mapping path="/**" />
+			<mvc:exclude-mapping path="/resources/**"/>
+			<mvc:exclude-mapping path="/static/**"/>
+			<mvc:exclude-mapping path="/file/**"/>
+			<mvc:exclude-mapping path="/api/**"/>
+			<bean id="methodInterceptor" class="cn.com.qmth.stmms.common.interceptor.MethodInterceptor"></bean>
+		</mvc:interceptor>
+	</mvc:interceptors>
+
+	<!-- <bean
+		class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
+		<property name="mediaTypes">
+			<map>
+				<entry key="atom" value="application/atom+xml" />
+				<entry key="html" value="text/html" />
+				<entry key="json" value="application/json" />
+			</map>
+		</property>
+		<property name="viewResolvers">
+			<list>
+				<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
+				<bean
+					class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+					<property name="prefix" value="/WEB-INF/jsp/" />
+					<property name="suffix" value=".jsp" />
+					<property name="exposedContextBeanNames">
+						<list>
+							<value>properties</value>
+						</list>
+					</property>
+				</bean>
+			</list>
+		</property>
+		<property name="defaultViews">
+			<list>
+				<bean
+					class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
+			</list>
+		</property>
+	</bean> -->
+	
+	<!-- 视图文件解析配置 -->
+	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+		<property name="prefix" value="/WEB-INF/views/"/>
+		<property name="suffix" value=".jsp"/>
+		<property name="exposedContextBeanNames">
+			<list>
+				<value>properties</value>
+			</list>
+		</property>
+	</bean>
+	<!-- Mapping exception to the handler view -->
+	<!-- <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
+		to /error.jsp -->
+	<!-- <property name="defaultErrorView" value="error"/> <property name="exceptionMappings"> 
+		<props> </props> </property> </bean> -->
+
+	<!-- 配置SpringMVC @ResponseBody和@RequestBody注解 -->
+	<bean
+		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
+		<property name="messageConverters">
+			<list>
+				<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
+				<ref bean="jsonHttpMessageConverter" />
+			</list>
+		</property>
+	</bean>
+
+	<bean id="jsonHttpMessageConverter"
+		class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
+		<property name="supportedMediaTypes">
+			<list>
+				<value>application/json;charset=UTF-8</value>
+			</list>
+		</property>
+	</bean>
+	
+	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
+	
+	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
+		<property name="ignoreResourceNotFound" value="true" />
+		<property name="locations">
+			<list>
+				<value>/WEB-INF/application.properties</value>
+			</list>
+		</property>
+	</bean>
+
+	<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" >
+		<property name="ignoreResourceNotFound" value="true" />
+		<property name="locations">
+			<list>
+				<value>/WEB-INF/application.properties</value>
+			</list>
+		</property>
+	</bean>
 </beans> 

+ 0 - 2
stmms-web/src/main/webapp/WEB-INF/web.xml

@@ -10,12 +10,10 @@
 		<session-timeout>300</session-timeout>
 	</session-config>
 
-	<!--  
 	<listener>
 		<description>spring监听器</description>
 		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 	</listener>
-	-->
 	<listener>
 		<description>Introspector缓存清除监听器</description>
 		<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>