让我说我将一个ApplicationContext
注入一个bean。然后,我可以发现所有使用RestController
注释的bean。我如何发现与所述bean关联的基本URL?
示例:
@Component
public class ServiceEnumerator {
@Autowired
private ApplicationContext context;
@PostConstruct
private void postConstruct() {
final Map<String, Object> beansToExpose = context.getBeansWithAnnotation(RestController.class);
}
}
答案 0 :(得分:0)
根据标准,需要在配置文件中设置基本URL(上下文根)。 不确定下面是否会帮助你....尝试在控制器中注入HttpServletRequest然后从控制器,将其传递给所需的服务
@Context
private HttpServletRequest httpRequest;
LOGGER.info("URL "+httpRequest.getRequestURI());
如果您的网址为http://localhost:8080/services/v1/hello ,将提供/ services / v1 / hello
答案 1 :(得分:0)
这可以通过从bean工厂检索bean定义并解析其元数据来实现。例如:
metadata.getAnnotationAttributes(
"org.springframework.web.bind.annotation.RestController")