我的Spring Boot项目中有很多资源。我不希望给它们完全静态的路径,而希望使前缀(即/ attributes /,/ entitites /等)可配置。以前,我使用servlet.context-path设置,但我想在我的项目中为每个包设置不同的路径,并为静态资源设置不同的路径...
即包实体中的所有bean被映射到前缀为/{servlet.context-path}/entities/{RequestMapping}的上下文,包属性中的所有bean都映射到/{servlet.context-path}/attributes/{RequestMapping}在每个单个bean中指定静态前缀,例如/ attributes / static / list。
答案 0 :(得分:0)
如果您想为每个包添加前缀RequestMapping并且不想重复您的代码,则可以为每个包创建一个抽象控制器。例如:
@RequestMapping(value = "/entities", produces = {MediaType.APPLICATION_JSON_VALUE, MediaTypes.HAL_JSON_VALUE})
public abstract class EntitiesAbstractController {
}
@RequestMapping(value = "/attributes", produces = {MediaType.APPLICATION_JSON_VALUE, MediaTypes.HAL_JSON_VALUE})
public abstract class AttributesAbstractController {
}
然后在您的控制器中将有:
@RestController
public class ChildController extends EntitiesAbstractController{
@GetMapping(value="/PATH_SUFFIX_HERE")
//method here
}
因此,在您的servlet.context-path
旁边,您将拥有如下所示的端点:
/{servlet.context-path}/entities/PATH_SUFFIX_HERE
/{servlet.context-path}/attributes/PATH_SUFFIX_HERE