有没有办法在没有xml或属性文件的应用程序上下文中存储java变量/对象

我想在
Spring启动应用程序中的应用程序上下文中存储一个特定的变量(String或Object).但我不想使用xml或属性文件来存储它.

将有一个函数将数据存储在应用程序上下文中.我应该能够检索,修改,删除或添加更多数据.

基本上我想在初始化完成后将数据存储在应用程序上下文中.

最佳答案 如果您创建一个类并在其上放置@Configuration注释.并使用@Bean注释声明一些bean,它们不会成为应用程序托管bean吗?

@Configuration
public class ConfigurationClass {

@Bean("myString")
public String getString() {     
    return "Hello World";
}

然后在代码中的某处,您可以调用AnnotationConfigWebApplicationContext.getBean(“myString”)来获取您的bean.

现在可能存在并发问题(如davidxxx所述).为此你可以使用SimpleThreadScope.请看这个link,以了解如何将其注册到应用程序上下文以及放置该注释的位置(或谷歌).

或者如果你不想处理它,那么@Scope(“请求”)应该有所帮助.带有@Scope(“请求”)的bean将被创建用于任何新的传入请求,因此它的安全线程是安全的,因为它是在每次有新请求进入时创建的.

点赞