标签: applicationcontext

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

我有一个用例,我需要在ApplicationContext加载时只在bean中调用一个(非静态)方法.如果我使用MethodInvokingFactoryBean吗?或者我们有更好的解决方案?

作为旁注,我使用ConfigContextLoaderListener在Web应用程序中加载应用程序上下文.并希望,如果bean'A'被实例化,只需调用methodA()一次.

怎么能很好地做到这一点?

spring initialization startup applicationcontext

228
推荐指数
5
解决办法
29万
查看次数

BeanFactory与ApplicationContext

我是Spring Framework的新手,我一直在玩它并将一些示例应用程序放在一起,以便评估Spring MVC以用于即将到来的公司项目.到目前为止,我非常喜欢我在Spring MVC中看到的内容,看起来非常容易使用,并鼓励您编写非常适合单元测试的类.

就像练习一样,我正在为我的一个示例/测试项目编写一个主要方法.我不清楚的一件事是BeanFactory和之间的确切差异ApplicationContext- 适合在哪些条件下使用?

我理解ApplicationContext扩展BeanFactory,但如果我只是编写一个简单的主方法,我是否需要ApplicationContext提供额外的功能?究竟是什么类型的额外功能ApplicationContext提供了?

除了回答"我应该在main()方法中使用哪个"之外,对于在这种情况下我应该使用哪种实现,是否有任何标准或指南?我的main()方法是否应该依赖于bean /应用程序配置以XML格式编写 - 这是一个安全的假设,还是我将用户锁定为特定的东西?

这个答案是否会在网络环境中发生变化 - 如果我的任何课程需要了解Spring,他们是否更有可能需要ApplicationContext

谢谢你的帮助.我知道很多这些问题可能在参考手册中得到了解答,但是我很难找到这两个界面的明确细分以及每个界面的优点/缺点而不通过精细梳齿阅读手册.

spring managed-bean applicationcontext

221
推荐指数
12
解决办法
22万
查看次数

如何在Eclipse中更改动态Web项目的上下文根?

我在Eclipse中开发了一个动态Web项目.现在我可以使用以下URL通过浏览器访问它:

http://localhost:8080/MyDynamicWebApp
Run Code Online (Sandbox Code Playgroud)

现在我想将访问URL更改为

http://localhost:8080/app
Run Code Online (Sandbox Code Playgroud)

我从项目"属性| Web项目设置|上下文根"中更改了上下文根.

但它没有用.Web应用程序仍具有之前的访问URL.我已经在Tomcat上重新部署了应用程序,重新启动了Tomcat并完成了应该完成的所有操作,但访问URL与之前的相同.

我发现该server.xml文件没有附加WAR文件.那么Tomcat如何确定我的Web应用程序的上下文根server.xml并允许我通过该URL访问应用程序?

eclipse contextroot java-ee applicationcontext

201
推荐指数
7
解决办法
30万
查看次数

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

应用程序上下文和Web应用程序上下文有什么区别?

我知道WebApplicationContext用于面向Spring MVC架构的应用程序?

我想知道ApplicationContextMVC应用程序有什么用?什么样的豆类定义ApplicationContext

spring spring-mvc applicationcontext

180
推荐指数
4
解决办法
14万
查看次数

当Spring xml配置文件存在时,它找不到它

我试图在Spring中创建我的第一个bean但是在加载上下文时遇到了问题.我在src/main/resources中有一个bean的配置XML文件.

我收到以下IOException:

线程"main"中的异常org.springframework.beans.factory.BeanDefinitionStoreException:从类路径资源[src/main/resources/beans.xml]解析XML文档的IOException; 嵌套异常是

java.io.FileNotFoundException:类路径资源[src/main/resources/beans.xml]无法打开,因为它不存在

但我不明白,因为我做了以下代码测试:

File f = new File("src/main/resources/beans.xml");
System.out.println("Exist test: " + f.exists());
Run Code Online (Sandbox Code Playgroud)

这让我真实!resources在类路径中.怎么了?

configuration spring javabeans applicationcontext

67
推荐指数
6
解决办法
21万
查看次数

如何将钩子添加到应用程序上下文初始化事件?

对于常规的Servlet,我想你可以声明一个上下文监听器,但对于Spring MVC,Spring会让这更容易吗?

此外,如果我定义一个上下文监听器然后需要访问我servlet.xml或中定义的bean,我applicationContext.xml将如何访问它们?

model-view-controller spring applicationcontext

63
推荐指数
3
解决办法
12万
查看次数

如何注入ApplicationContext本身

我想把自己注入ApplicationContext一个bean.

就像是

public void setApplicationContext(ApplicationContect context) {
  this.context = context;
}
Run Code Online (Sandbox Code Playgroud)

那可能在春天吗?

java spring applicationcontext

60
推荐指数
3
解决办法
8万
查看次数

如何在使用@RunWith和@ContextConfiguration注释的jUnit测试中访问Spring上下文?

我有以下测试课

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/services-test-config.xml"})
public class MySericeTest {

  @Autowired
  MyService service;
...

}
Run Code Online (Sandbox Code Playgroud)

是否可以通过services-test-config.xml其中一种方法以编程方式访问?喜欢:

ApplicationContext ctx = somehowGetContext();
Run Code Online (Sandbox Code Playgroud)

junit spring spring-test applicationcontext

54
推荐指数
3
解决办法
10万
查看次数

在测试类弄脏之后,如何重置Spring JUnit应用程序上下文?

我正在使用Spring 3.1.1.RELEASE,JUnit 4.8.1和HSQL 2.7.7内存数据库.我有一个注释为的测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-trainingSessionServiceContext.xml" })
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
public class TrainingSessionServiceTest  
{
Run Code Online (Sandbox Code Playgroud)

问题是,当我运行"mvn clean test"时,似乎所有测试类在上述类失败后运行,因为内存数据库被销毁而不是重新创建.我得到的错误就像

org.hibernate.exception.SQLGrammarException: user lacks privilege or object not found: CB_ORGANIZATION" type="javax.persistence.PersistenceException">javax.persistence.PersistenceException:   org.hibernate.exception.SQLGrammarException: user lacks privilege or object not found: CB_ORGANIZATION
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1360)
    at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:817)
    at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:771)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
    at $Proxy46.find(Unknown Source)
    at org.mainco.subco.organization.repo.OrganizationDaoImpl.findById(OrganizationDaoImpl.java:77)
    at org.mainco.subco.pd.repo.LinkDaoTest.createDummyLink(LinkDaoTest.java:686)
    at org.mainco.subco.pd.repo.LinkDaoTest.testSaveLink(LinkDaoTest.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
Run Code Online (Sandbox Code Playgroud)

以下是我如何设置测试类(在上面的类之后运行),它给出了例外...

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml" …
Run Code Online (Sandbox Code Playgroud)

junit spring hsqldb applicationcontext

54
推荐指数
1
解决办法
5万
查看次数

什么是NoSuchBeanDefinitionException以及如何解决它?

NoSuchBeanDefinitionException在Spring中解释以下关于异常的内容:

  • 这是什么意思?
  • 它会在什么条件下抛出?
  • 我该怎样预防呢?

本文旨在对NoSuchBeanDefinitionException使用Spring的应用程序中出现的问题进行全面的问答.

java spring applicationcontext

51
推荐指数
1
解决办法
6万
查看次数