设计模式 模式java

工厂模式进阶用法,如何动态选择对象?

前言 工厂设计模式可能是最常用的设计模式之一,我想大家在自己的项目中都用到过。可能你会不屑一顾,但这篇文章不仅仅是关于工厂模式的基本知识,更是讨论如何在运行时动态选择不同的方法进行执行,你们可以看看是不是和你们项目中用的一样? 欢迎关注个人公众号【JAVA旭阳】交流沟通 小菜鸟的问题 直接上例子说明 ......
对象 工厂 模式 动态

IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤

IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 、 @ IDEA 导入项目模块 Module 一. 创建一个空项目 想要导入模块 Module ,我们需要先创建一个项目,因为 Module模块在 IDEA 中是存在于项目下的。 这里我们先创建一个空项目,当然已经有项目了, ......
模块 步骤 程序 项目 IDEA

明解STM32—GPIO理论基础知识篇之八种工作模式

一、引言 在之前围绕STM32的GPIO的基本结构进行了介绍,图1为STM32的5V容忍的GPIO口内部基本结构图,图2为GPIO的基本结构中各个模块部分的概述。 阅读GPIO基本结构的内容能够对GPIO的工作模式有更深的了解。正是由于GPIO的结构中包含了多样性的电路和模块,因此进行合理的配置组合 ......
基础知识 理论 模式 基础 知识

java代码审计-文件操作

0x01 任意文件读取 @GetMapping("/path_traversal/vul") public String getImage(String filepath) throws IOException { return getImgBase64(filepath); } 这里的路由对应的方 ......
代码 文件 java

java代码审计-SSRF

0x00 前言 SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定 URL 地址获取网页文本内容,加载指定地址的图片,下载等等。这里主要介绍java中URLConnection()和openStream()两个方法产生SSRF的原理和修复 ......
代码 java SSRF

java代码审计-SpEL表达式注入

0x01 前言 Spring Expression Language(简称 SpEL)是一种功能强大的表达式语言、用于在运行时查询和操作对象图;语法上类似于Unified EL,但提供了更多的特性,特别是方法调用和基本字符串模板函数。SpEL 的诞生是为了给 Spring 社区提供一种能够与Spri ......
表达式 代码 java SpEL

Sidecar-详解 JuiceFS CSI Driver 新模式

近期发布的 JuiceFS CSI Driver v0.18 版本中,我们提供了一种全新的方式访问文件系统,即 JuiceFS 客户端以 Sidecar 方式运行于应用 Pod 中,且客户端与应用同生命周期。 这个全新的功能将帮助用户在 Serverless Kubernetes 环境中使用 Jui ......
Sidecar JuiceFS 模式 Driver CSI

全局视角看技术-Java多线程演进史

本篇语言通俗易懂,是一篇具有大纲性质的关于多线程的梳理,作者从历史演进的角度讲了多线程相关知识体系,让你知其然知其所以然。 ......
演进史 线程 全局 视角 技术

SpringCloud微服务实战——搭建企业级开发框架(四十九):数据字典注解的设计与实现

数据字典是系统中基本的必不可少的功能,在多种多样的系统中,数据字典表的设计都大同小异。但是使用方式确是多种多样,设计好一套易用的数据字典功能模块,可以使开发事半功倍。 常用的数据字典使用方式: 直接在SQL语句中LEFT JOIN (当然是不推荐这样用的) 查询出原始数据,然后再根据原始数据需要的字 ......
注解 SpringCloud 字典 框架 数据

SpringCloud微服务实战——搭建企业级开发框架(五十):集成移动端推送功能的系统通知公告数据库设计

系统的通知公告功能似乎是很容易被忽略的功能模块,在传统的软件系统中,一般OA类软件系统不可或缺,而在应用软件系统中此功能或有或无,在现在大多数的互联网软件系统中,此功能又必不可缺。所以,在框架设计时,我们需要考虑业务系统是否需要此功能模块,然后将此功能作为扩展插件,在需要时开启,在不需要时配置关闭即 ......

.Net Core后端架构实战【1-项目分层框架设计】

摘要:基于.NET Core 7.0WebApi后端架构实战【1-项目结构分层设计】 2023/02/05, ASP.NET Core 7.0, VS2022 引言 从实习到现在回想自己已经入行四年了,很庆幸自己一直还是从事着开发的工作。这几年不管是工作还是生活都有很多不甘与失落还有收获,从学校出来 ......
架构 实战 框架 项目 Core

设计模式(十三)----结构型模式之桥接模式

1 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。 试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一 ......
模式 结构型 设计模式 结构

设计模式(十一)----结构型模式之装饰者模式

1、概述 我们先来看一个快餐店的例子。 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。 使用继承的方式存在的问题: 扩展性不好 如果要再加一种配料(火腿肠),我们就会发现需要给FriedRice和F ......
模式 结构型 设计模式 结构

设计模式(十)----结构型模式之适配器模式

1、概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转 ......

搭个ChatGPT算法模型,离Java程序员有多远?

这一篇文章先给我自己以及大家对 ChatGPT 开个门,让对此感兴趣的编程爱好者可以参与进去学习。在我感觉 ChatGPT 的出现会打破某些平衡,对一些事项进行秩序重置。因此也让更多的人获得了大量的机会。 ......
程序员 算法 模型 ChatGPT 程序

设计模式之(13)--模板方法模式

今天我们来学习下模板方法设计模式。 模板方法(Template Method Pattern):抽象的父类中定义一个操作中算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。简单地讲,就是“父类的模板方法定义不变的流程,子类重写流程中的方法”。 ......
模式 设计模式 模板 方法

vivo 自研Jenkins资源调度系统设计与实践

本文从目前业界实现Jenkins的高可用的实现方案,分析各方案的优缺点,引入vivo目前使用的Jenkins高可用方案,以及目前Jenkins资源的调度方案的设计实践和目前的落地运行效果。 ......
Jenkins 系统 资源 vivo

从实现到原理,聊聊Java中的SPI动态扩展

八股文背多了,相信大家都听说过一个词,SPI扩展。 那么SPI扩展究竟是个啥,是怎么实现的,咱们来详细盘一盘它! ......
原理 动态 Java SPI

推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计

推荐可分为以下四个流程,分别是召回、粗排、精排以及重排: 1. 召回是源头,在某种意义上决定着整个推荐的天花板; 2. 粗排是初筛,一般不会上复杂模型; 3. 精排是整个推荐环节的重中之重,在特征和模型上都会做的比较复杂; 4. 重排,一般是做打散或满足业务运营的特定强插需求,同样不会使用复杂模型... ......
系统 算法 全民 架构 音乐

c++ 程序通用多线程单例设计 c++ web 框架设计经验谈

设计 c++ web 框架时候,想要一个框架缓存类,很多通用缓存类是用字符保存,作为框架内置就不要序列和反序列了,因为框架内部使用。 想给自己的paozhu c++ web 框架添加缓存类,参考了springboot 于是确定用单例设计模式缓存类模板。 c++11后静态变量已经统一为线程安全了,网络 ......
经验谈 线程 框架 经验 程序

用ChatGPT,快速设计一个真实的账号系统

hi,我是熵减,见字如面。 用ChatGPT,可以尝试做很多的事情。 今天我们就来让ChatGPT做为架构师,来帮我们设计一个账号系统吧。 我的实验过程记录如下,与你分享。 用户故事 首先,我们从用户故事开始吧。 提示:我们从用户故事开始,需要设计一个网站的账号系统模型,其中包括账号基础信息实体,邮 ......
账号 ChatGPT 系统

C4模型,架构设计图的脚手架,你值得拥有

hi,我是熵减,见字如面。 对于软件开发团队来说,写软件设计文档,花架构图,是日常工作中的关键一项。 而其中,如何画好系统设计的架构图呢? Simon Brown 就 提出 C4 模型,来解决这个问题。 基于C4模型的脚手架,架构师们就可以统一团队内的不同层级的视角,交付一个成体系的架构设计。 下面 ......
脚手架 设计图 架构 模型

微软出品自动化神器【Playwright+Java】系列(九)多线程、重定向、弹出新窗口、截图、新页面、录制、页面对象模式操作

写在前面 关于Playwright系列的文章,真的很久没有写了,今天一个不小心官方API部分过完了,下面将为大家逐一演示,感兴趣的同学可以自行动手练习。 API部分 多线程 直白点说就是多线程下Playwright的使用,示例代码如下: package org.example; import com ......
页面 神器 线程 截图 Playwright

写给准备跳槽的小伙伴们的设计模式——工厂方法设计模式

概述 工厂方法模式(FactoryMethod),定义一个创建产品对象的工厂接口,让工厂子类决定实例化那一个产品类。我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”,它不属于 23 种经典设计模式,它的缺点是增加 ......
设计模式 模式 小伙伴 小伙 工厂

看完这篇原型设计模式,还不会,请你吃瓜

概述 使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 在软件系统开发中,有时候会遇到这样的情况:我们需要用到多个相同实例,最简单直接的方法是通过多次调用new方法来创建相同的实例。 student s=new student(); student s1=new student() ......
设计模式 原型 模式

(原创)【B4A】一步一步入门04:编译模式、打包为APK、私钥签名

一、前言 上篇 (原创)【B4A】一步一步入门03:APP名称、图标等信息修改 中我们将APP做成了标准的样子。 本篇文章会讲解如何将程序打包成APK文件以分发,同时讲解如何制作私钥并签名APP,以用来后续的上架应用商店。 相信看完的你,一定会有所收获! 本地地址:https://www.cnblo ......
模式 B4A APK B4 4A

Java 调用 PaddleDetection 模型

文章地址 介绍 训练好的模型要给业务调用,deepjavalibrary/djl:Java 中与引擎无关的深度学习框架 (github.com) 可以完成这件事,它支持使用 Java 调用 PyTorch、TensorFlow、MXNet、ONNX、PaddlePaddle 等引擎的模型(也支持部分 ......
PaddleDetection 模型 Java

《深入理解java虚拟机》第七章读书笔记——虚拟机类加载机制

系列文章目录和关于我 一丶虚拟机类加载机制是什么 java虚拟机将描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可用被虚拟机直接使用的java类型。 二丶类加载时机 1.什么时候会触发虚拟机的类类加载昵? 遇到new(使用new关键字实例化对象),getstat ......
机制 笔记 java

基于Vue3+TS的Monorepo前端项目架构设计与实现

写在前面 你好,我是前端程序员鼓励师岩家兴!去年在另一个项目https://juejin.cn/post/7121736546000044046中,我向读者朋友们介绍了结合npm包管理工具yarn作vue3项目的monorepo架构设计。今天,在这个风和日丽阳光明媚的钱塘江畔,我心情很好,我打算再写 ......
前端 架构 Monorepo 项目 Vue3

我有一篇Java Stream使用手册,学了就是你的了!

原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介 日常编程工作中,Java集合会经常被使用到,且经常需要对集合做一些类似过滤、排序、对象转换之类的操作。 为了简化这类操作,Java8添加了一套新的Stream API,使用方式就像写SQL一样,大大简化了这 ......
手册 就是 Stream Java