Пока что я только что использовал Spring bean-компоненты, которые являются синглетонами, но теперь я хочу создать его там, где у меня есть scope="prototype"
bean-компонент, и создавать его экземпляры каждый раз, когда мне нужен новый экземпляр.
В контексте приложения у меня есть:
<bean id="processDoNewDocSearch_Spr" class="org.jadefalcon.demo.server.processes.ProcessDoNewDocSearch_Spr" scope="prototype"/>
Фактический класс тестовых бобов:
public class ProcessDoNewDocSearch_Spr {
@Resource(name = "savedsearchesService")
private SavedSearchesService savedsearchesService;
public ProcessDoNewDocSearch_Spr () {
}
public void Main () {
SavedSearches ss1 = savedsearchesService.get(3);
String test= ss1.getSearchname();
System.out.print( "Search name: " + test);
}
}
И я пытаюсь создать его таким образом и вызвать метод Main()
:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext ( "applicationContext.xml" );
ProcessDoNewDocSearch_Spr processDoNewDocSearch_Spr = ( ProcessDoNewDocSearch_Spr ) applicationContext.getBean ( "processDoNewDocSearch_Spr" );
processDoNewDocSearch_Spr.Main();
Это не работает, и я получаю некоторую ошибку о том, что файл WEB-INF / spring.properties отсутствует там, когда он есть, нет проблем с моим приложением, когда я удаляю все, что связано с классом ProcessDoNewDocSearch_Spr
мне интересно, если я делаю это правильно. Спасибо
РЕДАКТИРОВАТЬ: Вот сообщение об ошибке, которое я получаю:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring.properties] cannot be opened because it does not exist
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring.properties] cannot be opened because it does not exist
org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:78)
org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663)
org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:638)
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
РЕДАКТИРОВАТЬ: в корне моего приложения у меня есть файл .classpath и в нем, среди других записей,
<classpathentry kind="output" path="target/spring-hibernate-mysql/WEB-INF/applicationContext.xml"/>
<classpathentry kind="output" path="target/spring-hibernate-mysql/WEB-INF/spring.properties"/>
<classpathentry kind="src" path="src/main/webapp/WEB-INF/spring.properties"/>
<classpathentry kind="src" path="src/main/webapp/WEB-INF/applicationContext.xml"/>