我正在尝试为Spring启动应用程序编写自定义终结点。我编写了自定义终结点实现,如下所示。我没有包括额外的内容,如导入以减少代码的大小。
@Component
public class TestendPoint implements Endpoint<List<String>>{
public String getId() {
return "test";
}
public List<String> invoke() {
List<String> test= new ArrayList<String>();
test.add("Details 1");
test.add("Details 2");
return serverDetails;
}
public boolean isEnabled() {
return true;
}
public boolean isSensitive() {
return false;
}
}
编写完以上代码后,我重新启动了应用程序并尝试从/test访问endpoint。但是,endpoint不可用。以下是Spring Boot start应用程序。
@Configuration
@EnableAutoConfiguration
public class Application{
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
}
除此之外,我有一切运行Spring Boot致动器。我可以访问默认endpoint,如/info、/metrics等。
如果我在这里错过了什么,你能分享你的知识吗?我假设将加载自定义终结点类,而无需开发人员进行进一步的配置。
我已解决此问题。首先,我没有在应用程序类中包含@ComponentScan注释。或者我应该有@SpringBoot应用程序。当我添加注释时,我开始收到以下异常:
Caused by: java.lang.IllegalStateException: Could not evaluate condition owing to internal class not found. This can happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:50)
at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:92)
at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:79)
at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:62)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.isConditionMatch(ClassPathScanningCandidateComponentProvider.java:361)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.isCandidateComponent(ClassPathScanningCandidateComponentProvider.java:345)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:278)
... 18 more
Caused by: java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException
at org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$EmbeddedDatabaseCondition.getMatchOutcome(DataSourceAutoConfiguration.java:308)
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:129)
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.anyMatches(SpringBootCondition.java:112)
at org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$DatabaseCondition.getMatchOutcome(DataSourceAutoConfiguration.java:333)
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:44)
... 24 more
这是因为包装。我尝试过从根包中执行main类。我不确定这是不是spring boot应用程序中的一个错误,我会在他们的网站上记录一个JIRA。一旦我增加了一层包结构,它就开始正常工作了。
从spring-boot v1.3迁移到最新的spring-boot v2.2.4后,我们失去了在管理端口下拥有自定义endpoint的能力。 在我们将自定义endpoint声明为: 由于已从Spring引导执行器中删除了MvcEndpoint,现在我们需要执行以下操作: 不幸的是,我们失去了一个为自定义管理endpoint提供自定义根路径的选项(在它出现之前) 对于背部兼容性,我们仍然希望有默认
我已经激活了Spring执行器普罗米修斯endpont<代码>/执行器/普罗米修斯。通过增加对千分尺和执行器的依赖,并启用prometheus Endpont。我如何获得自定义度量?
我目前正在尝试将我们的prometheus lib迁移到spring Boot2.0.3版本。我们使用普罗米修斯的自定义路径,到目前为止,我们使用一个工作来确保这一点。由于信息endpoint和健康endpoint可能有自定义路径,因此使用。我尝试指定,但它仍然只能在下访问。 如何使用自定义路径或普罗米修斯? 我们使用以下库启用prometheus(我们的build.gradle的片段) 我们还使
我正在我的项目中使用模块,该模块公开了要监视的RESTendpointURL 默认情况下,仅公开 和 终结点。 根据我的使用案例,我正在通过< code > application . properties 文件自定义endpoint。 我想了解,Spring启动究竟在哪里为和创建实际的endpoint,以及它如何通过HTTP公开它们?
春奴B:好的。我从一个STS Spring Starter项目/Maven/Java8/Spring Boot2.0开始,并选择Web和致动器依赖项。它构建和运行良好,并转发到http://localhost:8080/acturet/health。我在主应用程序类中添加了一个“endpoint”,使其看起来像这样。
我正在编写一个定制的ThreadPoolExecutor,具有以下额外功能:- > 如果有理想的线程,并且随着任务的到来,将该任务分配到队列中,而不是将其添加到队列中。 如果所有线程(最大池大小)都忙,则在新任务到来时,使用RejectionHandler的reject方法将它们添加到队列中 我已经重写了线程池执行程序的java 1.5版本的执行方法。 新守则如下:- 遗留代码如下所示:- 现在正