Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何在Google App Engine环境中为Springboot应用程序获取更新(测试)对象值?_Spring Boot_Google App Engine_Google Cloud Platform - Fatal编程技术网

Spring boot 如何在Google App Engine环境中为Springboot应用程序获取更新(测试)对象值?

Spring boot 如何在Google App Engine环境中为Springboot应用程序获取更新(测试)对象值?,spring-boot,google-app-engine,google-cloud-platform,Spring Boot,Google App Engine,Google Cloud Platform,我正在GCP环境上部署Springboot应用程序 在spring中创建了一个单例对象,我正在其他组件中更新该对象的值,而该更新不会反映在我自动连接该组件的任何其他地方 同样的逻辑也适用于Java环境,但不适用于Appengine环境 样本: 更新spring初始化bean @自动连线 试验 测试设置新数据(“临时”) 在另一个组件中获取相同的bean: @自动连线 试验 test.getNewData();//这是由上面的组件更新的,在这里我必须接收更新的值。但是得到旧的价值 请帮帮我。提前谢

我正在GCP环境上部署Springboot应用程序

在spring中创建了一个单例对象,我正在其他组件中更新该对象的值,而该更新不会反映在我自动连接该组件的任何其他地方

同样的逻辑也适用于Java环境,但不适用于Appengine环境

样本:

更新spring初始化bean

@自动连线 试验

测试设置新数据(“临时”)

在另一个组件中获取相同的bean:

@自动连线 试验

test.getNewData();//这是由上面的组件更新的,在这里我必须接收更新的值。但是得到旧的价值


请帮帮我。提前谢谢

正如您所说的,您正在尝试对Singleton对象使用自动关联,该对象是静态的。无论如何,这不应该起作用。您不能在Spring中自动连接静态字段,您需要为此编写自己的逻辑。其他一些帖子也讨论了这一点:


无论如何,对于在应用程序引擎中开发应用程序的最佳方式,完全不建议使用自动连线,正如您在

public void loadPropertiesFromDB(){MutablePropertySources existingPropertySources=((ConfigurableEnvironment)environment.)中看到的那样;PropertiesPropertySource dbPropertySource=newpropertiespropertysource(“dbPropertySource”,getPropertiesFromDB());existingPropertySources.addFirst(dbPropertySource);}这里,我试图在运行时使用端点(localhost:8080/reloadProp)重新加载数据库属性。更新:public void loadFromDB(){MutablePropertySources existingProps=((ConfigurableEnvironment)environment).getPropertySources();PropertiesPropertySource dbProp=新的PropertiesPropertySource(“dbProp”,getPropertiesFromDB());existingProps.addFirst(dbProp);}使用端点localhost:8080/reloadProp调用此方法,以在运行时访问最新的db prop。这将获取最新的db prop并在现有的prop源中更新。然后我将自动连接环境并获取在JVM中工作但不在Appengine(GCP)中的use Environment.getproperty(“key”)我知道你想自动关联一个环境对象。可能有很多原因不起作用。也许你可以在尝试自动关联时尝试更具体一些,并使用限定符。也许你的Spring上下文中还有更多的环境对象。如果你能在本地自动关联,这可能意味着该对象不是来自Singleton类。下面是一个关于如何使用限定符的示例:。在这里,您可以找到另一篇具有类似问题(不同)的帖子关于你的。请记住,自动连线不是最佳的,也不建议像我之前所说的那样在AppEngine上使用。你能告诉我,在GCP环境中如何处理bean吗?例如在Spring术语中:它将在onload中创建并在容器中维护,如果有人更新该bean,它将反映该bean使用的位置。这种行为是不在GCP环境中工作。