是否可以定义整个春季项目的范围,例如session
,request
等?
我有一个spring项目,该项目仅用作Web服务来为其他项目提供服务,其他项目共同构成了应用程序。在Web服务项目中,有许多端点,必要时可以通过来自其他项目的soapMessages访问所有端点。
我想实现的是,这个Web服务项目每次响应其客户时,都应立即关闭连接。我找到了以下解决方案,但它们并不是解决此问题的真正方法:
在我添加的web.xml文件中
<session-config>
<session-timeout>10</session-timeout>
</session-config>
但这并没有按照我的意愿进行,因为它每10分钟关闭一次所有会话。
我创建了.htaccess
文件并添加了
<IfModule mod_headers.c>
Header set Connection close
</IfModule>
显然,Tomcat
甚至没有对此进行评估,您只能在服务器的全局范围内设置这些属性,这些属性不是特定于项目的,而是应用于该服务器中的所有应用程序。
通过这种方式,我知道在每次请求时关闭连接并重新打开它会降低性能。
答案 0 :(得分:0)
每次在API上收到请求时,都可以使用尝试资源。您可以使用try-with-resource
打开会话,并将该会话用于整个流程,然后在响应之后,该会话将随作用域自动关闭。
例如:
try (Session session = sessionFactory.openSession()) {
Response resp = service.doSomething(session);
return resp;
}