我是Spring框架的初学者。
在我的情况下,会话可以通过以下方式过期
->成功注销(显式注销)
->会话超时(隐式注销)
每当某些用户登录时,我都会在数据库中执行DML(记录插入),并且每当用户会话超时(隐式注销)时,我都希望在数据库中执行DML(记录删除)。
我的问题是,春季会议期间有什么办法告诉我们。因此,我可以在会话到期前执行自定义事件。
提前致谢
是的,您可以使用SessionDestroyedEvent做到这一点。
@Component
public class SessionEndedListener implements ApplicationListener<SessionDestroyedEvent> {
@Override
public void onApplicationEvent(SessionDestroyedEvent event)
{
for (SecurityContext securityContext : event.getSecurityContexts())
{
Authentication authentication = securityContext.getAuthentication();
YourPrincipalClass user = (YourPrincipalClass) authentication.getPrincipal();
// do something
}
}
}
并在web.xml中:
<listener>
<listener-class>
org.springframework.security.web.session.HttpSessionEventPublisher
</listener-class>
</listener>
常规注销和会话超时都会触发此事件。
问题内容: 只需要您对Spring声明式事务管理的专家意见。这是我的设置: DAO层是使用Spring JdbcTemplate的普通JDBC(没有Hibernate等) 服务层是具有声明式事务的POJO,如下所示- 通过上述设置,一切正常。但是,当我说时,我在日志文件中看到错误消息。对于服务层中的所有get *方法,都会发生这种情况。 现在我的问题是: 答:我必须设置为只读吗?我所有的方法都是纯
我想在Spring Boot插件构建最终的WAR文件之前运行一个自定义操作。实际上,在通过Spring Boot将来自${project.build.directory}/${project.build.finalname}/WEB-INF/lib的一些JAR文件打包到WAR文件之前,我必须对它们进行模糊处理。 我可以对常规的WAR文件这样做,但是当Spring Boot Plugin重新打包应用
因此,我在中有两个方法和,只执行一个SQL请求。 和我的中的两个方法:和。 最佳实践是从服务层返回Dto,因此我们需要将实体解析为服务中的Dto。 我真的不想把整个映射留在(session),因为如果我在实体中添加一些字段,那么Mapstruct只会触发N+1个问题。 我想出的最好方法是将每个内部实体包含到方法中,并手动检查Mapstruct是否添加了一些新方法。(它比检查名字更快)例如: 但这并
这个虫子严重毁了我的一周。我试图创建一个交互式排行榜,其中有三个数组:1是图像,2是我以字符串形式编写的整数。我正在尝试创建一个keyPressed事件,它将使数字随着代表团队的图像而改变,因为他们在梯子上或下梯子,我有一个mousePressed事件来执行一个循环,将窗口恢复到它的原始状态。 我的问题是,当我尝试运行代码时,keyPressed事件不会执行,只有在我单击鼠标后才执行。然后图像会移
网站会话在脚本执行期间过期。我有4门课,有15-16种测试方法。而我使用测试中的数据作为一个套件来执行所有操作。xml。 场景:在用户登录后执行搜索 我使用以下条件 所以我的问题是: 是我的网站问题还是网络驱动问题? 为什么会话会在页面导航上获得注销?我已经尝试了和,但没有成功。 有没有人能给我一个这样的问题的线索?
null 有人知道解决这个问题的办法吗?提前感谢! 迈克尔