丹徒网站建设怎么样/株洲seo推广
文章目录
- 1. 三层架构
- 2. Spring框架
- 3. 微服务架构
- 4. Java EE(Enterprise Edition)
- 5. 响应式架构
- 6. 大数据架构
- 7. 领域驱动设计(Domain-Driven Design,DDD)
- 8. 安卓开发架构
- 结论

🎉欢迎来到Java学习路线专栏~构建现代应用:Java中的热门架构概览
- ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹
- ✨博客主页:IT·陈寒的博客
- 🎈该系列文章专栏:Java学习路线
- 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习
- 🍹文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
- 📜 欢迎大家关注! ❤️
Java作为一门广泛应用于企业级应用开发的编程语言,拥有众多成熟的架构和框架,用于构建各种规模的应用程序。本文将介绍Java中常用的架构,这些架构在不同场景下都有着卓越的表现,涵盖了传统的三层架构到现代微服务架构的演进。
1. 三层架构
三层架构是一种经典的应用程序架构,将应用程序分为三个主要部分:
-
表现层(Presentation Layer): 表现层通常是用户与应用程序交互的界面,可以是Web界面、移动应用程序或桌面应用程序。在Java中,常见的表现层技术包括JavaServer Pages(JSP)、Servlets和现代的前端框架如React和Angular。
-
业务逻辑层(Business Logic Layer): 业务逻辑层包含应用程序的核心功能和处理业务逻辑的代码。在Java中,通常使用Java类和EJB(Enterprise JavaBeans)来实现业务逻辑。
-
数据访问层(Data Access Layer): 数据访问层负责与数据库或其他数据存储交互,执行数据的读取和写入操作。Java中,常见的数据访问技术包括Java Persistence API(JPA)和Hibernate。
核心概念: 三层架构将应用程序分为三个主要层次,包括表示层(Presentation Layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data Access Layer)。这种架构有助于将应用程序的不同功能分离开来,使其更容易维护和扩展。
优点:
- 清晰的分层结构。
- 容易维护和扩展。
- 可重用性高。
挑战:
- 可能存在性能瓶颈。
- 通信开销。
代码示例:
假设我们有一个简单的学生管理系统,我们可以使用三层架构来组织代码。以下是示例代码:
// Presentation Layer
public class StudentController {private StudentService studentService;public StudentController() {this.studentService = new StudentService();}public void addStudent(String name, int age) {studentService.addStudent(name, age);}
}// Business Logic Layer
public class StudentService {private StudentRepository studentRepository;public StudentService() {this.studentRepository = new StudentRepository();}public void addStudent(String name, int age) {// 添加业务逻辑Student student = new Student(name, age);studentRepository.save(student);}
}// Data Access Layer
public class StudentRepository {public void save(Student student) {// 数据库操作}
}
三层架构的优点在于它的清晰和可维护性。每个层次都有其明确定义的职责,这使得应用程序易于开发和维护。但在大型复杂的应用程序中,可能会出现层次间的紧耦合问题。
2. Spring框架
Spring框架是Java应用程序中广泛使用的轻量级开发框架。它提供了一种灵活的方式来构建企业级应用程序,其中包括以下关键功能:
-
依赖注入(Dependency Injection): Spring框架通过依赖注入将组件之间的依赖关系从代码中分离出来。这种方式提高了代码的可测试性和可维护性。
-
面向切面编程(Aspect-Oriented Programming,AOP): Spring支持AOP,允许开发者将横切关注点(如日志记录、事务管理)与应用程序的核心逻辑分离开来。
-
集成不同技术栈: Spring可以集成多种不同的技术,包括数据库访问、消息传递、安全性、Web开发等。Spring Boot是Spring生态系统中的一部分,使得构建独立的、自包含的、生产级别的应用程序变得更加容易。
-
Spring Cloud: Spring Cloud提供了构建分布式系统的工具和模式,包括服务发现、负载均衡、断路器、分布式配置等。
Spring 核心概念: Spring框架是一个轻量级的、综合性的Java框架,用于构建企业级应用。它提供了依赖注入、面向切面编程、事务管理等功能,使开发更加简单和模块化。
优点:
- 简化了Java开发。
- 高度可测试性。
- 大型社区和丰富的生态系统。
挑战:
- 初始学习曲线可能较陡峭。
代码示例:
Spring框架提供了许多模块和组件,例如Spring Boot、Spring MVC和Spring Data。以下是一个使用Spring Boot构建的简单Web应用的示例:
@RestController
public class HelloWorldController {@RequestMapping("/")public String hello() {return "Hello, World!";}
}@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}
Spring框架的优点在于其灵活性和可扩展性,它支持不同的架构和应用场景,适用于各种规模的应用。
Spring Boot核心概念: Spring Boot是一个用于构建独立的、生产级别的Spring应用程序的框架。它简化了Spring应用程序的初始化和配置,使开发者能够更快地启动和运行应用程序。
优点:
- 快速启动和运行。
- 内嵌的Web服务器。
- 自动化配置和约定优于配置。
挑战:
- 可能会过度依赖自动化配置。
代码示例:
以下是一个使用Spring Boot构建的RESTful Web服务的示例:
@RestController
public class HelloWorldController {@RequestMapping("/")public String hello() {return "Hello, World!";}
}@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}
3. 微服务架构
微服务架构是一种以服务为中心的架构风格,将应用程序拆分为小型服务,每个服务都有自己独立的业务逻辑和数据库。这些服务通过API进行通信,可以独立开发、部署和扩展。
在Java中,微服务架构通常使用Spring Boot和Spring Cloud构建。Spring Boot简化了微服务的创建和部署,而Spring Cloud提供了一组工具来解决微服务架构中的常见问题,如服务注册和发现、负载均衡、断路器模式等。
核心概念: 微服务架构是一种将应用程序拆分为小型、独立的服务的架构。每个微服务都运行在自己的进程中,可以使用不同的技术栈。微服务通过API或消息传递进行通信。
微服务架构的优点:
-
灵活性: 每个微服务都可以独立开发、部署和扩展,这使得团队可以更快地交付功能。
-
可伸缩性: 每个微服务都可以独立扩展,根据需求调整资源。
-
容错性: 单个微服务的故障不会影响整个应用程序。
-
技术多样性: 不同的微服务可以使用不同的技术栈,以满足不同的需求。
挑战:
- 分布式系统的复杂性。
- 服务间通信的管理。
- 监控和故障排除的复杂性。
代码示例:
假设我们有一个电子商务应用程序,可以使用微服务架构来构建。以下是示例代码:
// 用户服务
@RestController
public class UserServiceController {@Autowiredprivate UserService userService;@GetMapping("/users/{userId}")public User getUser(@PathVariable String userId) {return userService.getUser(userId);}
}@Service
public class UserService {public User getUser(String userId) {// 从数据库或其他服务获取用户信息}
}// 订单服务
@RestController
public class OrderServiceController {@Autowiredprivate OrderService orderService;@PostMapping("/orders")public void createOrder(@RequestBody Order order) {orderService.createOrder(order);}
}@Service
public class OrderService {public void createOrder(Order order) {// 处理订单创建逻辑}
}
但微服务架构也带来了挑战,如分布式系统的复杂性、服务间通信的开销和监控的复杂性。
4. Java EE(Enterprise Edition)
Java EE是Java平台的企业级版本,为构建大型、分布式和可扩展的应用程序提供了一套规范。Java EE包括各种技术,如Servlets、JSP、EJB、JMS(Java Message Service)、JPA和CDI(Contexts and Dependency Injection),用于开发企业级应用程序。
核心概念: Java EE是Java平台的企业级版本,用于构建大型、分布式和可扩展的应用程序。它包括多个规范,如Servlets、JSP、EJB、JMS、JPA和CDI,用于开发企业级应用。
优点:
- 企业级特性,如事务管理和安全性。
- 大型应用程序的可扩展性。
- 丰富的库和框架支持。
挑战:
- 配置和管理的复杂性。
- 相对于轻量级框架来说更加复杂。
代码示例:
假设我们正在开发一个在线银行系统,可以使用Java EE来构建。以下是示例代码:
// Servlet
@WebServlet("/account")
public class AccountServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 处理账户信息}
}// EJB
@Stateless
public class AccountService {@PersistenceContextprivate EntityManager entityManager;public void transferMoney(Account from, Account to, double amount) {// 执行转账逻辑}
}
Java EE的优点在于其稳定性和可扩展性,适用于构建大型企业级应用。但它通常需要更多的配置和管理,相对于轻量级框架来说更加复杂。
5. 响应式架构
响应式架构是一种以异步和事件驱动方式构建应用程序的架构风格,旨在实现高度的可伸缩性和性能。Java中的响应式编程通常使用ReactiveX库,如RxJava,以及Spring Reactor框架。
响应式架构的关键特点
-
弹性(Elasticity):响应式应用程序能够根据负载自动扩展或缩减。这意味着在高负载时可以分配更多资源,而在低负载时可以释放资源,以确保性能和效率。
-
消息驱动(Message-Driven):响应式应用程序通常使用消息传递机制进行通信,这有助于降低耦合度,并允许组件之间的松散集成。
-
弹性故障处理(Resilient Fault Tolerance):响应式系统能够处理故障,并以一种可恢复的方式继续工作。这通常涉及到容错机制、自动重试和故障隔离。
响应式架构案例
让我们考虑一个电子商务网站的情景。该网站需要在不同设备上提供一致的用户体验,包括桌面、平板电脑和手机。为了实现响应式架构,可以使用前端框架如React或Angular来构建用户界面。这些框架允许根据设备的屏幕大小和分辨率自动调整布局和内容。此外,后端可以采用微服务架构,以实现弹性和弹性故障处理。
// 示例:响应式前端组件
import React from 'react';function ProductList(props) {return (<div className="product-list">{props.products.map(product => (<div key={product.id} className="product"><img src={product.image} alt={product.name} /><h3>{product.name}</h3><p>{product.description}</p></div>))}</div>);
}export default ProductList;
响应式架构的优点在于它可以处理大量的并发请求,并实现低延迟的响应。它适用于构建需要高性能和实时性的应用程序,如在线游戏、金融交易系统和大规模数据处理。
6. 大数据架构
随着大数据技术的兴起,Java在大数据领域也发挥了重要作用。Hadoop和Spark是两个广泛使用的大数据处理框架,它们使用Java作为主要编程语言。
什么是大数据架构?
大数据架构是一种设计和管理大规模数据处理和存储的系统的方法。这种架构旨在处理来自各种来源的大量数据,包括结构化和非结构化数据。大数据架构的目标是实现高性能、高可用性和高可扩展性,以支持复杂的数据分析和挖掘任务。
大数据架构的关键特点
-
分布式存储(Distributed Storage):大数据系统通常使用分布式存储技术,如Hadoop HDFS或Amazon S3,以存储数据并提供冗余和容错性。
-
批处理和流处理(Batch and Stream Processing):大数据架构支持批处理和流处理,以处理静态和实时数据。Apache Spark和Apache Kafka等工具用于这些用途。
-
分布式计算(Distributed Computing):大数据系统利用多台计算机上的多个节点来并行处理数据。这可以显著提高计算性能。
大数据架构案例
考虑一个社交媒体平台,每天产生数十亿条用户发布的消息。为了分析用户行为和提供个性化内容,需要构建一个大数据架构。该架构使用Apache Kafka收集实时数据流,将数据存储在Hadoop HDFS上,并使用Apache Spark进行批处理和流处理。这使平台能够快速响应用户的互动,并为广告主提供定向广告。
// 示例:使用Apache Spark进行数据分析
val rawData = spark.read.textFile("hdfs://path/to/data")
val wordCounts = rawData.flatMap(line => line.split(" ")).groupBy("word").count()
wordCounts.show()
Hadoop提供了分布式存储和批处理处理能力,适用于大规模数据的离线分析。而Spark则提供了高性能的内存计算能力,支持迭代式处理和实时数据流处理。
7. 领域驱动设计(Domain-Driven Design,DDD)
领域驱动设计是一种软件开发方法,强调将业务逻辑和数据模型直接映射到代码中。Java中有许多框架和工具,如Hibernate和Spring Data,用于支持领域驱动设计。
什么是领域驱动设计(DDD)?
领域驱动设计是一种软件设计方法,着重于深入理解和建模问题领域(通常是业务领域),并将这些模型映射到软件中。DDD的目标是创建具有高内聚性和低耦合度的领域模型,以便更好地满足业务需求。
领域驱动设计的关键概念
- 领域(Domain):领域是问题空间的一部分,包括业务规则、实体、值对象和聚合。在DDD中,领
域是核心。
-
实体(Entity):实体是具有唯一标识的领域对象,其状态和行为都是由标识定义的。
-
值对象(Value Object):值对象是没有唯一标识的领域对象,其相等性是根据属性而不是标识来定义的。
领域驱动设计案例
考虑一个电子商务平台。在这个平台上,商品是一个重要的领域。使用领域驱动设计,可以创建商品领域模型,其中包括实体(如产品)和值对象(如价格)。这有助于更好地管理库存、价格策略和订单。
// 示例:商品领域模型
public class Product {private Long id;private String name;private Price price;// 省略其他属性和方法
}public class Price {private BigDecimal amount;private Currency currency;// 省略其他属性和方法
}
领域驱动设计的核心概念包括聚合、实体、值对象和领域服务,它们帮助开发者更好地理解和建模复杂的业务领域。
8. 安卓开发架构
对于移动应用程序开发,Java在安卓平台上是一种重要的编程语言。安卓开发通常使用MVC(Model-View-Controller)或MVVM(Model-View-ViewModel)等架构模式。
什么是安卓开发架构?
安卓开发架构是一种设计应用程序的方法,专门用于创建在Android操作系统上运行的移动应用程序。它强调了应用的可维护性、可测试性和可扩展性。Android开发采用了MVVM(Model-View-ViewModel)和MVP(Model-View-Presenter)等架构模式。
安卓开发架构的关键概念
-
模型(Model):模型表示应用程序的数据和业务逻辑。它独立于用户界面,并负责处理数据的获取和处理。
-
视图(View):视图是用户界面的表示。它负责显示数据,并与用户交互。在Android中,视图通常由XML布局文件定义。
-
视图模型(ViewModel):视图模型是连接模型和视图的中间层。它包含视图所需的数据,并处理用户界面逻辑。ViewModel通常与LiveData一起使用,以便在数据变化时通知视图。
安卓开发架构案例
考虑一个社交媒体应用程序。用户可以查看和发布帖子,以及与其他用户互动。为了实现这个应用程序,可以使用MVVM架构。模型负责管理用户数据和帖子,视图显示帖子列表和用户界面,而ViewModel协调数据的获取和显示。
// 示例:Android中的ViewModel
public class PostViewModel extends ViewModel {private LiveData<List<Post>> posts;public PostViewModel() {// 初始化数据获取逻辑posts = Repository.getPosts();}public LiveData<List<Post>> getPosts() {return posts;}
}
安卓开发涉及到用户界面设计、数据存储、网络通信等多个方面,Java提供了丰富的库和工具,使得安卓应用程序的开发变得更加高效。
结论
Java作为一门多用途的编程语言,拥有丰富的架构和框架,可以满足各种不同应用场景的需求。从传统的三层架构到现代的微服务架构、响应式架构和大数据架构,Java的生态系统不断演进,以适应不断变化的软件开发需求。
选择适合项目需求的架构和框架是开发成功的关键。不同的架构具有各自的优点和挑战,开发者需要根据项目的规模、性能需求和复杂性来做出明智的选择。无论选择哪种架构,Java都提供了丰富的工具和库,帮助开发者构建高质量的应用程序。
🧸结尾
❤️ 感谢您的支持和鼓励! 😊🙏
📜您可能感兴趣的内容:
- 【Java面试技巧】Java面试八股文 - 掌握面试必备知识(目录篇)
- 【Java学习路线】2023年完整版Java学习路线图
- 【AIGC人工智能】Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么
- 【Java实战项目】SpringBoot+SSM实战:打造高效便捷的企业级Java外卖订购系统
- 【数据结构学习】从零起步:学习数据结构的完整路径
相关文章:

构建现代应用:Java中的热门架构概览
文章目录 1. 三层架构2. Spring框架3. 微服务架构4. Java EE(Enterprise Edition)5. 响应式架构6. 大数据架构7. 领域驱动设计(Domain-Driven Design,DDD)8. 安卓开发架构结论 🎉欢迎来到Java学习路线专栏~…...

Axure RP软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 Axure RP是一款专业的原型设计工具,它能够帮助用户创建高保真度的交互式原型。 Axure RP具有以下特点: 强大的交互设计功能:Axure RP提供了丰富的交互设计工具,用户可以通过拖拽和…...

关于微信小程序的生命周期
关于微信小程序的生命周期 onLaunch 官网App.vue/App.uvue | uni-app官网 问题描述:我现在有个小程序 取名为a 有个用户b 从来没有打开过小程序 那么他第一次打开小程序的时候会触发onLaunch 然后用户b退出了小程序 那么用户 b重新打开小程序的时候会触发 onL…...

【数据结构】带头双向循环链表及其实现
目录 1.带头双向循环链表 2.带头双向循环链表实现 2.1初始化 2.2销毁 2.3头插 2.4链表打印 2.5头删数据 2.6尾插数据 2.7尾删数据 2.8链表判空 2.9查找一个数据 2.10在pos位置前插入数据 2.11删除pos位置 2.12求链表的长度 2.顺序表和链表的比较 1.带头双向循环…...

问道管理:日换手率达20是好是坏?
关于股票商场的出资者而言,日换手率是一个非常重要的目标。日换手率是指股票当日买卖量与该股总股本之比。假如一只股票的日换手率过高,那么就意味着该股票的流动性较强,而假如日换手率过低,那么就意味着该股票的流动性较弱。 那…...

勃艮第葡萄酒是如何分级的?
勃艮第葡萄酒来自一个同名的地区:勃艮第,它位于法国中东部,在西部的卢瓦尔河和东部的索恩河之间。该地区最大的城市是欧塞尔、第戎、马孔和内韦尔。由于地处国家中心,勃艮第属于大陆性气候,夏季炎热,冬季寒冷。这种气候…...

使用awvs进行web安全扫描
1、安装 docker pull secfa/docker-awvs docker run -it -d -name awvs -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs2、账号密码 # https://ip:13443/ # 用户名:adminadmin.com # 密码:Admin1233、使用 ps:需要征得甲方的同意...

抖音小程序开发教学系列(1)- 抖音小程序简介
章节一:抖音小程序简介 1.1 抖音小程序的背景和概述 抖音小程序的发展背景和市场趋势: 抖音作为一款热门的短视频社交平台,用户群体庞大,社交共享的特性也为小程序的发展提供了广阔的空间。抖音小程序作为抖音在社交和用户粘性…...

【4.Vue兄弟组件之间传值-Bus总线】
1.概述 通过创建一个新的vm对象,专门统一注册事件,供所有组件共同操作,达到所有组件随意隔代传值的效果 也就是:各个组件内部要传输的数据或者要执行的命令信息,靠bus来通信。 2. 代码实现 2.1 全局引入 全局引入的话,就直接在main.js里面引入即可: // 创建 bus总线 V…...

element中Notification组件(this.$notify)自定义样式
1、自定义样式效果 2、vue代码 this.notifications this.$notify({title: ,dangerouslyUseHTMLString: true,duration: obj.remindMethod3 ? 0:4500,customClass: notify-warning,offset: 50,showClose: false,message: this.$createElement("div",null,[this.$…...

Manjaro安装使用
Manjaro安装使用 1.先更改镜像源:sudo pacman-mirrors -c China -g 2.安装第三方软件管理工具 :sudo pacman -Sy yay 导入GPG Key sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring安装输入法 sudo pacman -S fcitx-im (#默认全部安装…...

【iOS】折叠cell
文章目录 前言一、实现效果二、折叠cell的实现原理三、实现折叠cell的高度变化四、实现选中点击的单元格总结 前言 在暑假的3GShare中用到了折叠cell控件,特此总结博客记录 一、实现效果 二、折叠cell的实现原理 首先我们需要知道ScrollView的是TableView的父类&a…...

无涯教程-Android - DatePicker函数
Android Date Picker允许您在自定义用户界面中选择由日,月和年组成的日期。为此功能,android提供了DatePicker和DatePickerDialog组件。 在本教程中,我们将通过DatePickerDialog演示日期选择器的用法, DatePickerDialog是一个包含DatePicker的简单对话框。 为了显示DatePicker…...

经纬恒润荣获吉利汽车“最佳价值贡献”奖
8月18日,以“全面向新 共创共赢”为主题,吉利汽车在宁波成功举行2023年电子电器核心供应商恳谈会。经纬恒润凭借在项目合作上持续创新、高效协同等优异表现,获得“最佳价值贡献”奖项。 作为国产汽车代表性品牌之一,吉利汽车积极推…...

【多线程】lock与synchronized的区别
相同点: 1、他们都是Java中用于解决线程安全的工具,两者的性能相差不大 不同点: 1、在实现上synchronized引入了偏向锁、轻量级锁、重量级锁、锁升级来优化加锁的性能,而lock则使用自旋锁来实现性能的优化 2、synchronized是J…...

什么是RTC
参考: https://zhuanlan.zhihu.com/p/377100294 RTC(Real time communication)实时通信,是实时音视频的一个简称,我们常说的RTC技术一般指的是WebRTC技术,已经被 W3C 和 IETF 发布为正式标准。由于几乎所…...

BW 源/目标模型主键不一样,增量的作用
最近项目上,做了一个复杂的需求逻辑,源模型到目标模型,主键完全发生了变化。用转换的传统功能,我担心处理起来不方便就使用了专家历程(这个说明在之前有说过)。 项目上线后,发生很多异常事件。但…...

HK1 RBOX X4,Vontar X4,S905 X4 刷 ATV
准备工作 需要HK1 RBOX X4一个(内存版本不限 通刷),机顶盒电源,USB双公线一条(可以使用两个usb数据线剪开后相同颜色对接使用,最好使用电烙铁焊接一下更稳定),安装 INTEL CPU 运行 w…...

Rust 学习笔记(持续更新中…)
一、 编译和运行是单独的两步 运行 Rust 程序之前必须先编译,命令为:rustc 源文件名 - rustc main.rs编译成功之后,会生成一个二进制文件 - 在 Windows 上还会生产一个 .pdb 文件 ,里面包含调试信息Rust 是 ahead-of-time 编译的…...

递归算法学习——电话号码的字母组成,括号生成,组合
目录 一,电话号码的字母组合 1.题意 2.例子 3.题目接口 4.解题代码和思路 代码: 思路: 二,括号的生成 1.题意 2.例子 3.题目接口 四,解题代码和思路 1.先写代码: 2.思路 三,组合 …...

记录 JSONObject.parseObject json对象转换 对象字段为null
1.业务背景 使用websocket 接收消息都是String类型,没办法自定义实体类接收,所以接发都必须将json 转 对象 对象转 json。 这是我最开始的实体类,也就是转换的类型 package com.trinity.system.domain;import lombok.AllArgsConstructor; im…...

Android Native Code开发学习(二)JNI互相传参返回调用
Android Native Code开发学习(二) 本教程为native code学习笔记,希望能够帮到有需要的人 我的电脑系统为ubuntu 22.04,当然windows也是可以的,区别不大 一、native code介绍 native code就是在android项目中混合C或…...

Ubuntu 下安装Qt5.12.12无法输入中文解决方法
Ubuntu 下安装Qt5.12.12无法输入中文解决方法 一,环境: (1)VMware Workstation 15 Pro (2)Ubuntu 20.04 (3)Qt 5.12.12 64bits (4)Qt Creator 5.0.2 &#…...

微信小程序左上角home图标的解决方法之一 层级混乱导致的home图标显示的问题 自定义左上角左侧图标的返回路径
这个项目的编辑页在tabbar上 导致跳到tabbar得使用wx.switchTab 保存后返回原来的页面就出现了左上角的home图标 本来想通过自定义home图标的跳转路径来解决这个问题 没想到居然找不到相关内容 有清楚的朋友麻烦给我留个言不胜感激 那我写一下我的骚操作 app.js globalData: {…...

Kubernetes(K8s 1.28.x)部署---超详细
目录 一、基础环境配置(所有主机均要配置) 1、配置IP地址和主机名、hosts解析 2、关闭防火墙、禁用SELinux 3、安装常用软件 4、配置时间同步 5、禁用Swap分区 6、修改linux的内核参数 7、配置ipvs功能 二、容器环境操作 1、定制软件源 2、安…...

spring高级源码50讲-20-36(springMVC)
文章目录 WEB20) RequestMappingHandlerMapping 与 RequestMappingHandlerAdapter演示1 - DispatcherServlet 初始化代码参考 收获💡演示2 - 自定义参数与返回值处理器代码参考 收获💡 21) 参数解析器演示 - 常见参数解析器代码参考 收获💡 2…...

Leetcode Top 100 Liked Questions(序号141~189)
141. Linked List Cycle 题意:给你一个链表,判断链表有没有环 我的思路 两个指针,一个每次走两步,一个每次走一步,如果走两步的那个走到了NULL,那说明没有环,如果两个指针指向相等&…...

网络编程day3-FTP客户端项目
FTP协议 FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应)&…...

音频母带制作::AAMS V4.0 Crack
自动音频母带制作简介。 使用 AAMS V4 让您的音乐听起来很美妙! 作为从事音乐工作的音乐家,您在向公众发布材料时需要尽可能最好的声音,而为所有音频扬声器系统提供良好的商业声音是一项困难且耗时的任务。AI掌握的力量! 掌控您…...

【SpringCloud】SpringCloud整合openFeign
文章目录 前言1. 问题分析2. 了解Feign3. 项目整合Feign3.1 引入依赖3.2 添加注解3.3 编写Feign客户端3.4 测试3.5 总结 4. 自定义配置4.1 配置文件方式4.2 Java代码方式 5. Feign使用优化5.1 引入依赖5.2 配置连接池 6. Feign最佳实践6.1 继承方式6.2 抽取方式 前言 微服务远…...