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