所以我有一个控制器映射到/ App / Health并对功能进行了一些更改,将其移动到自己的项目中以允许将其作为依赖项包含,而不必手动设置它。
然而,一些服务已经设置好了,如果可能的话,我希望新控制器只在路径没有被旧路径映射时才自行创建。
现有:
@RestController
@RequestMapping("/App")
public class ApplicationController {
@RequestMapping(value="/Health", method=RequestMethod.GET)
public String health() {
return "Ok!";
}
}
新:
@RestController
public class HealthCheck {
@RequestMapping("/App/Health")
public String health() {
return "Ok!";
}
}
所以,鉴于这两个包存在两个不同的包中,是否可以制作" New"可选地实例化"现有"没有按'?吨
答案 0 :(得分:0)
如果你将你的代码作为一个lib分发,那么使用package-scan(我猜这就是问题)是很奇怪的。应用程序应该控制它创建的bean。
所以你可以通过XML或Java配置手动设置bean,如果有一个控制器来完成这项工作,就不要为lib创建一个bean。
答案 1 :(得分:0)
事实证明,上面的代码正常运作。
因为第一个定义了RequestMethod.GET而新的不定义,这导致新的映射到所有方法除了已经特定绑定的任何方法。
我添加了另一个端点,它映射到RequestMethod.GET的所有内容并返回一个错误,导致新的一个映射到“Everything available”的映射到GET(如果现有的那个没有),或者Nothing如果现有的那个。