ResquestMapping特定包

时间:2013-07-12 03:01:46

标签: spring spring-mvc

我正在寻找一种解决方案,以便在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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

好吧,我解决了Controller api这个 @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/*注释的请求映射到{{1}}路径。