当前位置: 首页 > wzjs >正文

华艺网站开发wordpress火车头接口

华艺网站开发,wordpress火车头接口,娱乐建网站,制作app软件要多少钱一个一、工厂模式 想象一下你去奶茶店点单——你只需要告诉店员要"珍珠奶茶",后厨就会自动完成煮茶、加料、封口整套流程。这就是工厂模式在SpringBoot中的体现。 典型应用场景: Bean的创建过程(ApplicationContext就是超级工厂&…

一、工厂模式

想象一下你去奶茶店点单——你只需要告诉店员要"珍珠奶茶",后厨就会自动完成煮茶、加料、封口整套流程。这就是工厂模式在SpringBoot中的体现。

典型应用场景:

  1. Bean的创建过程(ApplicationContext就是超级工厂)
  2. 第三方库的集成(如RedisTemplate的生成)
  3. 条件化配置(@Conditional系列注解)
// 自定义奶茶工厂
@Configuration
public class MilkTeaFactory {@Bean@Scope("prototype")public MilkTea pearlMilkTea() {MilkTea tea = new MilkTea();tea.addIngredient("珍珠");tea.setSugarLevel(50);return tea;}
}

当你在Controller中@Autowired一个MilkTea对象时,SpringBoot就像奶茶店后厨一样,按配方为你制作好对象。这就是为什么我们几乎不需要自己new对象的原因。

二、单例模式

公司里的CEO只能有一个,这就是单例模式的精髓。SpringBoot通过这个模式管理着最重要的核心组件。

实现方式对比表

方式

优点

典型应用

@Bean注解

配置灵活

数据源配置

@Component注解

自动扫描

Service层组件

枚举实现

防反射攻击

全局状态管理

@Service // 这个注解让UserService成为单例
public class UserService {// 业务方法...
}// 测试验证
@Test
void testSingleton() {UserService instance1 = context.getBean(UserService.class);UserService instance2 = context.getBean(UserService.class);assertSame(instance1, instance2); // 确认是同一个实例
}

单例模式节省了内存开销,但也需要注意线程安全问题。Spring通过Bean的作用域设计(@Scope)让开发者可以灵活控制。

三、模板方法模式

做红烧肉和糖醋排骨的步骤都是:准备食材→焯水→炒制→收汁。这就是模板方法模式——定义算法骨架,允许子类重写特定步骤。

Spring中的经典实现

  1. JdbcTemplate的execute方法
  2. RestTemplate的请求处理流程
  3. @Transactional的事务管理
public abstract class CookingTemplate {// 模板方法(final防止被重写)public final void cook() {prepareIngredients();blanching();stirFry();thickenSauce();}// 抽象方法(必须由子类实现)protected abstract void prepareIngredients();// 默认实现(可选重写)protected void blanching() {System.out.println("焯水30秒");}// 其他步骤...
}// 具体实现
@Component
public class BraisedPork extends CookingTemplate {@Overrideprotected void prepareIngredients() {System.out.println("准备五花肉500g");}
}

下次使用JdbcTemplate时,你会注意到它已经帮你处理了连接获取、异常处理等通用逻辑,你只需要关注SQL执行本身。

四、代理模式

明星都有经纪人处理日常事务,这个经纪人就是代理对象。Spring AOP的核心机制正是基于动态代理。

代理类型对比

代理类型

实现方式

特点

JDK动态代理

接口代理

性能较好

CGLIB代理

类继承

无需接口

// 业务接口
public interface UserService {void register(User user);
}// 目标类
@Service
public class UserServiceImpl implements UserService {@Override@Transactional // 事务代理的典型应用public void register(User user) {// 注册逻辑}
}// 自动生成的代理类(伪代码)
public class UserServiceProxy implements UserService {private UserService target;public void register(User user) {startTransaction();try {target.register(user);commitTransaction();} catch (Exception e) {rollbackTransaction();}}
}

当你在方法上添加@Transactional注解时,Spring就会悄悄创建一个代理对象来管理事务。这就是为什么添加注解就能实现事务控制的原因。

五、观察者模式

就像微信订阅号,当博主发文时,所有粉丝都会收到通知。Spring的事件机制完美诠释了这一模式。

核心组件

  1. ApplicationEvent(事件)
  2. ApplicationListener(监听器)
  3. ApplicationEventPublisher(发布者)
// 自定义订单事件
public class OrderEvent extends ApplicationEvent {private String orderId;public OrderEvent(Object source, String orderId) {super(source);this.orderId = orderId;}// getter...
}// 短信通知监听器
@Component
public class SmsListener implements ApplicationListener<OrderEvent> {@Overridepublic void onApplicationEvent(OrderEvent event) {sendSms(event.getOrderId());}
}// 使用示例
@Service
public class OrderService {@Autowiredprivate ApplicationEventPublisher publisher;public void createOrder(Order order) {// 创建订单逻辑publisher.publishEvent(new OrderEvent(this, order.getId()));}
}

这种解耦设计让系统扩展变得容易。当需要新增邮件通知时,只需添加新的监听器即可,无需修改订单创建逻辑。

六、适配器模式

出国旅行时用到的电源转换插头就是适配器的现实版。Spring MVC中的HandlerAdapter就是这个模式的经典应用。

适配场景

  1. 控制器方法参数解析
  2. 返回值处理
  3. 跨版本接口兼容
// 旧版支付接口
public class LegacyPayment {public String pay(int amount) {return "现金支付:" + amount + "元";}
}// 适配器
@Component
public class PaymentAdapter implements ModernPayment {private final LegacyPayment legacyPayment;public PaymentAdapter(LegacyPayment legacyPayment) {this.legacyPayment = legacyPayment;}@Overridepublic String onlinePay(int amount) {String result = legacyPayment.pay(amount);return "适配后的结果:" + result;}
}// 现代支付接口
public interface ModernPayment {String onlinePay(int amount);
}// 控制器使用
@RestController
public class PaymentController {@Autowiredprivate ModernPayment payment;@PostMapping("/pay")public String handlePay(@RequestParam int amount) {return payment.onlinePay(amount);}
}

当HandlerAdapter处理不同类型的Controller时(如@Controller与HttpRequestHandler),正是通过适配器模式实现了统一调用。

设计模式认知的三个阶段

  1. 看山是山:在SpringBoot中看到各种注解和配置
  2. 看山不是山:发现背后隐藏的设计模式
  3. 看山还是山:理解模式组合带来的架构之美

SpringBoot就像精心设计的乐高套装,设计模式就是那些标准接口的积木块。当我们理解这些模式后,就能:

  • 更高效地使用框架特性
  • 编写更优雅的代码
  • 快速定位疑难问题
  • 设计出可扩展的系统架构

最后送大家一个调试技巧:在IDEA中打开"Show Spring Beans"视图(Ctrl+Alt+Shift+U),你会看到单例池中所有Bean的庐山真面目。试着找出本文提到的各个模式实现,这将是你进阶Spring高手的重要一步!

想获取更多高质量的Java技术文章?欢迎访问Java技术小馆官网,持续更新优质内容,助力技术成长

Java技术小馆官网https://www.yuque.com/jtostring

http://www.dtcms.com/wzjs/792792.html

相关文章:

  • 北京天润建设工程有限公司网站实时新闻热点
  • 商标设计网课seo推广优化公司
  • 网站建设文化价格成都有哪些设计公司
  • 巩义做网站优化软件工程很难学吗
  • 我不想找之前做网站的续费贵州建设厅考试网站准考证下载
  • 赣州市城乡建设局网站有没有跟一起做网店一样的网站
  • 网站建设电话销售工作总结南京专业建站
  • 安康哪里做网站深圳一公司今年成立16家核检机构
  • 洛阳网站建设汉狮怎么样青岛百度快速优化排名
  • 徐州网站简介响应式网站开发 三合一建站
  • 网站开发与维护课程设计公司起名最吉利的字
  • 郓城县城乡和建设局网站手机网站 app
  • 四川时宇建设工程有限公司官方网站主页去掉wordpress
  • 国内设计精美的网站杭州网站关键词
  • wordpress企业仿站企业营销型展厅设计价目表
  • 在线测评网站怎么做网站建设制作报价方案
  • 梅州哪里做网站哈尔滨网站建设咨询
  • 新余网站设计住房城乡建设部办公厅网站
  • 自己怎么做商城网站免费建站网站一级123456
  • 网站开发 pdf 文字版400网站建设电话
  • 东莞高端网站建设公司网站建设费缴税
  • 基本网站建设知识搜索引擎seo优化
  • 想弄个网站wordpress 去除表格
  • 有域名和服务器怎么建网站wordpress json 插件
  • 辛集市建设局网站wordpress 亲子模板
  • dedecms产品展示织梦模板(营销型网站)百度关键词怎么排名
  • 自己做网站要不要租服务器wordpress加下载链接
  • 云霄城乡建设局网站网站一键生成手机网站
  • asp sql网站安全性技术支持 沧州辉煌网络-网站建设
  • 徽文化网站建设方案书便捷网站建设报价