ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext
ctx.registerShutdownHook();
ctx.addApplicationListener(new ApplicationListener<ContextClosedEvent>() {
@Override
public void onApplicationEvent(ContextClosedEvent event) {
ServerTask task = (ServerTask) ctx.getBean("serverTask");
task.exit();
logger.error("系统关闭成功");
}
});
一开始使用destroy方法想通过这个来监听jvm 关闭事件,但是destroy方法之间是没有优先级的,所以无法处理。
通过这种监听ContextClosedEvent事件来保存缓存中的数据
这种方法只对于kill -15 方式结束进程有效,kill -9就别想了。
当然对于保存缓存数据最好通过其他方式,避免误操作。例如轮训配置文件等等。。。
分享到:
相关推荐
常见的监听器接口有HttpSessionListener、ServletRequestListener、ApplicationListener等。 二、登录次数监听器的实现 1. 创建监听器类:要记录登录次数,我们需要创建一个实现了javax.servlet....
- 数据持久化后的通知,比如保存用户信息后通知缓存更新。 - 安全管理,如用户登录、登出事件的处理。 - 系统状态变更通知,例如系统配置更新。 总结来说,SpringEventTest工程通过实例展示了Spring事件系统的...
- **UNDO表空间**:保存未提交的事务数据。 - **临时表空间(Temp)**:为临时表和索引提供存储。 - **用户定义的表空间**:存放应用程序数据和索引。 - **缓存(Cache)**: - **Java池**:用于存储Java对象和...
- 磁盘缓存:使用FileCache实现,将图片数据保存在设备的文件系统中。 三、主要功能 1. 异步加载:通过配置LoaderOptions,可以指定是否在后台加载图片。 2. 图片显示策略:支持占位图、加载失败后显示错误图片等...
- **Buffer Cache**:缓存数据块,提高读取性能。 - **Redo Log Buffer**:缓存重做日志。 - **Shared Pool**:存储共享SQL区域、数据字典缓存等。 - **Large Pool**:用于并行执行消息缓冲区、RMAN备份/恢复等...
例如,如果倒计时涉及到用户会话,可能需要将倒计时状态保存在数据库或Redis这样的分布式缓存中,以确保数据的一致性和可用性。 总的来说,"takeseat.rar"中的示例可能展示了如何在Spring Boot应用中实现倒计时的一...
7. **整合 JPA 保存数据**:使用 JPA 的 CRUD 操作(Create, Read, Update, Delete)进行数据操作,了解如何通过 @Autowired 注解注入 EntityManager 或者 JpaRepository 接口,执行增删改查操作。 8. **使用 ...
Oracle 9i还支持多种可选组件,如实时应用集群(Real Application Clusters)、智能代理(DBSNMP)、数据守护(DataGuard)等,这些组件提供了高可用性、故障恢复和性能优化等功能。 总结而言,Oracle 9i架构通过...
- SGA(System Global Area):包含Oracle运行时所需的所有共享内存结构,如数据缓冲区缓存、重做日志缓冲区、PGA等。 - PGA(Program Global Area):每个服务器进程或后台进程的私有内存区域。 - PMON(Process...
7. **整合JPA保存数据**:使用@Entity、@Repository、@Service和@Controller等注解,配合JPA的save()、find()等方法,可以实现对数据库的CRUD操作。 8. **使用JdbcTemplate**:JdbcTemplate是Spring提供的一个简单...
通过在后台与服务器进行少量数据交换,使网页能够动态更新,提高了用户体验。虽然名称中有XML,但实际中也可以使用JSON或其他格式的数据。 - **核心原理**:利用JavaScript的`XMLHttpRequest`对象异步地与服务器交换...
- **JdbcTemplate 保存数据**:除了 JPA,Spring Boot 也支持通过 JdbcTemplate 直接操作数据库。 - **配置类和静态资源处理**:Spring Boot 允许通过配置类配置扫描包和静态资源路径。 - **任务调度**:Spring Task...
- **启动Shiro**:在Spring的初始化方法中启动Shiro的SecurityManager,通常在Spring的ApplicationListener中进行。 **3. 角色与权限认证** - **角色(Role)**:在Shiro中,角色是用来分配权限的逻辑实体。通常...
- **数据传递**:通过Request对象在Servlet和JSP之间传递数据。 - **错误处理**:利用Exception页面和错误码进行异常处理和错误页面显示。 #### 七、安全性与性能优化 - **安全机制**:实现身份验证和授权,防止...
9. **Spring对象事件**:ApplicationEvent,ApplicationListener。 10. **事务管理**:Spring的@Transactional注解。 11. **日志管理**:Spring AOP进行系统日志记录。 12. **多对多关系操作**:Hibernate的...
// 使用CacheCallback, xUtils将为该请求缓存数据. = x.http().get(params, new Callback.CacheCallback() { private boolean hasError = false; private String result = null; @Override public boolean ...
- **Buffer Cache**:缓存数据块的区域。 - **Block Buffers Within Pools**:根据不同需求分配的缓冲池。 - **Subcaches for Each Block Size**:按块大小划分的子缓存。 - **Redo Log Buffer**:重做日志缓冲...
- **session**: 保存与单个用户会话相关的数据,从用户首次访问服务器到会话结束这段时间内有效。 - **request**: 包含了来自客户端的所有请求信息,如HTTP头、请求参数等。 - **response**: 用于向客户端发送响应的...
- **数据初始化**:在应用启动时,可以使用监听器(如 ServletContextListener)将数据加载到 `application` 对象中。 - **自定义分页**:通过配置或用户输入来确定每页显示的记录数,并据此查询数据库。 #### 33. ...
可以确定的一点是:BlobByteArrayType不可能逾越Blob天生的操作方式,原来是BlobByteArrayType数据类型本身具体数据访问的功能,它通过LobHandler将两次数据访问的动作隐藏起来,使Blob字段的操作在表现上和其他一般...