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

网站如何做宣传推广互联网营销做什么

网站如何做宣传推广,互联网营销做什么,党校网站建设,wordpress 4.9优化Spring 框架中适配器模式的应用场景 在 Spring 框架中,适配器模式(Adapter Pattern)被广泛应用于将不同组件的接口转化为统一接口,从而实现组件间的无缝协作。以下是几个典型的应用场景: 1. HandlerAdapter - MVC 请…

Spring 框架中适配器模式的应用场景

在 Spring 框架中,适配器模式(Adapter Pattern)被广泛应用于将不同组件的接口转化为统一接口,从而实现组件间的无缝协作。以下是几个典型的应用场景:

1. HandlerAdapter - MVC 请求处理

在 Spring MVC 中,HandlerAdapter 是适配器模式的核心应用,用于将不同类型的处理器(Handler)统一为可执行的接口。

场景说明

Spring MVC 支持多种处理器类型(如 @ControllerHttpRequestHandlerServlet 等),但 DispatcherServlet 需要以统一方式调用这些处理器。

关键类

HandlerAdapter 接口:定义统一的处理方法。

public interface HandlerAdapter {boolean supports(Object handler);ModelAndView handle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception;long getLastModified(HttpServletRequest request, Object handler);}

具体适配器实现

RequestMappingHandlerAdapter:处理 @Controller@RequestMapping 注解的方法。

SimpleControllerHandlerAdapter:处理实现 Controller 接口的处理器。

HttpRequestHandlerAdapter:处理实现 HttpRequestHandler 的处理器。

工作流程

DispatcherServlet 接收到请求后,找到对应的 Handler。

通过 HandlerAdapter 判断该 Handler 是否被支持。

调用 HandlerAdapter.handle() 方法,统一处理请求。

示例

// DispatcherServlet 中简化的请求处理逻辑HandlerAdapter adapter = getHandlerAdapter(handler);ModelAndView mv = adapter.handle(request, response, handler);

2. MessageListenerAdapter - JMS 消息处理

在 Spring JMS 中,MessageListenerAdapter 将自定义的消息处理方法适配为 JMS 规范的 MessageListener 接口。

场景说明

JMS 要求消息监听器实现 MessageListener 接口,但用户可能希望使用自定义方法名和参数类型处理消息。

关键类

MessageListenerAdapter:实现 MessageListener 接口,并将消息委托给目标方法。

public class MessageListenerAdapter implements MessageListener, SessionAwareMessageListener<Message> {private Object delegate; // 委托对象private String defaultListenerMethod = "handleMessage"; // 默认方法名@Overridepublic void onMessage(Message message, Session session) throws JMSException {// 适配逻辑:将 JMS Message 转换为方法参数并调用目标方法Object convertedMessage = extractMessage(message);invokeListenerMethod(delegate, defaultListenerMethod, new Object[] { convertedMessage });}}

示例配置

@Beanpublic MessageListenerAdapter listenerAdapter(MyMessageHandler handler) {MessageListenerAdapter adapter = new MessageListenerAdapter(handler);adapter.setDefaultListenerMethod("processMessage"); // 指定方法名return adapter;}

3. ApplicationListenerAdapter - 事件监听器适配

在 Spring 事件机制中,ApplicationListenerAdapter 将任意 Bean 的方法适配为事件监听器。

场景说明

用户可能希望使用非 ApplicationListener 实现类的方法来处理事件。

关键类

ApplicationListenerAdapter:实现 ApplicationListener 接口,将事件委托给目标 Bean 的方法。

public class ApplicationListenerAdapter implements ApplicationListener<ApplicationEvent>, Ordered {private final Object delegate; // 委托对象private final Method method; // 目标方法@Overridepublic void onApplicationEvent(ApplicationEvent event) {// 适配逻辑:将事件转换为方法参数并调用if (supportsEvent(event)) {Object[] args = new Object[] { resolveArgument(event) };method.invoke(delegate, args);}}}

示例配置

@Servicepublic class MyService {@EventListener // 方法会被 ApplicationListenerAdapter 适配public void handleEvent(MyEvent event) {// 处理事件}}

4. AsyncTaskExecutorAdapter - 任务执行器适配

在 Spring 异步处理中,AsyncTaskExecutorAdapter 将 JDK 的 Executor 适配为 Spring 的 AsyncTaskExecutor

场景说明

用户可能已有 JDK 原生的 Executor,但希望在 Spring 环境中使用。

关键类

AsyncTaskExecutorAdapter:实现 AsyncTaskExecutor 接口,委托给 JDK Executor

public class AsyncTaskExecutorAdapter implements AsyncTaskExecutor {private final Executor concurrentExecutor;@Overridepublic void execute(Runnable task, long startTimeout) {concurrentExecutor.execute(task);}@Overridepublic Future<?> submit(Runnable task) {return concurrentExecutor.submit(task);}// 其他方法...}

5. HandlerInterceptorAdapter - 请求拦截器(已弃用)

在 Spring MVC 中,HandlerInterceptorAdapter 是一个抽象适配器类,用于简化拦截器的实现。

场景说明

Spring 3.2 之前,拦截器需要实现 HandlerInterceptor 接口的所有方法。

关键类

HandlerInterceptorAdapter:提供默认实现,允许子类仅覆盖需要的方法。

public abstract class HandlerInterceptorAdapter implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception {return true; // 默认实现}@Overridepublic void postHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView modelAndView) throws Exception {// 空实现}@Overridepublic void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex) throws Exception {// 空实现}}

示例

public class MyInterceptor extends HandlerInterceptorAdapter {@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) {// 只覆盖需要的方法return true;}}

适配器模式在 Spring 中的特点

解耦组件:通过适配器将不同接口统一,使组件间无需依赖具体实现。

增强扩展性:易于添加新的适配器支持新类型,符合开闭原则。

简化使用:用户只需关注核心逻辑,无需实现复杂接口。

广泛应用:在 MVC、消息处理、事件机制等模块中均有体现。

理解这些适配器模式的应用,有助于更深入地掌握 Spring 框架的设计思想和扩展方式。

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

相关文章:

  • 如何快速创建网站it菜鸡网seo
  • 今日全国猪价最新表公众号关键词排名优化
  • 跑胡子网站开发win10优化大师怎么样
  • 邢台做移动网站报价seo技术蜘蛛屯
  • 下载用的网站怎么做2345网址导航安装
  • 东莞厚街做网站seo优化推广工程师招聘
  • 商城站到汤泉池网站seo服务商
  • 如何通过做网站挣钱广州网络推广万企在线
  • 如何做html网站朋友圈广告怎么投放
  • 网站设计 北京 010佛山seo关键词排名
  • 烟台高端网站建设公司哪家好推广软文营销案例
  • 红河公司 网站建设谷歌google浏览器
  • 上海市网站建设电话号码seo查询seo
  • 香港网站需要备案吗网店培训骗局
  • 潮州做网站搜索引擎营销案例分析题
  • axure做家装网站原型外链购买
  • 同个主体新增网站备案常见的推广平台有哪些
  • 做标签刷单平台网站百度爱采购服务商查询
  • 网站域名注册服务商网络营销策划书应该怎么写
  • 成都学校网站制作广州百度搜索排名优化
  • 聊天app开发制作全套教程网络建站优化科技
  • 宿迁做网站优化长沙seo公司
  • 电子商务平台经营者制定平台服务协议和交易规则时网站建设网络推广seo
  • 搭建网站难吗百度推广教程视频教程
  • 做酒吧设计的网站微信营销和微博营销的本质区别
  • 江西省注册和城乡建设厅网站seo就业
  • 有模板了怎么建设网站发广告平台有哪些免费
  • 制作凡客诚品帮助中心页面衡阳网站优化公司
  • 直播视频网站建设好用搜索引擎排名
  • 中山seo推广优化安徽网站优化