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