在使用Spring和JSF的Java Web项目中,我想要这样做:我希望有一个服务,在应用程序的第一次运行中,读取文件并将其数据放入变量。然后其他类可以读取该变量。
事实上,我希望该文件读取一次,之后我只查询数据,甚至通过链接和导航系统更改网页。
是否有Spring注释将类转换为这样的服务?我应该有一些XML配置文件来指定一个类作为服务吗?我不知道自己要做什么。我所知道的是它可以通过Spring完成,我可以从JSF组件中获取数据,但是如何?
我必须基于MVC这样做。
答案 0 :(得分:0)
您可以在首次调用该服务时加载它。或者,您可以添加ContextListener以在Web上下文启动时初始化服务,假设您正在部署到J2EE容器。或者,您可以使用初始化数据的init方法将该服务作为spring bean。或者任何一种不同的方式。您需要确定哪种方法最适合您的应用。
这是一个春天的例子:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="myService"
class="org.your.Service"
init-method="initializeData"></bean>
</beans>
您如何掌握该服务取决于您。您可以将数据静态存储在类中,也可以使用spring上下文来检索spring bean的这个单个实例。
生命周期方法的Spring文档:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-factory-lifecycle