gpt4 book ai didi

java - Web 应用程序的 ApplicationContext 为 null

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:57 26 4
gpt4 key购买 nike

我们正在构建一个 Web 应用程序,在启动 HttpServer 后,我尝试将一些项目从数据库加载到内存中。我知道如何利用服务层的最好方法是使用以下类:

import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class ApplicationContextProvider implements ApplicationContextAware {
private static ApplicationContext applicationContext;

public static ApplicationContext getApplicationContext() {
return applicationContext;
}

public void setApplicationContext (ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
}

它一直为空。

public static void main(String[] args) throws IOException {
final HttpServer server = HttpServer.createSimpleServer(".", 8181);

WebappContext ctx = new WebappContext("Socket", "/");

//enable annotation configuration
ctx.addContextInitParameter("contextClass", "org.springframework.web.context.support.AnnotationConfigWebApplicationContext");
ctx.addContextInitParameter("contextLocation", "com.production");

//allow spring to do all of it's stuff
ctx.addListener("org.springframework.web.context.ContextLoaderListener");

//serve static assets
StaticHttpHandler staticHttpHandler = new StaticHttpHandler("src/main/web");
server.getServerConfiguration().addHttpHandler(staticHttpHandler, "/");

//deploy
ctx.deploy(server);

//NULL
WorkflowService workflowService = (WorkflowService) ApplicationContextProvider.getApplicationContext().getBean("workflowService");

server.start();

服务类用@Service注释,我的配置类是...

@Configuration
@ComponentScan(basePackages = {
"com.production"
})
@PropertySource(value= {
"classpath:/application.properties",
"classpath:/environment-${MYAPP_ENVIRONMENT}.properties"
})
@EnableJpaRepositories("com.fettergroup.production.repositories")
@EnableTransactionManagement
public class Config {

...

@Bean
public ApplicationContextProvider applicationContextProvider() {
return new ApplicationContextProvider();
}
}

我相信这个使用 grizzly WebContext 的应用程序的某些内容是问题的根源。但我不确定该怎么办。我已经做了一些谷歌搜索,看来我正在使用的解决方案应该有效......

最佳答案

contextLocation 初始化参数应为 contextConfigLocation

关于java - Web 应用程序的 ApplicationContext 为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15772328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com