
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
AOP是什么:一种将横切关注点(日志、事务等)与核心业务逻辑分离的技术。如何实现:Spring AOP通过动态代理在运行时将切面“织入”到目标方法中。核心注解@Aspect@Pointcut@Around@Before@After等。为何需要:实现解耦、提高代码的可复用性和可维护性,让开发者能更专注于核心业务逻辑。通过AOP,我们可以以一种非常优雅和非侵入式的方式,为应用程序添加强大的功能。
/ 1. 服务接口 (明星的工作规范)// 2. 真实对象,实现接口 (真正的明星)@Override// 模拟核心业务逻辑System.out.println("添加用户...");try {// 模拟耗时操作@Override// 模拟核心业务逻辑System.out.println("删除用户...");try {// 模拟耗时操作特性静态代理动态代理实现方式程序员手动编写代理类JDK 运行
注入方式代码示例优点缺点字段注入代码极其简洁1. 不易测试(必须通过反射或启动容器来注入)2. 无法声明为final(破坏了不可变性)3. 容易导致空指针(如果容器配置错误,字段为null4. 破坏封装性(通过反射强制给私有字段赋值)Setter注入灵活性高,允许可选依赖或重新注入对象可能在Set之前被使用,导致状态不完整构造函数注入1. 强依赖性:保证对象在构造完成后就处于完全初始化的状态2.
实现方式描述优点缺点依赖查找 (DL)对象主动向容器请求依赖相对传统方式有一定解耦代码依赖容器API,不够纯粹,已不常用依赖注入 (DI)容器主动将依赖注入到对象中彻底解耦,代码纯净,易于测试┣ 构造函数注入通过构造函数传入依赖推荐首选。保证不可变和完全初始化参数过多时构造函数会很长┣ Setter注入通过Setter方法传入依赖灵活,适合可选依赖对象状态可能暂时不完整┗ 字段注入通过反射直接给字
Spring Bean 是由。
特征Java实际(值传递引用)真正的引用传递传递内容引用的副本引用本身修改引用指向只影响方法内的副本影响原始引用修改对象内容会影响原始对象会影响原始对象比喻给钥匙复印件给钥匙原件。
职责分离:每个对象都有自己的职责,不要用一个对象贯穿所有层。这符合软件设计的“单一职责原则”。避免“大而全”的对象:不要创建一个包含所有字段的“User”类,然后希望它在所有地方都能用。这会导致数据冗余、安全隐患(如把密码返回给前端)和强耦合。按需定义:VO、DTO 的结构应根据前端和接口的需求来灵活定义,而不是死板地对应数据库。理解本质而非记名字:在不同的公司或团队中,对这些对象的称呼可能不同(
匿名内部类是没有名字的内部类,它在声明的同时就创建了唯一的一个对象。由于Java不允许外部类没有名字,所以匿名类一定是内部类。核心特性🚫 没有类名🎯 随声明随创建,只有这一个对象🔒 无法重复使用,专为一次性场景设计。
持久化 Java 对象是指能将其状态保存到长期存储介质(数据库或文件)中,并能在程序重启后恢复使用的对象。它是“Java 对象生命周期延伸”的关键概念,常与ORM 框架(如 Hibernate、JPA)一起使用。
Enum(枚举)就像是一个固定的"选项列表",它把一组相关的常量值组织在一起,让代码更清晰、更安全。// 定义一个星期的枚举MONDAY, // 周一TUESDAY, // 周二WEDNESDAY, // 周三THURSDAY, // 周四FRIDAY, // 周五SATURDAY, // 周六SUNDAY // 周日。







