1、Set和Iterator
Set(集合)
Set是Java集合框架中的接口(java.util.Set),代表无序且元素唯一的集合。
不允许重复元素(基于equals()和hashCode()判断)。
常见实现类:HashSet(基于哈希表)、LinkedHashSet(保持插入顺序)、TreeSet(有序)。
在业务中使用Set<Group>:如果业务要求Group对象不重复(例如根据ID或名称去重),使用Set能自动保证唯一性。
Iterator(迭代器)
Iterator(java.util.Iterator)是用于遍历集合元素的统一接口。
核心方法:
hasNext(): 检查是否还有元素。
next(): 获取下一个元素。
remove(): 删除当前元素(可选操作)。
所有集合(如Set、List)都可通过.iterator()获取迭代器。比for循环更安全,尤其需要在遍历时删除元素时。
2、封装概念(防止混用)
封装的本质是控制变化的影响范围。良好的封装:
将变化隔离在类的内部。
通过定义清晰的接口降低耦合度。
使代码更健壮、更易维护,
Spring MVC中的封装实践
DTO/VO模式(数据传输封装)
// 视图对象 - 只暴露必要字段
public class UserVO {
private String username;
private String displayName;
// 只有getter方法
public String getUsername() { return username; }
public String getDisplayName() { return displayName; }
}
// 服务层方法
public UserVO getUserVOById(Long id) {
User entity = userRepository.findById(id);
return new UserVO(entity.getUsername(), entity.getFullName());
}
3、DBHelper详解
DBHelper是国外开源软件开发组织,专注于数据库辅助工具的研发,核心产品为基于NET Framework架构开发的SqlHelper组件。该组织通过提供模块化代码库简化数据库操作流程,官方网站及项目源码通过公开渠道发布。
其开发的工具支持多种数据库管理系统,包括Microsoft Access、SQL Server、Oracle和MySQL。技术实现上采用HelperBase类作为基础架构,通过封装属性和方法提供标准化数据库连接、指令执行等功能接口。源码结构包含明确的类成员划分,着重实现跨数据库平台的兼容性与操作一致性。
在SpringMVC中
DBHelper在Java企业级应用(尤其是Spring MVC架构的费控系统)中扮演着数据库操作核心组件的角色。它通过封装JDBC的复杂性,提供高效、灵活的数据库访问能力,成为连接业务逻辑与数据库的关键桥梁。
定义:DBHelper是基于JDBC封装的持久层工具(在某些工程中被放在了业务层里),核心目标是简化SQL执行与结果集处理。
核心能力:
- 多样化返回类型支持
支持返回分页数据、POJO对象、数组、Map、List等结构,覆盖常见数据操作场景。
示例代码:
List<User> users = dbHelper.getBeanList("SELECT * FROM users", User.class);
- 事务管理
通过TransConnection实现嵌套事务控制,确保财务操作(如费用报销)的原子性:
dbHelper.BeginTransaction();
try {
dbHelper.executeUpdate(sql1);
dbHelper.executeUpdate(sql2);
dbHelper.CommitTransaction();
} catch (Exception e) {
dbHelper.RollbackTransaction();
}
- 数据库无关性
通过IDBClient接口适配不同数据库(如SQL Server的ROW_NUMBER分页 vs MySQL的LIMIT),更换数据库仅需修改配置文件:
<appSettings>
<add key="DBClient" value="MySqlClient"/>
</appSettings>
- 分页优化
自动生成分页SQL,传递参数(排序字段、页大小)即可获取分页数据。
4、测试环境Dist
dist 是 “distribution”(分发)的缩写。
在Web前端工程化开发中(如 Vue项目),/dist/ 是构建工具(如Vite)默认生成的打包输出目录。该目录包含优化后的代码,可直接部署到服务器。
部署路径映射:测试环境可能直接将构建产物(即 /dist/ 目录内容)部署到服务器的子路径下。
测试环境(Testing Environment)
测试环境是为验证软件功能、性能及稳定性而搭建的模拟场景,其核心目标是隔离风险并逼近真实生产环境。
测试环境的意义:不仅是软件运行的“沙盒”,更是质量保障的核心基础设施,通过模拟真实场景隔离风险、验证交付质量。
5、集成
某系统通过模块化方式集成了某云ai识别功能,该功能以独立内聚的ai模块形式存在。
采用模块化集成的原因
设计目标 | 实现方式 | 案例体现 |
---|---|---|
功能解耦 | 隔离AI与核心财务逻辑 | 独立ai包和其他包 |
技术异构 | 允许使用不同技术栈 | aiocr可替换OCR引擎 |
边界清晰 | 定义标准接口契约 | AIService接口 |
独立演进 | 常量/模型独立维护 | AIConst专用常量类 |
周总结:
1、用简明易懂的方式形象化地理解了后端接收数据并返回的全过程,可以推广到所有SpringMVC服务中。
2、熟练运用开发者模式进行各类接口、报文、令牌的获取。
3、对api.js、.class文件、Tenet类别、Map键值对等Java相关技术细节做了更深入的了解。
4、深化了对封装、继承、多态概念的认知。
5、开始在费控系统的dist测试环境进行操作。