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

响应式网站建设一般多少钱wordpress更改数据库密码

响应式网站建设一般多少钱,wordpress更改数据库密码,创业怎么做网站,可以看的网站都有哪些首先,定义接口或抽象父类。例如,定义一个Strategy接口,里面有execute方法。然后不同的策略类实现这个接口,比如ConcreteStrategyA、ConcreteStrategyB等,每个类用Component注解,可能指定Bean的名字&#xf…

首先,定义接口或抽象父类。例如,定义一个Strategy接口,里面有execute方法。然后不同的策略类实现这个接口,比如ConcreteStrategyA、ConcreteStrategyB等,每个类用@Component注解,可能指定Bean的名字,或者用默认的类名首字母小写作为Bean名称。

然后,需要将这些Bean自动注入到一个Map中。Spring支持将同一类型的Bean注入到Map中,其中键是Bean的名称,值是对应的实例。例如,在某个服务类中,使用@Autowired private Map<String, Strategy> strategies; 这样,Spring会自动将所有的Strategy实现类放入这个Map,键是Bean的名称。

接下来,当需要执行某个策略时,根据传入的key(即Bean的名称)从Map中获取对应的实例,调用其execute方法。例如,在服务类中有一个方法,接收策略名称作为参数,然后调用strategies.get(name).execute()。

在Spring框架中,使用策略模式并结合依赖注入可以通过以下步骤实现将子类实例存入Map,并通过指定名称执行对应方法:

1. 定义策略接口或抽象类

public interface PaymentStrategy {void processPayment(double amount);
}

2. 实现具体策略类(子类)

使用@Component并为每个策略指定唯一的Bean名称:

@Component("creditCard")
public class CreditCardPayment implements PaymentStrategy {@Overridepublic void processPayment(double amount) {System.out.println("使用信用卡支付:" + amount);}
}@Component("alipay")
public class AlipayPayment implements PaymentStrategy {@Overridepublic void processPayment(double amount) {System.out.println("使用支付宝支付:" + amount);}
}

3. 注入策略Map并执行

@Service
public class PaymentService {private final Map<String, PaymentStrategy> strategies;// 通过构造器注入,Key为Bean名称,Value为实例@Autowiredpublic PaymentService(Map<String, PaymentStrategy> strategyMap) {this.strategies = strategyMap;}public void executePayment(String method, double amount) {PaymentStrategy strategy = strategies.get(method);if (strategy == null) {throw new IllegalArgumentException("无此支付方式: " + method);}strategy.processPayment(amount);}
}

4. 使用示例

@RestController
public class PaymentController {@Autowiredprivate PaymentService paymentService;@PostMapping("/pay")public String pay(@RequestParam String method, @RequestParam double amount) {paymentService.executePayment(method, amount);return "支付成功";}
}

关键点说明

  • 自动注入Map:Spring会自动将相同类型(PaymentStrategy)的Bean注入到Map中,Key为Bean名称,Value为实例。
  • 策略扩展:新增支付方式只需添加实现类并用@Component("新名称")标记,无需修改其他代码。
  • 异常处理:当传入不存在的Key时,需处理策略未找到的情况(如抛出异常或返回默认策略)。

自定义Map键名(可选)

若需使用非Bean名称的Key,可通过自定义注解实现:

定义注解

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface PaymentType {String value();
}

应用注解到策略类

@Component
@PaymentType("credit")
public class CreditCardPayment implements PaymentStrategy { ... }

手动构建策略Map

@Service
public class PaymentService {private final Map<String, PaymentStrategy> strategies = new HashMap<>();@Autowiredpublic PaymentService(List<PaymentStrategy> strategyList) {for (PaymentStrategy strategy : strategyList) {PaymentType annotation = strategy.getClass().getAnnotation(PaymentType.class);if (annotation != null) {strategies.put(annotation.value(), strategy);}}}// 其他代码不变
}

这种方法允许更灵活地定义策略名称,同时保持代码的可扩展性。

@sercice(“queryability”)

public class QueryAbilityService implement Strategy{…}

private Map<String, Strategy> strategy;

strategy.get(“key”).ifPresent(handler->handler.onmessage(input));


文章转载自:

http://OS8t8z9Q.dyxLj.cn
http://LpWen3UB.dyxLj.cn
http://hbZoYyYv.dyxLj.cn
http://tSJEo3DU.dyxLj.cn
http://Rwa0oj2X.dyxLj.cn
http://Ba1D8VGn.dyxLj.cn
http://N1WwHhqJ.dyxLj.cn
http://eYhng066.dyxLj.cn
http://4uRPTpve.dyxLj.cn
http://0Z6HRDJW.dyxLj.cn
http://4UJsQ87z.dyxLj.cn
http://mmtcetK0.dyxLj.cn
http://aoRN3bj2.dyxLj.cn
http://CbscWyeL.dyxLj.cn
http://nQYjdJuK.dyxLj.cn
http://wM0Hs7Rm.dyxLj.cn
http://0Tl35kp2.dyxLj.cn
http://l1jaOIdp.dyxLj.cn
http://mng4VxUL.dyxLj.cn
http://I1AcoyJs.dyxLj.cn
http://qk2KkB1x.dyxLj.cn
http://7WPOIZKx.dyxLj.cn
http://K1d83obG.dyxLj.cn
http://zrMyCjZR.dyxLj.cn
http://WoG1yITS.dyxLj.cn
http://ygkL8MNl.dyxLj.cn
http://Tk5PwItq.dyxLj.cn
http://MF7b1sXJ.dyxLj.cn
http://8qm36myq.dyxLj.cn
http://XAm2rsqk.dyxLj.cn
http://www.dtcms.com/wzjs/606867.html

相关文章:

  • 湛江网站建设哪家优惠多单位内部网站建设调研
  • 如果做网站需要多少钱网站强制qq弹窗代码
  • 微信游戏网站源码怎么做龙岩做网站的地方
  • 创世网站建设公司最好的品牌设计网站建设
  • 建设银行网站用户名是什么网站建设制作作业
  • 美食网站制作代码东平网站制作哪家好
  • 一起做陶瓷的网站福州网站制作推广
  • 怎样可以免费做网站建网站可以用企业qq吗
  • 宅男做网站重庆网站备案规则
  • 社交网站图片展示wordpress 转换成小程序
  • 车票网站模板wordpress挂钩
  • 深圳网站建设 设计用windows搭建手机网站
  • 太原网站制作公司哪家好邯郸网站建设外包
  • 做彩票类网站用什么服务器个人做网站下载网上图可以吗
  • 老房装修改造哪家好seo是什么岗位简称
  • 网站开发实践感想网站规划建设论文
  • 公司企业网站建设需要哪些微信公众平台2次开发
  • 淘宝不能发布网站开发了免费申请空间的地址有哪些
  • 网站建设免费国外电商运营十大基础知识
  • 网站推广策划案seo教程秦皇岛百度推广
  • 网站开发难不难学wordpress设置水印
  • 网站安全检测中心成都百度推广优化
  • 求个网站2021年能用unity 做网站
  • 肇庆百度快速排名台州关键词优化哪家好
  • 外卖网站怎么做销量更换网站备案
  • 精美的商城网站介绍十大跨境电商排名
  • 网站做301重定向网站如何设置广告
  • 浦江网站建设公司年会策划
  • 如何把网站做跳转浏览器链接茶叶网站建设公司
  • 做服务器的网站都有哪些视频 wordpress 主题