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

asp网站 证书怎么用域名建网站

asp网站 证书,怎么用域名建网站,线上线下一体化营销,3万网站建设费会计分录✅ 目标: 搜索模块支持不同内容类型(攻略、达人、游记等)每种搜索逻辑用一个策略类表示自动注册(基于注解 Spring 容器)新增搜索类型时,只需添加一个类 一个注解,无需改工厂、注册表等&#x…

✅ 目标:

  • 搜索模块支持不同内容类型(攻略、达人、游记等)
  • 每种搜索逻辑用一个策略类表示
  • 自动注册(基于注解 + Spring 容器)
  • 新增搜索类型时,只需添加一个类 + 一个注解,无需改工厂、注册表等!

🛠️ 技术方案:

  • Spring Boot
  • 自定义注解 @SearchType("guide") 进行标记
  • 启动时由 Spring 自动扫描并注册到 Map<String, SearchStrategy>

📁 项目结构如下(Spring Boot)

search-system-springboot/
├── SearchSystemApplication.java
├── annotation/
│   └── SearchType.java
├── strategy/
│   ├── SearchStrategy.java
│   ├── GuideSearch.java
│   ├── ExpertSearch.java
│   ├── TravelNoteSearch.java
│   └── SearchStrategyFactory.java
└── controller/└── SearchController.java

✅ 关键文件内容如下:


🔹 SearchStrategy.java(策略接口)

package strategy;public interface SearchStrategy {void search(String keyword);
}

🔹 @SearchType 注解(用于标记策略类型)

package annotation;import java.lang.annotation.*;@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SearchType {String value(); // 类型名称,如 "guide"
}

🔹 SearchStrategyFactory.java(策略注册器)

package strategy;import annotation.SearchType;
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;import java.util.HashMap;
import java.util.Map;@Component
public class SearchStrategyFactory {@Autowiredprivate ApplicationContext context;private final Map<String, SearchStrategy> strategyMap = new HashMap<>();@PostConstructpublic void init() {Map<String, Object> beans = context.getBeansWithAnnotation(SearchType.class);for (Object bean : beans.values()) {Class<?> clazz = bean.getClass();SearchType annotation = clazz.getAnnotation(SearchType.class);String type = annotation.value().toLowerCase();strategyMap.put(type, (SearchStrategy) bean);}}public SearchStrategy getStrategy(String type) {SearchStrategy strategy = strategyMap.get(type.toLowerCase());if (strategy == null) {throw new IllegalArgumentException("不支持的搜索类型: " + type);}return strategy;}
}

🔹 示例策略类 GuideSearch.java

package strategy;import annotation.SearchType;
import org.springframework.stereotype.Component;@Component
@SearchType("guide")
public class GuideSearch implements SearchStrategy {public void search(String keyword) {System.out.println("搜索攻略:" + keyword);}
}

🔹 示例策略类 ExpertSearch.java

package strategy;import annotation.SearchType;
import org.springframework.stereotype.Component;@Component
@SearchType("expert")
public class ExpertSearch implements SearchStrategy {public void search(String keyword) {System.out.println("搜索达人:" + keyword);}
}

🔹 控制器 SearchController.java

package controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import strategy.SearchStrategy;
import strategy.SearchStrategyFactory;@RestController
@RequestMapping("/search")
public class SearchController {@Autowiredprivate SearchStrategyFactory factory;@GetMappingpublic String search(@RequestParam String type, @RequestParam String keyword) {SearchStrategy strategy = factory.getStrategy(type);strategy.search(keyword);return "搜索成功:" + type + " -> " + keyword;}
}

🔹 启动类 SearchSystemApplication.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SearchSystemApplication {public static void main(String[] args) {SpringApplication.run(SearchSystemApplication.class, args);}
}

✅ 如何运行:

  1. 新建 Spring Boot 项目(Maven/Gradle 都可以)
  2. 创建上述包和类(annotationstrategycontroller
  3. 启动项目后访问:
http://localhost:8080/search?type=guide&keyword=台北夜市

输出:

搜索攻略:台北夜市

🚀 如何新增一个搜索类型?

比如新增 TravelNoteSearch

@Component
@SearchType("travelnote")
public class TravelNoteSearch implements SearchStrategy {public void search(String keyword) {System.out.println("搜索游记:" + keyword);}
}

就完事了,无需改动任何已有类!开闭原则 ✔️



文章转载自:

http://vds0PdZz.jnkng.cn
http://NoUHREEd.jnkng.cn
http://ZzA8xh4B.jnkng.cn
http://mWUnD7oq.jnkng.cn
http://R0Q29mAq.jnkng.cn
http://esLZtJpc.jnkng.cn
http://jfr68lO9.jnkng.cn
http://iywxanVI.jnkng.cn
http://xBG8Yt43.jnkng.cn
http://HP9B1sx5.jnkng.cn
http://xw7o3N5y.jnkng.cn
http://DehxdyPE.jnkng.cn
http://PLRe7GT3.jnkng.cn
http://qgGZBIZ9.jnkng.cn
http://3Y9X8XS6.jnkng.cn
http://y4Jbni2G.jnkng.cn
http://U9EAi85S.jnkng.cn
http://Mv4e5ZeU.jnkng.cn
http://JO7qLpGz.jnkng.cn
http://8q14q9T5.jnkng.cn
http://2oObJnFh.jnkng.cn
http://c6suVW3J.jnkng.cn
http://9LlpQ9fV.jnkng.cn
http://tdNafGqg.jnkng.cn
http://muFBZVuc.jnkng.cn
http://UrsqNCP2.jnkng.cn
http://6C9tIqDX.jnkng.cn
http://Yzxu5rAj.jnkng.cn
http://dNEDS6hn.jnkng.cn
http://oawnkJBP.jnkng.cn
http://www.dtcms.com/wzjs/665686.html

相关文章:

  • 建站培训东莞网上申报系统
  • 怎样做美食网站学设计的基础是什么
  • 免费的招聘网站小公司网站
  • 南昌有哪些企业网站建设银行征信中心网站
  • 西安有什么网站绑定电影卡的app
  • 注册网站怎么注册不了技术支持 金华网站建设
  • 湖南做网站 搜搜磐石网络seo链接优化建议
  • 网站建设运营合作合同怎么做钓鱼网站
  • 花都区住房和城市建设部网站海南海口最新新闻事件
  • 做网站卖钱做一个网站多久
  • 网站安全检测报告御名是什么意思
  • 服务器网站过多对排名做图网站有哪些东西吗
  • 上海网站建设 排名ppt现成作品下载
  • php网站建设制作流程广告优化师面试常见问题
  • 中小企业门户网站建设策略现在那个网站做推广效果会好点
  • 爱站长尾词挖掘工具网站关键词搜不到
  • 青岛网站建设订做个人开公众号有意义吗
  • 给网站平台做推广叫什么网页布局的目的
  • 八里庄网站建设全国物流货运平台
  • 企业网站建设市场分析服装网站建设可行性分析
  • 做网站电话说辞辽宁省工程造价网
  • 包头怎样做网站交友视频网站建设
  • 微信如何分享wordpress上海网站建设seo公司哪家好
  • wordpress站点全屏保险公司网站
  • 网站的二级导航怎么做盐城做网站哪家好
  • 做网站在厦门排前5名网络服务商电话
  • 麦当劳的网站优化建议网站制作费用属于广告费吗
  • 餐饮商城网站建设自己做的网站能备案吗
  • 志愿者网站时长码怎么做网页版面布局
  • 响应式酒店网站模板拓者设计吧会员有啥区别