小编cru*_*do6的帖子

如何通过参数值拆分Spring MVC请求映射

在Spring MVC 3中,我想使用两个不同的控制器类处理相同的url - 取决于url参数的值.@RequestMapping注释甚至有这样的字段:params,我认为以下是两个不同的映射(我在类级别使用映射):

@RequestMapping(value = "/myurl", params = "name=val1")
Run Code Online (Sandbox Code Playgroud)

@RequestMapping(value = "/myurl", params = "name=val2")
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.对于/ myurl控制器已映射的第二种情况,Spring抛出异常(通过第一种情况).

是否有一些通过参数拆分请求映射的准确解决方案?可能正在扩展@RequestMapping或使用代理作为控制器并根据参数调用不同的控制器......有什么想法吗?

更新 这可以工作但只在方法级别,而不是在类级别...这将:

@Controller
@RequestMapping(value = "/myurl")
public class Class123 {

    @RequestMapping(value = {"edit.htm"}, params = "src=1")
    public String open1(Map<String, Object> map) throws Exception {....}

    @RequestMapping(value = {"edit.htm"}, params = "src=2")
    public String open2(Map<String, Object> map) throws Exception {....}
}
Run Code Online (Sandbox Code Playgroud)

这不会:

@Controller
@RequestMapping(value = "/myurl", params = "src=1")
public class Class123_1 {

    @RequestMapping(value = …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

11
推荐指数
1
解决办法
6676
查看次数

使用slf4j进行日志记录时的spring aspectj切入点

我正在使用spring 3.0.6.我的应用程序有很多添加日志的地方(slf4j).假设我需要在每个严重错误上添加一些函数 - 我会更好地捕获每次调用错误级别的日志记录,并且可以在它之后执行工作 - 使用异常消息发送邮件到支持,或者像那样smth - 而不是手动添加代码应用程序中的所有位置.

我创建了以下课程:

@Aspect
public class LoggingWrapper {

    @Pointcut("execution (* org.slf4j.Logger.error(..))")
    public void logError() {
    }

    @AfterReturning("logError()")
    public void afterError() {
        //System.out.println("LOGERROR ASPECT AFTER");
        //send email...
    }
}
Run Code Online (Sandbox Code Playgroud)

在春季配置:

<aop:aspectj-autoproxy />
<bean id="loggingWrapper" class="com.app.services.LoggingWrapper"/>
Run Code Online (Sandbox Code Playgroud)

Aspect在我的课程中运作良好,但对于org.slf4j.Logger - 什么都没发生

aop spring aspectj slf4j

4
推荐指数
1
解决办法
3151
查看次数

标签 统计

spring ×2

aop ×1

aspectj ×1

java ×1

slf4j ×1

spring-mvc ×1