今天,如果我想公开我的自定义执行器endpoint,我必须在application.properties
中添加以下配置
management.endpoints.web.exposure.include=info,health,myAwesomeActuator
@Component
@Endpoint(id = "myAwesomeActuator")
public class MyAwesomeActuator {
@ReadOperation
public String test() {
return "Hello, from MyAwesomeActuator";
}
}
如果不添加上述配置,则Spring Boot默认只公开/healt
和/info
endpoint
是否有任何方法,我可以标记我的执行器默认暴露?
这样做是出于安全考虑。某些endpoint可能过于“易受攻击”而无法在生产中暴露。
对于开发,可以通过将
management.endpoint.web.exposure.include=*
另一个选择是分析属性的值,并在执行器实际启动之前“以编程方式”添加endpoint。根据Spring Boot版本,这里有许多可能的方法。
我找到了这个描述选项的SO线程。
一个有趣的选项是编写一个环境后处理器,它将分析属性并用您的自定义值重写,在SO线程中也提到了这个选项。
如何在环境后处理器中使用属性的示例可以在这里看到(同样来自SO线程)
问题内容: 我有一个定义结构的快速框架: 但是,我似乎无法从导入该库的另一个项目中使用隐式成员明智的初始化程序。错误是“ CollectionTO”无法初始化,因为它没有可访问的初始化程序。也就是说,它没有为默认的隐式成员明智的初始化程序提供public关键字。 我必须像这样添加自己的初始化方法: …但是我宁愿不知道是否还有其他人知道的方法? 问题答案: 引用手册: “结构类型的默认成员明智的初始
问题内容: 如果您定义如下界面 您可以在任何代码段中编写如下 那么equals方法从何而来,接口是否还扩展了超类Object?,如果确实如此,接口如何扩展类? 假设让该接口扩展超类Object,那么如果您看到为什么像Set这样的集合接口定义了equals()和hashCode()方法呢?所有类都扩展了Object类,因此,如果您在Object类中存在的接口中定义任何抽象方法,则实现该接口的人无需实
问题内容: 我将实体添加到数据库中,并且工作正常。但是,当我检索列表时,会得到旧实体,直到取消取消部署应用程序并再次重新部署它之后,才会显示添加的新实体。这意味着默认情况下会缓存我的实体吗?但是,我没有在persistence.xml或任何此类文件中进行任何用于缓存实体的设置。 我什至尝试调用flush(),refresh()和merge()。但它仍然仅显示旧实体。我想念什么吗?请帮我。 问题答案
我正在使用一个PHP库将一个文件上传到我的bucket中。我已经将ACL设置为public read write,它可以正常工作,但文件仍然是私有的。 我发现如果我把被授权人改成所有人,文件就会公开。我想知道的是,如何将bucket中所有对象的默认grante设置为“Everyone”。或者有没有另一种默认公开文件的解决方案? 我使用的代码如下:
Vaadin 7.6.2 BeanitemContainer
问题内容: 第二个命令是否将当前路径添加为另一个搜索路径? 用冒号分隔多个路径是否正确? 默认情况下,当前路径不是始终在ClassPath中,因此不需要显式指定吗? 谢谢。 问题答案: 从Oracle的页面上设置类路径: 默认的类路径是当前目录。设置CLASSPATH变量或使用命令行选项将 覆盖 默认值,因此,如果要在搜索路径中包括当前目录,则必须包括“。”。在新设置中。 使用了Windows和类