摘要: 任务调度概述 以论坛为例,每天凌晨统计用户的积分排名,每隔30分钟对锁定到期的用户进行解锁。对别的应用来说,每月一日凌晨统计数据生成月报表,每隔半小时查询用户是否有快到期的待处理业务。 以上所举调度场景的核心都是以时间为关注点的调度,即在特定的时间点执行指定的操作。任务调度本身设计多线程并发、运行时 阅读全文
posted @ 2020-01-23 21:39 ELAIRS 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 随着信息量的增长,以及构建的应用系统越来越多样化、复杂化,缓存(Cache)对应用程序性能的优化变得越来越重要。将所需服务请求的数据放到缓存中,既可以提高应用程序的访问效率,又可以减少数据库服务器的压力,让用户得到更好地体验。 缓存的概念 缓存作为系统架构中提升性能的一种重要支撑技术,在企业级应用中 阅读全文
posted @ 2020-01-20 17:29 ELAIRS 阅读(137) 评论(0) 推荐(0) 编辑
摘要: Spring通过各种模板类降低了开发者使用各种数据持久化技术的难度。这些模板类是线程安全的,所以 多个DAO可以复用同一个模板实例而不会发生冲突。在使用模板类访问底层数据时,模板类需要绑定数据连接或者会话的资源,然而这些资源本身是非线程安全的,无法在同时刻被多个线程共享。虽然模板类是通过资源池获取数 阅读全文
posted @ 2020-01-18 14:44 ELAIRS 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 数据库事务 “一荣共荣,一损共损”这句话很能体现事务的思想,很多复杂的事务要分步进行,但它们组成了一个整体,要么整体生效,要么整体失效。这种思想反映到数据库上,就是多条SQL语句,要么全部成功,要么全部失败。例如转账就可以看做一个事务,假设A要给B转账100元,在事务开始后,A的账户减少了100元, 阅读全文
posted @ 2020-01-17 14:31 ELAIRS 阅读(146) 评论(0) 推荐(0) 编辑
摘要: Spring对DAO的支持 随着持久化技术的持续发展,Spring对多个持久化技术提供了集成支持,包括Hibernate、MyBatis、JPA、JDO;此外,还提供了一个简化JDBC API操作的Spring JDBC框架。Spring面向DAO指定了一个通用的异常体系,屏蔽具体持久化技术的异常, 阅读全文
posted @ 2020-01-17 13:21 ELAIRS 阅读(352) 评论(0) 推荐(0) 编辑
摘要: SpringAOP基础 AOP简介: AOP是Aspect Oriented Programing的简称,翻译为“面向切面编程”。它适用于具有横切逻辑的应用场合,如性能检测,访问控制,事务管理及日志记录。 在开发中,在业务层有时会涉及到事务的处理和性能检测,例如粗体是事务有关的代码,这些代码和业务逻 阅读全文
posted @ 2020-01-17 10:25 ELAIRS 阅读(113) 评论(0) 推荐(0) 编辑
摘要: DFS是一种深度优先的搜索思想,运用递归完成搜索,本质上也算是穷举思想的一类,可以通过剪枝进行优化。 DFS的核心是回溯和递归, 如果以迷宫为例,一般会指定走各个方向的顺序(例如先左再上再右再下)。从起点开始,进入DFS(),判断是否到达终点,再判断四个方向是否可走,如果有路,DFS会进入下一格,并 阅读全文
posted @ 2020-01-15 13:12 ELAIRS 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 简单了解Spring容器内部工作机制 Spring的AbstractApplicationContext是ApplicationContext的抽象实现类,该抽象类的refresh()方法定义了Spring容器在加载配置文件后的各项处理过程,这些处理过程清晰刻画了Spring容器启动时所执行的各项操 阅读全文
posted @ 2020-01-13 13:55 ELAIRS 阅读(240) 评论(0) 推荐(0) 编辑
摘要: IoC容器 1.1 IoC概述 Ioc(Inverse of Control,控制反转)是Spring容器的内核。对于软件来说,即某一接口具体实现类的选择控制权从调用类中移除,转交给第三方决定,即由Spring容器借由Bean配置来进行控制。也被称作DI(Dependency Injection,依 阅读全文
posted @ 2020-01-11 21:37 ELAIRS 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 当基础数据类型长度无法满足需求时可以使用大数类 构造方法接受字符串为参数 1 BigInteger bInt = new BigInteger("123123"); 2 BigDecimal bDouble = new BigDecimal("123123.123123124"); 基础操作(取模使 阅读全文
posted @ 2020-01-03 20:37 ELAIRS 阅读(1143) 评论(0) 推荐(0) 编辑