随笔分类 - Spring
摘要:RabbitMQ消息队列 什么是消息队列? 一般我们在进行远程调用时,可以使用发送HTTP请求来完成,现在可以使用第二种方式,那就是消息队列。 他能将发送方发送的消息放入队列中,当新消息入队时,会通知接收方进行处理,一般消息发送方称为生产者,接收方称为消费者。 这样所有的请求都直接丢到消息队列中,再
阅读全文
摘要:分布式权限校验 现在有一个登录问题,假如需要用户登录之后才能查询图书和借阅图书。那要怎么设计? 单体应用的权限校验原理: 浏览器向服务端发送请求,访问网站 服务端接收请求后,创建一个sessionid,存储在服务端,然后发送给浏览器作为Cookie保存 以后浏览器每次请求都携带这个cookie。这样
阅读全文
摘要:Seata与分布式事务 先回顾下数据库事务吧: 原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:事务开始之前和事务结束之后,数据的完整性没有被破坏。 隔离性:数据库允许
阅读全文
摘要:Sentinel 流量防卫兵 之前,我们了解到了微服务雪崩问题,就是一个微服务出现问题,有可能导致整个联络直接不可用,这时候就需要进行即使的熔断和降级,之前我们使用Hystrix来实现。现在我们使用Sentinel 。 Sentinel 有以下特征: 丰富的应用场景:例如秒杀、消息削峰填谷、集群流量
阅读全文
摘要:微服务进阶 由于之前的微服务解决方案中的很多框架已经停止维护了(Ribbon、Hystrix、Zuul已停止更新,并被Spring Cloud彻底移除),超过半数的组件都处于不可用状态,因此我们需要使用另外一套更好的解决方案 Spring Cloud Alibaba Spring Cloud Ali
阅读全文
摘要:GateWay路由网关 一般情况下,不是所有微服务都需要直接暴露给外部调用,这时可以使用路由机制,添加一层防护,让所有请求全部通过路由来转发到各个微服务,并且转发给多个微服务实例也可以实现负载均衡。 部署网关步骤如下: 创建一个新模块,添加如下依赖: <dependency> <groupId>or
阅读全文
摘要:LoadBalancer 负载均衡 负载均衡的实现原理: 在添加@LoadBalanced注解后,会启用拦截器对我们发起的服务调用请求进行拦截,叫做LoadBalancerInterceptor,它实现ClientHttpRequestInterceptor接口。 默认使用轮询的负载均衡策略,也可以
阅读全文
摘要:SpringCloud 微服务 微服务是一种全新的架构风格。其优点主要有: 微服务把一个庞大的单体应用分解成一个个小型服务,比如图书管理系统,有登录、注册、搜索、借阅等功能,我们可以将这些姑奶奶单独做成一个小型的Spring Boot项目,独立运行。 每个小型的微服务,都可以独立部署和升级,这样即使
阅读全文
摘要:拦截器 拦截器(Interceptor)类似于过滤器(Filter) SpringMVC的拦截器作用是在请求到达控制器之前或之后进行拦截。可以对请求和响应进行一些特定的处理。 拦截器的应用场景如下: 登录验证:使用拦截器可以判断用户是否已经登录,如果未登录则跳转到登录页面。 权限校验:根据用户权限进
阅读全文
摘要:HttpMessageConverter(HTTP消息转换器) HTTP消息转换器主要是将请求的表单数据封装成对象,controller中的方法直接用对象接收数据。 HttpMessageConverter接口可以将请求协议转换为Java对象,也可以把Java对象转换为响应协议。 对于程序员来说,s
阅读全文
摘要:常见的视图组件 Spring MVC支持的常见视图包括:InternalResourceView:内部资源视图(Spring MVC内置的,专门为jsp模板语法准备的)、RedirectView(重定向视图(Spring MVC内置的,用来完成重定向效果)、ThymeleafView(第三方,专门为
阅读全文
摘要:获取请求数据 使用原生的Servlet API获取请求数据 // 处理注册请求 @PostMapping("/register/user") public String register(HttpServletRequest request, HttpSession session, HttpSer
阅读全文
摘要:什么是springMVC springMVC是一个实现了mvc架构模式的web框架。底层基于servlet实现。 springMVC帮我们做了什么 springMVC帮我们做了什么?与传统的servlet开发有什么区别? 入口控制:springMVC通过DispatcherServlet作为入口控制
阅读全文
摘要:spring对junit的支持 主要是自动从spring容器中获取bean。不用手动获取了。 spring对junit4的支持 1.引入spring和junit4的依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>s
阅读全文
摘要:事务支持 什么是事务? 在一个业务流程中,需要多条DML(insert、delete、update)语句联合才能完成。这些语句必须同时成功或者同时失败。这样才能保证数据安全。 多条DML同时成功或者同时失败,叫做事务。 事务处理的四个过程 开启事务 执行业务代码 提交事务(没出现异常,提交成功。co
阅读全文
摘要:jdbcTemplate jdbcTemplate是spring提供的一个jdbc模板类,是对jdbc的封装。 当然你也可以使用其他框架融入MyBatis、Hibernate。 GoF之代理模式 代理模式的作用 当一个对象需要受到保护的时候,可以使用代理对象去完成某个行为。 需要给某个对象进行功能增
阅读全文
摘要:spring框架创建bean就是利用反射机制 反射机制的代码如下: public static void main(String[] args) throws Exception { System.out.println("Hello, World!"); // 使用反射机制调用方法 // 获取类
阅读全文
摘要:bean的生命周期 粗略划分5步 实例化bean 调用的是无参数的构造方法 bean属性赋值 执行set注入 初始化bean 调用bean的init()方法,需要自己写,自己配 使用bean 销毁bean 调用bean的destroy(),需要自己写,自己配 注意:自定义的init()和destro
阅读全文
摘要:bean的作用域 ioc容器默认bean是单例的(singleton)。 bean对象的创建是在初始化上下文的时候就创建了,每一次调用getBean()时,都返回那个单例对象。 // 这行代码会创建配置里面的bean对象 ApplicationContext context = new FileSy
阅读全文
摘要:OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度,提高扩展力 什么是控制反转 控制反转:Ioc(Inversion of Contr
阅读全文
浙公网安备 33010602011771号