Java中有三种移位运算符
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
Java中有三种移位运算符
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
web.xml 文件中,
metadata-complete="true" 是默认值!
metadata-complete 值必须修改掉为 "false" !
Servlet 3.0 的部署描述文件 web.xml 的顶层标签 <web-app> 有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的。如果设置为 true,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragment.xml 的扫描,亦即禁用可插性支持,);如果不配置该属性,或者将其设置为 false,则表示启用注解支持(和可插性支持)。
TeaFrameWork 、Smart Framework 、JFinal
SMVC:是基于java开发的轻量级MVC框架,框架宗旨:方法加上注解即接口
Latke:一个类似 Spring,但以 JSON 为主的 Java Web 框架
Blade:基于 Java8 + Netty4 创造的轻量级、高性能、简洁优雅的Web框架
上个小节简单的描述了一下注册中心如何处理与服务提供者的交互问题,也列举了几个简单的代码片段,中间有几个场景是需要通知服务消费者的几个业务逻辑的
1)当服务消费者服务发布成功且审核通过的情况下,需要通知服务订阅者
2)当某个服务下线的时候,也需要通知服务订阅者某个服务下线
SLF4J的全称是Simple Logging Facade for Java,即简单日志门面。SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logging, logback和log4j。
SLF4J提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。
Mybatis-Plus
的条件构造器LambdaQueryWrapper
实现原理:
Wrappers.<User>lambdaQuery().eq(User::getUserName, "张三")
HttpClient最基本的功能就是执行HTTP方法。HTTP方法的执行涉及到若干HTTP请求/HTTP响应的交换,通常是在HttpClient内部被处理的。使用者需要提供一个请求对象来执行,同时HttpClient需要将请求传输到目标服务器上,然后返回相应的响应对象,或者在执行不成功的时候抛出异常。
用注解 @Before(Tx.class) 实现 事务回滚
@Before(Tx.class) public void pay() throws Exception { //throws exception; }
方法体不能扑捉异常,所有的异常都抛出,当出现异常时事物将回滚(即 事务的回滚 是依赖 抛出异常 来实现的)
优点:简单暴力,不需要去处理每个异常,直接抛出即可;
缺点:不能详细的区分返回数据、视图,只能笼统的报出异常;
本小节测试一下限流的功能,首先我们先定义一个简单的类,配置一下它单位时间最大的调用次数
上两节我们简单地说明了注册中心的功能和基本结构,本节重点讲述注册中心如何处理服务提供者发送过来的信息
因为我们之前讲过Netty网络端的定义说明的,也讲了服务提供者发布服务的知识了,我们看看默认的注册中心的处理器是如何处理发布的信息的