Tag: applicationcontext

如何使用@RunWith和@ContextConfiguration注解的jUnittesting中访问Spring上下文?

我有以下的testing课 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"/services-test-config.xml"}) public class MySericeTest { @Autowired MyService service; … } 是否有可能通过编程方式访问services-test-config.xml中的某个方法? 喜欢: ApplicationContext ctx = somehowGetContext();

从另一个类的静态方法初始化Spring bean?

我试图创buildHibernate Validator bean,并遇到这个问题,从另一个类的静态工厂方法创build一个bean。 我发现Spring方法让我的Validator bean初始化(解决scheme在底部),但问题本身仍然没有解决。 此处使用Validator作为示例。 这是我如何在Java中创buildValidator实例 import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory; ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); 这是我尝试在applicationContext.xml中创buildbean的方式 <bean id="validatorFactory" class="javax.validation.ValidatorFactory" factory-method="javax.validation.Validation.buildDefaultValidatorFactory" /> <bean id="validator" class="javax.validation.Validator" factory-bean="validatorFactory" factory-method="getValidator" /> 我所理解的是,在“工厂方法”中,只能访问在“class”参数中定义的类中定义的静态方法。 由于方法buildDefaultValidatorFactory()是静态的,我不能创build一个Validation的实例,并将其作为validatorFactory的“factory-bean”,如下所示: <bean id="validation" class="javax.validation.Validation" /> <bean id="validatorFactory" class="javax.validation.ValidatorFactory" factory-bean="validation" factory-method="buildDefaultValidatorFactory" /> 这结束了错误消息 “检查具有指定名称的方法是否存在并且是非静态的 ” 问题是你如何在Spring的这种情况下创buildbean? 这就是我解决Validator问题的方法: <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>

Spring ApplicationListener没有收到事件

我有以下ApplicationListener: package org.mycompany.listeners; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextStartedEvent; public class MyApplicationListener implements ApplicationListener<ContextStartedEvent> { public MyApplicationListener() { super(); System.out.println("Application context listener is created!"); } /** * {@inheritDoc} */ public void onApplicationEvent(final ContextStartedEvent event) { System.out.println("Context '" + event.getApplicationContext().getDisplayName() + "' is started!"); } } 和下面的bean定义一样: <bean name="myApplicationListener" class="org.mycompany.listeners.MyApplicationListener" /> 我可以看到,bean是从构造函数打印的消息创build的,但是上下文启动事件从来没有收到。 我错过了什么?

如何注入ApplicationContext本身

我想将一个ApplicationContext本身注入到一个bean中。 就像是 public void setApplicationContext(ApplicationContect context) { this.context = context; } spring可能吗?

Spring确实存在时,找不到bean xmlconfiguration文件

我正在尝试在Spring中创build第一个bean,但加载上下文时遇到了问题。 我在src / main / resources中有一个bean的configurationXML文件。 我收到以下IOException: exception在线程“主”org.springframework.beans.factory.BeanDefinitionStoreException:IOException从类path资源parsingXML文档[src / main / resources / beans.xml]; 嵌套的exception是 java.io.FileNotFoundException:无法打开类path资源[src / main / resources / beans.xml],因为它不存在 但我不明白,因为我做了下面的代码testing: File f = new File("src/main/resources/beans.xml"); System.out.println("Exist test: " + f.exists()); 这让我真实! resources在类path中。 怎么了?

BeanFactory与ApplicationContext

我对Spring Framework相当陌生,为了评估Spring MVC在即将到来的公司项目中的使用,我一直在玩弄它,并将几个示例应用程序放在一起。 到目前为止,我真的很喜欢我在Spring MVC中看到的东西,看起来很容易使用,并鼓励您编写对unit testing非常友好的类。 就像一个练习,我正在为我的一个样本/testing项目写一个主要的方法。 我不清楚的一件事情是BeanFactory和ApplicationContext之间的确切区别 – 适用于哪些条件? 我明白, ApplicationContext扩展了BeanFactory ,但如果我只是写一个简单的主要方法,我是否需要ApplicationContext提供的额外function? ApplicationContext提供了什么样的额外function? 除了回答“我应该在main()方法中使用哪一个”之外,在这种情况下,我应该使用哪种实现方式,是否有任何标准或准则? 我的main()方法是否应该依赖于bean /应用程序configuration写成XML格式 – 这是一个安全的假设,还是我将用户locking到特定的东西? 这个答案在Web环境中是否发生了变化 – 如果我的任何类需要了解Spring,他们是否更需要ApplicationContext ? 谢谢你的帮助。 我知道很多这些问题都可能在参考手册中得到解答,但是我很难find这两个接口的明确分解以及每个接口的优缺点,而不需要通过手册上的细齿梳来阅读。

如何更改Eclipse中dynamicWeb项目的上下文根?

我在Eclipse中开发了一个dynamicWeb项目。 现在我可以通过浏览器使用以下URL访问它: http://localhost:8080/MyDynamicWebApp 现在我想将访问URL更改为 http://localhost:8080/app 我从项目“属性| Web项目设置|上下文根”更改了上下文根。 但它不工作。 networking应用程序仍然具有前面的访问URL。 我已经在Tomcat上重新部署了应用程序,重新启动了Tomcat并完成了所有应该完成的工作,但访问URL与之前的相同。 我发现没有附带WAR文件的server.xml文件。 那么Tomcat如何确定我的Web应用程序的上下文根是/MyDynamicWebApp ,并允许我通过该URL访问应用程序?

如何在bean初始化完成后调用方法?

我有一个用例,我只需要在Bean上调用一个(非静态)方法,一次在ApplicationContext加载。 没关系,如果我使用MethodInvokingFactoryBean? 或者我们有一个更好的解决scheme? 作为一个方面说明,我使用ConfigContextLoaderListener在Web应用程序中加载应用程序上下文。 而且,如果bean“A”被实例化,只需调用methodA()一次。 这怎么可以做得很好?

ApplicationContext和WebApplicationContext在Spring MVC中有什么区别?

可能重复: applicationContext和spring-servlet.xml在spring中的区别 应用程序上下文和Web应用程序上下文有什么区别? 我知道WebApplicationContext用于面向Spring MVC架构的应用程序吗? 我想知道在MVC应用ApplicationContext中使用ApplicationContext是什么? 在ApplicationContext中定义了什么样的bean?

什么是NoSuchBeanDefinitionException,如何解决?

请在Spring中解释有关NoSuchBeanDefinitionExceptionexception的以下内容: 这是什么意思? 在什么情况下会被抛出? 我怎样才能防止它? 这篇文章是针对使用Spring的应用程序中关于NoSuchBeanDefinitionException一个全面的问答。