Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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
Java 在SpringMVC中的应用程序上下文中设置对象_Java_Spring_Spring Mvc_Applicationcontext - Fatal编程技术网

Java 在SpringMVC中的应用程序上下文中设置对象

Java 在SpringMVC中的应用程序上下文中设置对象,java,spring,spring-mvc,applicationcontext,Java,Spring,Spring Mvc,Applicationcontext,我有一个实用程序类,我想在SpringMVC中启动应用程序时初始化它。所以我正在实现初始化bean。现在,我必须为相同的对象创建一个对象,并将其保存在应用程序范围中,以便我可以在任何地方访问相同的实例。但我没办法弄到这个 以下是我的尝试: public class DashboardInitializer implements InitializingBean, ApplicationContextAware { private ApplicationContext mApplicat

我有一个实用程序类,我想在SpringMVC中启动应用程序时初始化它。所以我正在实现初始化bean。现在,我必须为相同的对象创建一个对象,并将其保存在应用程序范围中,以便我可以在任何地方访问相同的实例。但我没办法弄到这个

以下是我的尝试:

public class DashboardInitializer implements InitializingBean, ApplicationContextAware {

    private ApplicationContext mApplication;

    @Override
    public void afterPropertiesSet() throws Exception {

        initializeConfigurationUtil();

        ConfigurationUtil util = ConfigurationUtil.getInstance();

        /* Save the util to application scope */

    }

    @Override
    public void setApplicationContext(ApplicationContext pApplication) throws BeansException {
        this.mApplication = pApplication;
    }
}

这种方法正确吗?或者有更好的方法吗?

您可以在初始化应用程序后立即对方法使用@postconstruct注释来执行业务逻辑。可以使用配置中的占位符和java字段上的@Value注释简单地注入属性。

您可以在初始化应用程序后立即对方法使用@postconstruct注释来执行业务逻辑。属性可以简单地使用配置中的占位符和java字段上的@Value注释进行注入。

我认为您需要稍微简化一下

您希望在加载应用程序上下文后初始化实用程序类,但也希望util类位于应用程序上下文中

似乎util类在应用程序上下文中配置了一些依赖项对象,而util类又是应用程序上下文中某些类的依赖项

如果可以以bean的形式表达这些依赖关系,util是一个bean,它将其依赖关系bean注入其中,而需要util的bean将util注入其中,Spring将确保首先初始化util的所有依赖关系,然后初始化util,然后将其注入需要util的类中

您不应尝试向初始化的上下文添加内容。。这是不可能的

如果无法将util及其依赖项表示为bean,也可以采用以下方法: 1.在应用程序上下文中将util配置为bean,添加一个不执行任何操作的默认构造函数。因此,将创建此对象,但在加载spring上下文时不会初始化它

在您拥有的ApplicationContextAware实现中,修改setApplicationContext方法。从上下文中获取前面配置的utilbean

您现在可以初始化并执行要执行util实例的一些代码,只需确保不要尝试将bean重新分配给其他util实例


希望这能有所帮助。

我想你需要简化一下

您希望在加载应用程序上下文后初始化实用程序类,但也希望util类位于应用程序上下文中

似乎util类在应用程序上下文中配置了一些依赖项对象,而util类又是应用程序上下文中某些类的依赖项

如果可以以bean的形式表达这些依赖关系,util是一个bean,它将其依赖关系bean注入其中,而需要util的bean将util注入其中,Spring将确保首先初始化util的所有依赖关系,然后初始化util,然后将其注入需要util的类中

您不应尝试向初始化的上下文添加内容。。这是不可能的

如果无法将util及其依赖项表示为bean,也可以采用以下方法: 1.在应用程序上下文中将util配置为bean,添加一个不执行任何操作的默认构造函数。因此,将创建此对象,但在加载spring上下文时不会初始化它

在您拥有的ApplicationContextAware实现中,修改setApplicationContext方法。从上下文中获取前面配置的utilbean

您现在可以初始化并执行要执行util实例的一些代码,只需确保不要尝试将bean重新分配给其他util实例


希望这有帮助。

我检查了@PostConstruct。在创建控制器对象后,将为每个控制器调用此函数。然而,我的逻辑不是特定于任何控制器的,而是特定于应用程序的。我的ConfigurationUtil是跨控制器使用的,所以我必须在配置应用程序之后初始化它。因此,AfterPropertieSet似乎是理想的选择。但我不知道如何在应用程序上下文中存储它的实例,以便在任何地方都使用相同的实例。我正在考虑使用ServletContextAware。对于我来说,这是正确的选择吗?PostConstruct没有指定给控制器我检查了@PostConstruct。在创建控制器对象后,将为每个控制器调用此函数。然而,我的逻辑不是特定于任何控制器的,而是特定于应用程序的。我的ConfigurationUtil是跨控制器使用的,所以我必须在配置应用程序之后初始化它。因此,AfterPropertieSet似乎是理想的选择。但我不知道如何在应用程序上下文中存储它的实例,以便在任何地方都使用相同的实例。我正在考虑使用ServletContextAware。这是我的p的正确选择吗
目的?控制器未指定后压缩