spring-springboot -springcloud
目录
spring:
动态代理:
spring的生命周期(bean的生命周期):
SpringMvc的生命周期:
SpringBoot:
自动装配:
自动装配流程:
Spring中常用的注解:
Spring Boot中常用的注解:
SpringCloud:
1. 注册中心:
2. gateway(网关):
3. Ribbon(负载均衡): 它是一个基于http协议请求的客户端负载均衡
4. Hystrix(断路器,熔断器):
5. Feign(远程调用):
6. Sentinel:
7. 雪崩及处理方式:
分布式事务:
spring:
它是一个轻量级的容器架构,提供了ioc控制反转, di依赖注入, aop面向切面编程,支持web开发,事务管理以及强大的安全性,能够是开发人员更加专注于业务逻辑的实现,不必过多关注底层的技术细节
控制反转: spring通过控制反转实现了对象的管理和创建,传统的开发模式中,对象的创建和依赖关系的管理是有开发人员手动处理的,而在spring中,对象的创建和依赖关系的注入有spring容器负责,只需要声明依赖关系无需关系对象的创建和销毁
依赖注入: 将对象的依赖关系交给spring管理,spring会根据配置文件或注解,自动将依赖的对象注入到需要的地方,实现松耦合的组件之间的协作
面向切面编程: 它是一种编程范式,通过将横切的关注点与核心业务逻辑分离,提高系统的可维护性和可扩展性,它的本质是动态代理
1. 切面: 切面是横切关注点的模块化单元,包含了一组通知和切点.通知是定义在何时何地执行特定的操作,切点定义在哪些地方应用这些操作,切面可以被织入到目标对象中,从而实现目标对象的增强
2. 通知: 切面中定义的具体操作,定义了切点础执行的代码.通知可以在目标方法执行前,执行后,或抛异常时执行,也可以在目标方法执行过程中多次执行,常见的类型有:(前置通知, 后置通知, 返回通知和异常通知)
3. 切点: 在程序中定义的一个或多个连接点的集合,连接点是程序中可以插入切面的特定位置,例如方法调用,方法执行异常抛出等,切点通过表达式或注解方式定义,用于确定在哪些连接点上应用切面通知
4. 将切面应用到目标对象中的过程,织入可以在编译时,类加载时或运行时进行,AOP框架会根据切点的定义,将切面的通知插入到目标对象的连接点上,从而实现对目标对象的增强
动态代理:
JDK动态代理: 是java提供的一种基于接口实现的代理技术,通过java反射机制,在运行时动态的创建代理对象,它要求目标类实现接口,代理对象通过实现接口在代理目标类的方法
CGLIB动态代理: 是一种基于继承的代理技术,通过生成目标类的子类来作为代理对象,并重写目标类的方法实现增强逻辑,他它要求目标类实现接口,可以代理普通类,但是无法处理final修饰的类
区别: 从性能上来说,jdk动态代理使用java的反射机制,比cglib动态代理更轻量级,执行效率更高,而cglib动态代理是通过生成子类来实现代理,涉及到类的继承和方法的重写,效率较低
spring的生命周期(bean的生命周期):
1. 加载配置文件: 通过XML配置文件或者注解的方式进行配置. 配置文件中定义了bean的定义,依赖关系, 初始化方法以及销毁方法等,spring使用applicationContext或者BeanFactory加载配置文
加载配置文件的方式:
1. applicationContext 加载配置文件
2. BeanFactory 加载配置文件
3. ClassPathXmlApplicationContext 实现类加载XML配置文件
4. FileSystemXmlApplicationContext 实现类加载XML配置文件
5. AnnotationConfigApplicationContsxt 加载基于注解的配置类
2. 创建容器: 根据配置文件中的定义,创建一个应用程序上下文(ApplicationContext),也称为容器,容器负责管理bean的生命周期和依赖关系的注入
容器的创建由applicationContext或BeanFactory实现,创建容器时spring会解析配置文件并根据配置信息初始化容器
3. 实例化bean: 根据配置方式的不同,可以使用构造函数实例化bean或者通过工厂方法创建bean的实例, 根据配置文件中的bean定义,使用beanDefinition创建bean实例
4. 设置属性: 容器会将配置文件中定义的属性值注入到bean的实例中,可以通过setter方法或直接访问成员变量进行属性的设置
5. 调用初始化方法: 如果bean定义了初始化方法(可以根据配置文件的init-method或注解@PostConstruct指定), 容器会在属性设置完成后调用该方法进行一些初始化操作
6. bean使用: 初始化完成后,可以应用程序中使用了,其他的bean可以通过依赖注入的方式使用该bean
7. bean销毁: 应用程序关闭或容器被销毁时, 容器会调用bean的销毁方法(可以通过配置文件destroy-method或注解@PreDestroy指定)来进行一些清理工作
spring还提供了bean后置处理器机制,能够在bean的初始化前后进行一些自定义的处理操作,通过实现beanPostProcessor接口在bean生命周期的特定阶段插入自己的逻辑
SpringMvc的生命周期:
客户端发松http请求到springmvc应用程序,请求被DispatcherServlet接收并分发给相应的处理器进行处理,处理器映射器会根据请求的url或其他条件确定使用那个处理器,并将请求映射到一个或多个处理器,由处理器适配器将请求发生给相应的处理器进行处理,执行业务逻辑后并生成模型数据,返回给视图解析器,由视图解析器进行解析和渲染最后返回给客户端
场景题: aop事务怎么开启和提交
在spring中开启事务可以使用@Transactional, 作用在方法或类级别上表示需要进行事务管理,spring会自动创建一个事务并在方法执行前开启事务,事务的提交是由事务管理器自动处理的,方法执行完成后,如果没有发生异常,事务管理器会将事务提交到数据库中,使操作生效,否则事务管理器会回滚事务并取消之前的操作
SpringBoot:
它是一个用于简化和加快springBoot应用程序开发的开源框架,基于spring框架,并提供了自动配置,快速启动,无需繁琐的xml配置等特性,使开发者可以更专注业务逻辑的开发不必过多关注框架的配置
自动配置: 通过自动配置机制,根据应用程序的依赖和配置,自动配置spring框架的各种组件和功能
快速启动: 内嵌servlet容器,可以直接运行spring应用程序,不需要部署到外部容器
无需xml配置: 通过注解和约定,可以更简洁的配置spring应用程序,并减少配置文件的数量和复杂性
起步依赖: 它提供了一系列预配置依赖项,称为起步依赖,能够简化对常用功能的集成(例如数据库访问,web开发,安全性等),并自动处理依赖冲突和版本兼容性
健康检查和监控: 提供了健康检查和监控功能,可以通过http端点获取应用程序的运行状况和性能指标
集成测试支持: 提供了一套方便的测试工具,可以轻松编写集成测试和端到端测试,这些工具可以模拟和管理应用程序的环境,简化测试的编写和执行
自动装配:
实际上是为了从spring.factories文件中获取到对应的需要进行装配的类,并生成相应的bean对象后交给spring管理
@SpringBootApplication: 它是一个组合注解,标记这个类为主配置类,springboot运行里面的main方法来启动程序
@SpringBootConfiguration: 用于定义和组织bean的创建和配置的类,被他标记的类springboot会自动识别为配置类
@EnableAutoConfiguration: 开启自动自动配置的功能,自动扫描和匹配依赖
@ComponentScan: 指定spring要扫描的组件和包路径,将其纳入到spring的管理范围
@AutoConfigurationPackage: 将主配置类所在包以及子包里面的所有组件扫描并加载到spring容器中
@Import(AutoConfigurationImportSelector.class): 将需要自动装配的类以全类名的方式返回
自动装配流程:
1. 启动应用程序: 当springboot应用程序启动时,会创建一个spring应用上下文(ApplicationContext)
2. 加载字段配置类: springboot会自动扫描spring.factories文件,该文件中列出了所有自动配置的类全限定名,springboot会自动加载这些配置类并纳入到应用程序上下文中
3. 条件化装配: 每个自动配置类都会使用条件注解(@ConditionalOnClass, @ConditionalOnProperty等)来判断是否满足特定条件,满足配置类会生效,否则会被忽略
4. 解决依赖关系: 他会检查bean定义中的依赖,并尝试将这些依赖注入到合适的bean实例中
5. springboot会自动加载应用程序的配置文件(application.yml或application.properies),并将属性绑定到相应的bean中
6. 完成自动装配: 当所有的自动配置类被处理完后,bean的依赖关系都被满足时,自动装配完成
Spring中常用的注解:
@Component:用于将一个类标识为Spring容器中的组件,让Spring自动扫描并创建该类的实例。
@Autowired:用于自动注入依赖,通过类型匹配实现依赖注入。
@Configuration:用于标识一个类为配置类,其中定义的Bean将被Spring容器管理。
@Bean:用于在配置类中定义一个Bean,Spring容器会根据该注解创建Bean实例。
@ComponentScan:用于指定Spring要扫描的组件的基本包路径。
@RequestMapping:用于映射HTTP请求到控制器方法,指定URL路径和请求方法。
@Controller:用于标识一个类为控制器,处理用户请求并返回响应。
@Service:用于标识一个类为服务层组件,通常用于业务逻辑的处理。
@Repository:用于标识一个类为数据访问层组件,通常用于数据库操作。
@Scope:用于指定Bean的作用域,如singleton(单例)、prototype(原型)等。
@Qualifier:与@Autowired配合使用,通过指定Bean的名称或ID来解决依赖注入的歧义性。
Spring Boot中常用的注解:
@SpringBootApplication:用于标识一个类为Spring Boot应用程序的入口点,包含了@Configuration、@EnableAutoConfiguration和@ComponentScan注解。
@EnableAutoConfiguration:用于开启Spring Boot的自动配置功能。
@Transactional:用于标识一个方法或类需要事务支持,实现数据库事务的管理。
@Value:用于注入配置文件中的属性值到一个Java变量。
@RestController:用于标识一个类为RESTful风格的控制器,类中的方法默认返回JSON格式的数据。
@GetMapping、@PostMapping等:用于映射HTTP请求到控制器方法,指定URL路径和请求方法。
@ConfigurationProperties:用于绑定配置文件中的属性值到一个Java对象,简化配置的读取和管理。
@EnableScheduling:用于开启Spring的定时任务调度功能。
@EnableCaching:用于开启Spring的缓存功能。
@ConditionalOnProperty:根据配置文件中的属性值来决定是否启用某个配置。
SpringCloud:
springCloud是spring家族中一款基于http协议的组件,是一系列框架的有序集合,利用了springboot开发便利性简化了分布式系统基础设施的开发,对于服务的注册发现,限流,熔断,降级,负载均衡等都可以使用springboot一键启动和部署
1. 注册中心:
_1. eureka: 注册中心先启动,服务提供者会在注册中心进行注册,并且每30秒向注册中心发送一次心跳,消费者服务启动会去注册中心拉取服务提供者的服务名称
缺点: 当服务提供者发生故障时,30秒后注册中心没有收到心跳,那么注册中心会给服务提供者三次机会,也就是90秒的时间,如果注册中心一直没有收到心跳则会将这个服务踢除,被踢除后服务注册中心不会主动将这个服务不存在的消息推送给消费者服务,消费者服务会在90秒内再次访问服务提供者的话就会报错,但是过了90秒后就不会了
_2. nacos: 注册中心启动后,启动服务提供者,服务提供者会去注册中心的服务列表注册服务名称,并每隔5秒发生一次心跳,注册中心还会主动的去获取这个服务是否存在,消费者服务启动后会去服务列表中拉取服务名称,就算服务提供者发生故障,注册中心会主动的获取这个服务是否存在并将信息 推送给消费者服务,这个就不会存在Eureka中存在的问题了
nacos不仅能作为注册中心,还能够作为配置中心,可以同一管理微服务的配置文件,需要热更新的配置放在配置中心里面,微服务会主动的去拉取最新的配置信息
2. gateway(网关):
用于处理客户端请求的路由,过滤和转发等功能,作为系统的统一访问入口,将外部请求转发到不同的微服务实例,并提供请求的认证,授权,限流和监控等功能
_1.路由转发: 根据请求的url路径和参数将请求转发到相应的微服务实例,可以根据路由的规则动态的请求转发和负载均衡,实现请求的动态路由和负载均衡
_2. 认证和授权: 可以对请求进行认证和授权,确保只有经过认证和授权的请求才能访问相应的微服务
_3.. 限流和熔断: 对请求进行限流和熔断,防止微服务被过多的请求压垮,根据请求的qps(每秒请求数)进行限制,并在微服务出现故障或超时时进行熔断,避免级联故障
_4. 监控和统计: 对请求进行监控和统计,收集请求的指标数据,如请求的响应时间,成功率等,通过监控的数据分析系统的性能和蒋康状况,及时发现和解决问题
3. Ribbon(负载均衡): 它是一个基于http协议请求的客户端负载均衡
当请求进入网关后会经过RibbonLoadBalancerClient客户端,通过客户端去获取服务名称,在去注册中心的服务列表拿到服务的地址,最后客户端根据服务地址以负载均衡的策略调用微服务(默认以轮询方式)
他默认使用懒加载,也就是第一次访问的时候才会去访问客户端,这样就会导致第一次请求的时间很长,我们可以在配置文件中配置为饥饿加载降低第一次的访问时长
负载均衡策略:
_1. 轮询: 按照顺序依次将请求分发给每个微服务,循环往复,实现请求的均匀分发
_2. 随机: 随机选择一个服务处理每个请求,每个请求都有随机的概率被分发到不同的微服务中,实现了请求的随机分发
_3. 加权轮询: 给每个微服务分配一个权重值,权重值越高的微服务被选中的概率越大,根据服务的性能,负载情况等因素调整这个权重值,实现请求的按比例分发
_4. 加权随机: 给每个服务分配一个权重值,将请求随机分发给服务处理,权重值越高的被选中的概率越大
_5. 最少连接: 选择当前连接数最少的服务来处理请求,通过统计到每个服务的当前连接数,选择最少的服务,实现请求的负载均衡
_6. 最短响应时间: 根据每个服务响应时间选择最快的服务处理请求
4. Hystrix(断路器,熔断器):
断路器是统计发生的异常比例,如果达到了qps阈值则会开启熔断器,熔断器会默认开启5秒,5秒内会拦截一切请求,5每秒后会进入半熔断状态并尝试放行一个请求,如果能够成功方伟微服务,那么熔断器就会处于关闭状态,整个过程是循环的
5. Feign(远程调用):
他提供了http请求模版,通过编写简单的接口和插入注解,就可以定义好http请求参数,格式,地址等信息
在启动类上使用注解@EnableFeignClients开启远程调用
_1. 创建feign客户端接口: 定义一个java接口,使用feign的注解描述远程服务的调用方式
@FeignClient(name = "service-provider") // 指定服务提供者的名称
public interface MyFeignClient {@GetMapping("/api/resource/{id}")Resource getResource(@PathVariable("id") Long id);
}
_2. 在需要远程调用服务的地方,通过依赖注入的方式使用feign客户端接口
@Autowired
private MyFeignClient feignClient;public void doRemoteCall() {Resource resource = feignClient.getResource(123L);// 处理远程调用返回的结果
}
6. Sentinel:
是一个开源分布式系统的流量控制和熔断框架,解决流量控制,熔断降级,系统负责保护等问题,提供了实时监控,统计和告警功能
7. 雪崩及处理方式:
由于某个服务的故障或异常导致该服务所依赖的其他服务也出现故障或异常,最终导致整个系统的崩溃或无法正常工作的现象,这是请求的限流可以进行一个预防措施,熔断降级,超时处理,仓壁模式则可以对雪崩进行一个补救措施
仓壁模式: 也叫线程池隔离,给每个微服务设置一定数量的线程,避免Tomcat资源被耗尽,当某个服务发生故障后不会对其他服务参数影响
超时处理: 当大量请求进入sentinel后是以一个平稳的趋势,没有进入的我们设置一个等待时间,超过时间的返回一个超时提示避免陷入永久等待
分布式事务:
在分布式系统中涉及到的服务或数据库操作的一系列操作.要么全部执行成功,要么全部回滚,保证数据的一致性和可靠性,由于分布式系统的特点,如网络延迟,节点故障等,传统的单机事务无法直接应用到分布式环境中,因此需要采用特定的处理方式来处理分布式事务
_1. 两阶段提交: 2pc是一中同步的分布式事务处理方式,它包括协调组和参与者两个角色,在第一阶段,协调者询问所有参与是否可以提交事务,参与者根据自身状态回答,在第二阶段,协调者根据参与者的反馈决定是否提交事务,2pc的缺点是协调者单点故障,阻塞和数据不一致的风险
_2. 三阶段提交: 3pc是2pc的改进,引入了超时机制.
相关文章:

spring-springboot -springcloud
目录 spring: 动态代理: spring的生命周期(bean的生命周期): SpringMvc的生命周期: SpringBoot: 自动装配: 自动装配流程: Spring中常用的注解: Spring Boot中常用的注解: SpringCloud: 1. 注册中心: 2. gateway(网关): 3. Ribbon(负载均…...

DRG/DIP 2.0时代下基于PostgreSQL的成本管理实践与探索(下)
五、数据处理与 ETL 流程编程实现 5.1 数据抽取与转换(ETL) 在 DRG/DIP 2.0 时代的医院成本管理中,数据抽取与转换(ETL)是将医院各个业务系统中的原始数据转化为可供成本管理分析使用的关键环节。这一过程涉及从医院 HIS 系统中抽取患者诊疗数据,并对其进行格式转换、字…...

打造本地音乐库
文章目录 存储介质硬盘(NAS)媒体播放器(可视MP3、MP4)实体介质(CD光盘、黑胶片)注意事项为什么不使用在线音乐(App)和网盘打造一套HiFi系统的成本非常高 获取音乐正版音乐途径免费音…...

【2024 - 年终总结】叶子增长,期待花开
写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言论博客创作保持2024的记录清单博客科研开源工作生活 总结与展望互动致谢参考 前言…...

python 统计相同像素值个数
目录 python 统计相同像素值个数 最大值附近的值 python 统计相同像素值个数 import cv2 import numpy as np import time from collections import Counter# 读取图像 image cv2.imread(mask16.jpg)# 将图像转换为灰度图像 gray_image cv2.cvtColor(image, cv2.COLOR_BGR2…...

蓝卓“1+2+N”智慧工厂架构,让工业智能更简单
面对复杂的工业环境、海量的数据以及多样化的业务需求,如何实现智能化转型,让工业智能触手可及,成为了众多企业面临的难题。蓝卓以创新精神为引领,推出了“12N”智慧工厂架构,旨在简化工业智能的实现路径,让…...

12、MySQL锁相关知识
目录 1、全局锁和表锁使用场景 2、行锁的意义 3、为什么说间隙锁解决了快照的幻读? 4、RR隔离级别产生幻读的场景 5、详解元数据锁(MDL)作用以及如何减少元数据锁 6、出现死锁场景 7、查看MySQL锁情况 8、自增锁 1、全局锁和表锁使用场景 全局锁 备份数据库:当需要…...

某大厂一面:HashMap 的put方法具体做了哪些操作
HashMap 的 put 方法是一个常用的操作,它将一个键值对插入到哈希表中。下面是 put 方法执行的详细流程,包括各个步骤的解释,并附上相应的代码片段。 1. 检查键是否为 null 如果传入的键为 null,HashMap 会特别处理这种情况&…...

WPF基础 | 深入 WPF 事件机制:路由事件与自定义事件处理
WPF基础 | 深入 WPF 事件机制:路由事件与自定义事件处理 一、前言二、WPF 事件基础概念2.1 事件的定义与本质2.2 常见的 WPF 事件类型 三、路由事件3.1 路由事件的概念与原理3.2 路由事件的三个阶段3.3 路由事件的标识与注册3.4 常见的路由事件示例 四、自定义事件处…...

精选100+套HTML可视化大屏模板源码素材
大屏数据可视化以大屏为主要展示载体的数据可视化设计。 “大面积、炫酷动效、丰富色彩”,大屏易在观感上给人留下震撼印象,便于营造某些独特氛围、打造仪式感。 原本看不见的数据可视化后,便能调动人的情绪、引发人的共鸣。 使用方法&…...

如何使用Python爬虫按关键字搜索AliExpress商品:代码示例与实践指南
在电商领域,能够按关键字搜索并获取商品信息对于市场分析、选品和竞品研究至关重要。AliExpress(速卖通)作为全球知名的跨境电商平台,提供了丰富的商品数据。以下将详细介绍如何使用Python爬虫按关键字搜索AliExpress商品…...

No.36 学习 | Python 函数:从基础到实战
最近我在学 Python 编程,今天可算是狠狠钻研了一把 Python 里的函数,感觉脑袋里的知识又充实了不少,赶紧来记一记。 一、Python函数基础概念 (一)pass语句:代码块的“占位符” 在编写代码时,有…...

Unity常用特性(Attribute)用法
一.UnityEngine命名空间 1.[Header(string)] inspector面板上给显示的字段上加一个描述 通常情况下,用于在 Inspector 窗口中创建字段的逻辑分组 public class AttributeTest : MonoBehaviour {[Header("public_field_num")]public int num; }2.[Tool…...

VUE对接deepseekAPI调用
1.先去开放平台注册账号申请api key。开放平台:https://platform.deepseek.com/api_keys 2.你的项目需要有发送请求的axios或者自己写。 npm install axios # 或 yarn add axios 3.创建 API 调用函数 在 Vue 项目中,通常会将 API 调用的逻辑封装到一个…...

【Postman 接口测试】接口测试基础知识
在软件开发与测试领域,接口测试是保障软件质量的关键环节之一,而 Postman 作为一款功能强大且广泛使用的接口测试工具,能帮助我们高效地进行接口测试工作。下面,我们将详细介绍接口测试的基础知识,包括接口的认识、接口…...

谷粒商城——商品服务-三级分类
1.商品服务-三级分类 1.1三级分类介绍 1.2查询三级分类查询-递归树型结构数据获取 1.2.1导入数据pms_catelog.sql到数据表pms_category 1.2.2一次性查出所有分类及子分类 1.2.2.1修改CategoryController.java /*** 查出所有分类以及子分类,以树形结构组装起来*/R…...

视觉语言模型 (VLMs):跨模态智能的探索
文章目录 一. VLMs 的重要性与挑战:连接视觉与语言的桥梁 🌉二. VLMs 的核心训练范式:四种主流策略 🗺️1. 对比训练 (Contrastive Training):拉近正例,推远负例 ⚖️2. 掩码方法 (Masking):重构…...

HarmonyOS NEXT:华为分享-碰一碰开发分享
随着科技的不断进步,智能手机和智能设备之间的互联互通变得越来越重要。华为作为科技行业的领军企业,一直致力于为用户提供更加便捷、高效的使用体验。HarmonyOS NEXT系统的推出,特别是其中的“碰一碰”功能,为用户带来了前所未有…...

宝塔Linux+docker部署nginx出现403 Forbidden
本文主要讲述了宝塔docker部署nginx出现403 Forbidden的原因,以及成功部署前端的方法步骤。 目录 1、问题描述2、问题检测2.1 检测监听端口是否异常2.2 检测Docker容器是否异常2.2.1 打开宝塔Linux的软件商店,找到Docker管理器,查看前端容器是…...

软件测试丨Redis 的数据同步策略以及数据一致性保证
Redis 以其键值存储的方式,为开发者提供了数据快速存取的能力。它不仅支持丰富的数据结构,如字符串、哈希、列表、集合等,而且提供了高效的数据同步与一致性保障机制。正因为如此,Redis 被广泛应用于缓存、消息队列、实时数据分析…...

C语言-运算符
1. 按位与运算符(&) 按位与运算符对两个整数的每一位执行“与”操作。只有当两个相应位都为 1 时,结果才为 1 ;否则为 0。 // 示例 int a 5; // 二进制: 0101 int b 3; // 二进制: 0011 int result a & b; …...

困境如雾路难寻,心若清明步自轻---2024年创作回顾
文章目录 前言博客创作回顾第一次被催更第一次获得证书周榜几篇博客互动最多的最满意的引发思考的 写博契机 碎碎念时也运也部分经验 尾 前言 今年三月份,我已写下一篇《近一年多个人总结》,当时还没开始写博客。四月份写博后,就顺手将那篇总…...

表格标签基本使用
表格主要用于显示、展示数据,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的教据表现得很有条理。 1.<table></table>是用于定义表格…...

【学术会议论文投稿】深度解码:机器学习与深度学习的界限与交融
目录 一、定义与起源:历史长河中的两条轨迹 二、原理差异:从浅层到深层的跨越 三、代码解析:实战中的机器学习与深度学习 机器学习示例:线性回归 深度学习示例:卷积神经网络(CNN) 四、应用差异:各自领…...

使用printmap()函数来打印地图
使用PrintMap()函数可以将地图布局发送到打印机.默认情况下,任务会发送到地图文档保存的默认打印机,但也可以通过自定义一个特定的打印机来执行打印任务 操作方法 1.打开目标地图 2.打开python窗口 3.导入arcpy.mapping模块 import arcpy.mapping as mapping 4.引用活动地…...

MyBatis Plus 的 InnerInterceptor:更轻量级的 SQL 拦截器
在 Spring Boot 项目中使用 MyBatis Plus 时,你可能会遇到 InnerInterceptor 这个概念。 InnerInterceptor 是 MyBatis Plus 提供的一种轻量级 SQL 拦截器,它与传统的 MyBatis 拦截器(Interceptor)有所不同,具有更简单…...

Java复习第四天
一、代码题 1.相同的树 (1)题目 给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p[1,2,3],q[1,2,3] 输出:true示例 2: 输…...

docker 安装 mysql 详解
在平常的开发工作中,我们经常需要用到 mysql 数据库。那么在docker容器中,应该怎么安装mysql数据库呢。简单来说,第一步:拉取镜像;第二步:创建挂载目录并设置 my.conf;第三步:启动容…...

本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程
文章目录 前言1.关于SigNoz2.本地部署SigNoz3.SigNoz简单使用4. 安装内网穿透5.配置SigNoz公网地址6. 配置固定公网地址 前言 本文介绍如何在Ubuntu系统上使用 Docker 快速部署一款强大的应用性能监控工具SigNoz,并结合cpolar内网穿透工具轻松实现异地远程使用。 …...

防火墙的会话并发数、端口数量及其关系
防火墙的会话并发数、端口数量及其关系: 会话并发数:会话并发数,也称为并发连接数,是指防火墙能够同时处理的点对点连接的最大数目。这个参数直接影响到防火墙在高流量环境下的表现,特别是对于需要处理大量并发…...