0

我正在寻找一种解决方案,以便在 Spring 3 应用程序中的包上进行特定映射。

我有正常的映射,像这样:

@Controller
public class Home {

    @RequestMapping(value ="/")
    public void home() {
        ...
    }
}

还有一个是这样的:

@Controller
@RequestMapping(value ="/api")
public class ApiResource {

    @RequestMapping(value ="/resource")
    public void home() {
         ...
    }
}

问题是:我有很多资源映射到/api上下文。

有什么方法可以告诉 Spring 包中的所有类com.example.api都可以在/api上下文中访问?或者我不需要为这个 api@RequestMapping(value = "/api")在每个类上添加的东西?Controller

我仍然需要使用正常的上下文,在"/*"另一个Controllers.

4

2 回答 2

0

是的,您可以在 applicationContext.xml 文件中执行以下操作:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
  <map>
     <entry key="/doSomething/**" value-ref="controllerA"/>
     <entry key="/other Thing/**" value-ref="controllerB"/>
  </map>
</property>
</bean>
于 2013-07-12T03:54:47.843 回答
0

好吧,我解决了为这种Controlleratapi包创建注释的问题。

    @ApiController
    public class ApiResource {

        @RequestMapping(value ="/resource")
        public void home() {
             ...
        }
    }

接口声明如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Controller
@RequestMapping(value = "/api")
public @interface ApiController {

}

并且工作得很好,将所有带有注释的请求映射@ApiController/api/*路径。

于 2013-07-12T22:21:54.863 回答