8.1实习笔记

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执行与结果集处理。

核心能力:

  1. 多样化返回类型支持

支持返回分页数据、POJO对象、数组、Map、List等结构,覆盖常见数据操作场景。

示例代码:

List<User> users = dbHelper.getBeanList("SELECT * FROM users", User.class);

  1. 事务管理

通过TransConnection实现嵌套事务控制,确保财务操作(如费用报销)的原子性:

dbHelper.BeginTransaction();
try {
    dbHelper.executeUpdate(sql1);
    dbHelper.executeUpdate(sql2);
    dbHelper.CommitTransaction();
} catch (Exception e) {
    dbHelper.RollbackTransaction();
}
  1. 数据库无关性

通过IDBClient接口适配不同数据库(如SQL Server的ROW_NUMBER分页 vs MySQL的LIMIT),更换数据库仅需修改配置文件:

<appSettings>
    <add key="DBClient" value="MySqlClient"/> 
</appSettings>
  1. 分页优化

自动生成分页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测试环境进行操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容