在本文中,我们将给您介绍关于获取Spring应用程序上下文的详细内容,并且为您解答如何获取spring上下文的相关问题,此外,我们还将为您提供关于java–Maven项目中的每个模块都应该有自己的Sp
在本文中,我们将给您介绍关于获取Spring应用程序上下文的详细内容,并且为您解答如何获取spring上下文的相关问题,此外,我们还将为您提供关于java – Maven项目中的每个模块都应该有自己的Spring应用程序上下文吗?、java – Spring应用程序上下文加载顺序、java – 从string加载spring应用程序上下文、java – 使用Web应用程序上下文的Spring上下文层次结构的知识。
本文目录一览:- 获取Spring应用程序上下文(如何获取spring上下文)
- java – Maven项目中的每个模块都应该有自己的Spring应用程序上下文吗?
- java – Spring应用程序上下文加载顺序
- java – 从string加载spring应用程序上下文
- java – 使用Web应用程序上下文的Spring上下文层次结构
获取Spring应用程序上下文(如何获取spring上下文)
有没有办法在Spring应用程序中静态/全局地请求ApplicationContext的副本?
假设主类启动并初始化了应用程序上下文,它是否需要通过调用堆栈将其向下传递给需要它的任何类,或者是否有一种方法可以让类要求先前创建的上下文?(我认为必须是单身人士?)
答案1
小编典典如果需要访问容器的对象是容器中的Bean,则只需实现BeanFactoryAware或ApplicationContextAware接口。
如果容器外部的对象需要访问该容器,那么我已经对弹簧容器使用了标准的GoF单例模式。这样,你的应用程序中只有一个单例,其余都是容器中的所有单例bean。
java – Maven项目中的每个模块都应该有自己的Spring应用程序上下文吗?
目前我只在Web项目中使用Spring应用程序上下文文件.但是,由于我正在为文本格式化等创建一般的pupose项目,它将库(例如freemarker)封装到实际应用程序中,我不喜欢我必须在Web项目的Spring应用程序上下文文件中指定库依赖配置.
问题是,为每个模块分配一个单独的Spring应用程序上下文文件,然后在我使用它们的项目中导入上下文文件是否正确.这是正确的方法吗,还是有更好的方法?
我感兴趣的是当我使用XML文件而不是JavaConfig时如何解决这个问题.
解决方法
web.xml中
<!-- Context Configuration locations for Spring XML files --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:/applicationContext-resources.xml classpath:/applicationContext-dao.xml classpath:/applicationContext-service.xml classpath*:/applicationContext.xml /WEB-INF/applicationContext*.xml /WEB-INF/cxf-servlet.xml /WEB-INF/security.xml </param-value> </context-param>
在此示例中,所有applicationContext.xml都是从模块导入的.
此示例代码是从AppFuse应用程序复制的,请查看此应用程序的配置方式.使用AppFuse构建示例多模块Spring应用程序:
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modular-spring-archetype -DarchetypeVersion=3.0.0 -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=http://oss.sonatype.org/content/repositories/appfuse
参考文献:
> Splitting applicationContext to multiple files
> Appfuse Quickstart
java – Spring应用程序上下文加载顺序
在我的web.xml上,我有一个“springmvc”servlet声明(它有一个相应的springmvc-servlet.xml)
dispatcherServletservlet-mapping>
servlet-mapping>
我也有我常用的applicationContext.xml文件.
首先加载哪一个? springmvc-servlet.xml还是applicationContext.xml?
我问这个的原因是每当我放置< mvc:annotation-driven /> applicationContext.xml中的元素,我收到严重上下文错误.但是当我将该元素放在springmvc-servlet.xml中时,我的Web应用程序运行正常.
有什么想法吗?
在另一个网络应用程序中,我有< mvc:annotation-driven />在applicationContext.xml中,它运行正常.
附录:
我注意到aop:config的存在与mvc:annotation-driven冲突
< mvc:annotation-driven />必须在dispatcher-servlet.xml中,因为它属于应用程序的Web部分.
java – 从string加载spring应用程序上下文
谢谢,
解决方法
String contextxML = ...; Resource resource = new ByteArrayResource(contextxML.getBytes()); GenericXmlApplicationContext springContext = new GenericXmlApplicationContext(); springContext.load(resource); Object myBean = springContext.getBean("myBean"); ...
雷扎
java – 使用Web应用程序上下文的Spring上下文层次结构
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
现在有一些模块应该使用ContextSingletonbeanfactoryLocator在运行时加载.因此每个模块都有自己的ClasspathXmlApplicationContext.所以一个模块可以引用XmlWebApplicationContext中的bean,它应该被附加到XmlWebApplicationContext以形成一个上下文层次结构,其中XmlWebApplicationContext应该扮演父类的角色,并且该模块的ClasspathXmlApplicationContext是子上下文的角色.不幸的是我无法连接他们使用
<beans> <bean id="moduleContext"https://www.jb51.cc/tag/ssp/" target="_blank">sspathXmlApplicationContext"> <constructor-arg> ... </constructor-arg> <constructor-arg ref="parentContext" /> </bean> </beans>
因为我没有找到没有办法给WebApplicationContext的名称为parentContext.我忽略了一些东西,还是有一种更好/更容易的方式来实现不同的方式?
解决方法
@Inject private XmlWebApplicationContext context; @Inject private List<ClasspathXmlApplicationContext> childs; @postconstruct public void refreshContext() { for(ClasspathXmlApplicationContext appContext : childs) { appContext.setParent(context); } context.refresh(); }
您也可以通过使用接口InitializingBean和ApplicationContextAware来进行注释.
编辑:childs是按类型自动连线的,所以Spring将注入作为ClasspathXmlApplicationContext实例的所有bean.
关于获取Spring应用程序上下文和如何获取spring上下文的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于java – Maven项目中的每个模块都应该有自己的Spring应用程序上下文吗?、java – Spring应用程序上下文加载顺序、java – 从string加载spring应用程序上下文、java – 使用Web应用程序上下文的Spring上下文层次结构等相关内容,可以在本站寻找。
本文标签: