10.4学习

news/2024/10/5 1:12:26 标签: 学习

1.@Transactional

注意事项:

①事务函数中不要处理耗时任务,会导致长期占有数据库连接。

②事务函数中不要处理无关业务,防止产生异常导致事务回滚。

●事务传播属性

①REQUIRED(默认属性) 如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。

②MANDATORY 支持当前事务,如果当前没有事务,就抛出异常。

③NEVER 以非事务方式执行,如果当前存在事务,则抛出异常。

④NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

⑤REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。

⑥SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。

⑦NESTED (局部回滚) 支持当前事务,新增Savepoint点,与当前事务同步提交或回滚。 嵌套事务一个非常重要的概念就是内层事务依赖于外层事务。外层事务失败时,会回滚内层事务所做的动作。而内层事务操作失败并不会引起外层事务的回滚。

 

2.spring中的设计模式

●单例设计模式 : Spring 中的 Bean 默认都是单例的。

●⼯⼚设计模式 : Spring使⽤⼯⼚模式通过 BeanFactory 、 ApplicationContext 创建bean 对象。

●代理设计模式 : Spring AOP 功能的实现。

●观察者模式: Spring 事件驱动模型就是观察者模式很经典的⼀个应⽤。

●适配器模式:Spring AOP 的增强或通知(Advice)使⽤到了适配器模式、spring MVC 中也是⽤到了适配器模式适配 Controller 。

 

3.SpringCloud

Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。

80b974ad156a41e7b6530d432709ddb7.jpg

 

 

SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务,SpringCloud是依赖于SpringBoot的,而SpringBoot并不是依赖与SpringCloud,甚至还可以和Dubbo进行优秀的整合开发

 

​ MartinFlower 提出的微服务之间是通过RestFulApi进行通信,具体实现

 

●RestTemplate:基于HTTP协议

●Feign:封装了ribbon和Hystrix 、RestTemplate 简化了客户端开发工作量

●RPC:基于TCP协议,序列化和传输效率提升明显

●MQ:异步解耦微服务之间的调用

 

4.Spring Boot

●Spring Boot 通过简单的步骤就可以创建一个 Spring 应用。

●Spring Boot 为 Spring 整合第三方框架提供了开箱即用功能。

●Spring Boot 的核心思想是约定大于配置。

 

●Spring Boot 解决的问题

①搭建后端框架时需要手动添加 Maven 配置,涉及很多 XML 配置文件,增加了搭建难度和时间成本。

②将项目编译成 war 包,部署到 Tomcat 中,项目部署依赖 Tomcat,这样非常不方便。

③应用监控做的比较简单,通常都是通过一个没有任何逻辑的接口来判断应用的存活状态。

 

●Spring Boot 优点

 

①自动装配:Spring Boot 会根据某些规则对所有配置的 Bean 进行初始化。可以减少了很多重复性的工作。

比如使用 MongoDB 时,只需加入 MongoDB 的 Starter 包,然后配置 的连接信息,就可以直接使用 MongoTemplate 自动装配来操作数据库了。简化了 Maven Jar 包的依赖,降低了烦琐配置的出错几率。

②内嵌容器:Spring Boot 应用程序可以不用部署到外部容器中,比如 Tomcat。

应用程序可以直接通过 Maven 命令编译成可执行的 jar 包,通过 java-jar 命令启动即可,非常方便。

③应用监控:Spring Boot 中自带监控功能 Actuator,可以实现对程序内部运行情况进行监控,

比如 Bean 加载情况、环境变量、日志信息、线程信息等。当然也可以自定义跟业务相关的监控,通过Actuator 的端点信息进行暴露。

 

●自定义一个Starter

①创建 Starter 项目,定义 Starter 需要的配置(Properties)类,比如数据库的连接信息;

②编写自动配置类,自动配置类就是获取配置,根据配置来自动装配 Bean;

③编写 spring.factories 文件加载自动配置类,Spring 启动的时候会扫描 spring.factories 文件;

④编写配置提示文件 spring-configuration-metadata.json(不是必须的),在添加配置的时候,我们想要知道具体的配置项是什么作用,可以通过编写提示文件来提示;

⑤在项目中引入自定义 Starter 的 Maven 依赖,增加配置值后即可使用。

 

 

 

 

 

 

 

 


http://www.niftyadmin.cn/n/5690550.html

相关文章

android 全面屏最底部栏沉浸式

Activity的onCreate方法中添加 this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); Android 系统 Bar 沉浸式完美兼容方案自 Android 5.0 版本,Android 带来了沉浸式系统 ba - 掘金 (juejin.cn)https://juejin.cn/post/7075578…

随笔:标准是金

数据并不一定是资产,信息才是。 随着人工智能和大数据技术的兴起,和数字化转型的趋势。数据资产管理成为热门话题。需要指出的是,只有能够创造价值的数据才能成为资产。 如果数据要参与交易和传播,更需要转变为信息。通俗地讲&…

在java中都是如何实现这些锁的?或者说都有哪些具体的结构实现

在Java中,多种锁机制的实现依赖于不同的类和接口。以下是一些常见的锁机制及其在Java中的具体实现: 1. 互斥锁(Mutex) 实现方式:Java中的互斥锁可以通过synchronized关键字或ReentrantLock类来实现。synchronized关键…

【python实操】python小程序之函数的方法和赋值的区别

引言 python小程序之函数的方法和赋值 文章目录 引言一、函数的方法和赋值1.1 题目1.2 代码1.2.1 append方法1.2.2 赋值 1.3 代码解释1.3.1 append方法1.3.2 赋值 二、思考2.1 append方法和赋值的区别2.1.1 append方法2.1.2 赋值操作2.1.3 总结 一、函数的方法和赋值 1.1 题目…

论文笔记:Anytime Continual Learning for Open Vocabulary Classification

1. 挑战/问题 在开放词汇表图像分类中,随着时间的推移,模型需要不断学习新的标签,同时保留对旧标签的记忆。这导致几个挑战: 数据增量学习:模型需要在任意时间点有效地吸收新的训练样本。模型持续改进:模…

Jmeter中有关属性的获取的问题

Jmeter中有3个方法用来获取属性值: props.getProperty(propName), ${__property(propName)} ${__P(propName)} 试验了下,在JSR223 Sampler中使用以上3个方法获取属性值的情况 1. 返回结果如下: 这里看到,在jmeter属性列表里…

职业技术学校开设无人机培训技术详解

职业技术学校开设无人机培训技术,是一个涉及多个方面的综合性教学过程。以下是对该培训技术的详细解析: 一、培训目标 无人机培训技术的目标在于培养学员掌握无人机的基本原理、组装调试、飞行操作、安全规范及维修保养等技能,使其成为具备…

平面电磁波(解麦克斯韦方程)电场相位是复数的积分常数,电场矢量每个分量都有一个相位。磁场相位和电场一样,这是因为无损介质中实数的波阻抗

注意无源代表你立方程那个点xyzt处没有源,电场磁场也是这个点的。 j电流面密度,电流除以单位面积,ρ电荷体密度,电荷除以单位体积。 j方程组有16个未知数,每个矢量有三个xyz分量,即三个未知数,…