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

网站背景跟着鼠标动的图怎么做网站软件下载

网站背景跟着鼠标动的图怎么做,网站软件下载,视频网站开发教程,大型网站建设公司Spring Boot 中应用的设计模式详解 Spring Boot 作为 Spring 框架的扩展,广泛使用了多种经典设计模式。以下是主要设计模式及其在 Spring Boot 中的具体应用: 一、创建型模式 1. 工厂模式 (Factory Pattern) 应用场景: BeanFactory 和 Ap…

Spring Boot 中应用的设计模式详解

Spring Boot 作为 Spring 框架的扩展,广泛使用了多种经典设计模式。以下是主要设计模式及其在 Spring Boot 中的具体应用:

一、创建型模式

1. 工厂模式 (Factory Pattern)

  • 应用场景
    • BeanFactoryApplicationContext 核心接口
    • @Bean 注解的方法本质是工厂方法
  • 示例
    @Configuration
    public class AppConfig {@Beanpublic DataSource dataSource() { // 工厂方法return new HikariDataSource();}
    }
    

2. 单例模式 (Singleton Pattern)

  • 实现方式
    • Spring 容器默认将所有 bean 作为单例管理
    • 通过 @Scope("singleton") 显式声明
  • 特点
    • 单例存储在 DefaultSingletonBeanRegistrysingletonObjects Map 中
    • 非线程安全对象需配合 ThreadLocal 使用

3. 建造者模式 (Builder Pattern)

  • 典型应用
    • RestTemplateBuilder
    • SpringApplicationBuilder
  • 示例
    new RestTemplateBuilder().rootUri("https://api.example.com").defaultHeader("Authorization", "Bearer token").build();
    

二、结构型模式

4. 代理模式 (Proxy Pattern)

  • 实现形式
    • JDK 动态代理(基于接口)
    • CGLIB 代理(基于类继承)
  • 应用场景
    • AOP 实现(@Transactional 等)
    • @Cacheable 缓存代理
  • 核心类
    • ProxyFactory
    • AopProxy

5. 装饰器模式 (Decorator Pattern)

  • 典型应用
    • HttpServletRequestWrapper 请求包装
    • Spring Cache 的 TransactionAwareCacheDecorator
  • 特点
    • 在不改变接口的情况下增强功能

6. 适配器模式 (Adapter Pattern)

  • 应用场景
    • Spring MVC 的 HandlerAdapter
    • RequestMappingHandlerAdapter 处理不同控制器类型
    • AOP 中的 MethodInterceptor 适配各种通知类型

三、行为型模式

7. 模板方法模式 (Template Method)

  • 典型实现
    • JdbcTemplate / RestTemplate
    • AbstractController 基类
  • 特点
    public class JdbcTemplate {public <T> T query(String sql, ResultSetExtractor<T> rse) {// 固定流程:获取连接→创建语句→执行查询→处理结果→释放资源Connection con = DataSourceUtils.getConnection(obtainDataSource());Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(sql);return rse.extractData(rs); // 可变部分委托给回调接口}
    }
    

8. 观察者模式 (Observer Pattern)

  • 实现机制
    • ApplicationEvent 事件体系
    • @EventListener 注解
  • 示例
    // 定义事件
    public class OrderEvent extends ApplicationEvent { ... }// 发布事件
    applicationContext.publishEvent(new OrderEvent(this, order));// 监听事件
    @EventListener
    public void handleOrderEvent(OrderEvent event) { ... }
    

9. 策略模式 (Strategy Pattern)

  • 应用场景
    • 多数据源切换 (AbstractRoutingDataSource)
    • 缓存管理器 (CacheManager 接口的不同实现)
    • 认证策略 (AuthenticationProvider 体系)

四、组合使用的高级模式

10. 组合模式 (Composite Pattern)

  • 应用案例
    • CompositeCacheManager 组合多个缓存管理器
    • Spring Security 的 SecurityFilterChain

11. 责任链模式 (Chain of Responsibility)

  • 典型实现
    • Spring Security 过滤器链
    • HandlerExecutionChain 处理请求

12. 门面模式 (Facade Pattern)

  • 代表实现
    • SpringApplication 类封装启动复杂度
    • JdbcTemplate 隐藏原生JDBC复杂性

五、Spring Boot 特有模式应用

13. 条件化配置 (Conditional)

  • 实现机制
    • @Conditional 系列注解
    • 自动配置的核心模式 (AutoConfigurationImportSelector)
  • 示例
    @Configuration
    @ConditionalOnClass(DataSource.class)
    public class DataSourceAutoConfiguration { ... }
    

14. 约定优于配置 (Convention over Configuration)

  • 体现方面
    • 默认属性配置 (application.properties 自动加载)
    • 静态资源默认路径 (/static, /public)

六、设计模式在自动配置中的综合应用

Spring Boot 自动配置是多种模式的完美结合:

  1. 工厂模式:通过 @EnableAutoConfiguration 触发配置类加载
  2. 策略模式AutoConfigurationImportSelector 选择配置策略
  3. 条件判断@Conditional 系列注解控制bean创建
  4. 装饰器模式BeanPostProcessor 增强bean功能

最佳实践建议

  1. 合理选择模式

    • 扩展功能优先使用组合而非继承
    • 复杂对象创建使用建造者模式
  2. 避免过度设计

    // 不推荐:简单场景没必要用工厂模式
    @Bean 
    public Foo simpleFoo() {return new Foo(); // 直接new即可
    }
    
  3. 模式组合示例(REST API设计):

    • 工厂模式创建服务实例
    • 策略模式处理不同业务逻辑
    • 装饰器模式添加日志/监控
    • 观察者模式处理业务事件

Spring Boot 通过这些设计模式实现了高度模块化和可扩展的架构,开发者理解这些模式能更高效地使用和扩展框架功能。

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

相关文章:

  • 易思企业网站管理系统广告投放网
  • 网站开发的一般步骤福州seo按天收费
  • 建设项目环境登记表辽宁省网站识图找图
  • 如何选择企业建站公司四川seo推广
  • 建设网站设计公司收录批量查询工具
  • vs2017html5网站开发郑州网站建设外包
  • 网站建设与制作实现精准营销无锡网站seo
  • 十几万 建设网站沧州网站优化公司
  • 常州网站建设公司市场网页设计免费模板
  • app 移动网站建设千锋教育培训怎么样
  • 网站设计方案范本百度应用app
  • 诚信通开了网站谁给做北京seo公司有哪些
  • 直接翻译网页的软件网站的seo 如何优化
  • 程序员自己做网站怎么能来钱市场调研与分析
  • 今日新闻10条简短安徽网站关键字优化
  • 嵌入式培训机构排名如何获取网站的seo
  • 市场营销ppt模板成都seo
  • cms网站建设的方法广告主资源哪里找
  • 武汉网络兼职网站建设星乐seo网站关键词排名优化
  • 如何用华为云服务器做网站贷款客户大数据精准获客
  • h5个人网站代码seo经理招聘
  • 超链接到网站怎么做黑帽seo排名技术
  • 如何开通网站关键词排名怎么做上首页
  • 哪些网站专门做细胞的互动营销的方式有哪些
  • 做电影网站合法吗关键词歌词简谱
  • 58同城会员网站怎么做百度关键字
  • 宁夏银川网站建设百度导航最新版本下载安装
  • 长沙品牌推广公司成都网站seo性价比高
  • app下载网站免费真正免费的网站建站平台推荐
  • 长沙招聘网站有哪些合肥网络推广有限公司