Java Spring3WebMVC-@Controller方法()pre&;通过注释的后处理功能

Java Spring3WebMVC-@Controller方法()pre&;通过注释的后处理功能,java,spring,spring-mvc,Java,Spring,Spring Mvc,我希望能够做到以下几点: @Controller public class MyController { @RequestMapping(value="/someurl", method=RequestMethod.GET) @PreProcess @PostProcess public String doStuff(ModelMap map) { //do stuff return "someurl"; } }

我希望能够做到以下几点:

@Controller    
public class MyController {

    @RequestMapping(value="/someurl", method=RequestMethod.GET)
    @PreProcess
    @PostProcess
    public String doStuff(ModelMap map) {
        //do stuff
        return "someurl";
    }

}
@预处理
@后处理
是任意命名的注释

我一直在寻找一个有效的例子,但我找不到任何。我已经研究了AOP和
@Aspect
注释的使用,但我发现它相当复杂。我正在尝试做的一个工作示例将非常好

我在过去体验过SpringSecurity,但这并不是我所需要的,因为我需要定制处理,几乎是我想要的任何东西

我知道这个功能在.NETMVC中是可用的。希望它也能在春天上市


非常感谢您的帮助或指点。

您可以使用注释方法来在控制器方法之前执行方法。或者使用

带有
@modeldattribute的示例

@Controller    
public class MyController {

    @RequestMapping(value="/someurl", method=RequestMethod.GET)
    public String doStuff(@ModelAttribute("something") Something something, ModelMap map) {
        //do stuff
        // here you can do what you want with something it has been provided to you in the method parameters
        return "someurl";
    }

    @ModelAttribute("something")
    public Something something() {
        // do what you need
        return new Something();
    }
}

something()
方法将在每个具有
@RequestMapping
注释的方法之前被调用,因此在
doStuff()
方法之前被调用。

检查
@PostConstruct
@PreDestroy
这里您到底想触发pre和post什么?这些注释是指向将要执行的内容,还是方法本身是在某个内容之前执行和之后执行的?对于这种模糊性,我深表歉意。是的,pre和post注释将指向在调用/完成@Controller方法()之前和之后执行的内容。不是你所说的后者。非常感谢,这似乎奏效了。我所说的这些拦截器要应用到的url仅在应用程序上下文XML中可配置,对吗?据我所知,拦截器似乎只能通过XML应用于某些URL,而不能通过注释应用?你说得对,只有通过XML配置才能配置拦截器。也许在下一个版本中,他们将通过注释使之成为可能。然而,拦截器不仅可用于特定的url,您还可以全局使用它们。只是不要为它定义任何URL。例如,请参阅以下可全局定义的
localechangereceptor
,以便通过添加
?locale=fr
,可以将任何URL上的区域设置更改为法语。