动态
开发
SpringBoot 常用注解
Controller1、@RestController@RestController 相当于@Controller+@ResponseBody @ResponseBody 注解用于将 Controller 的方法返回的对象,通过适当的 HttpMessageConverter 转换为指定格式后,写入到 Response 对象的 body 数据区,通常用来返回 JSON 或者 XML 数据,返回 JSON 数据的情况比较多。 2、@RequestMapping@RequestMapping 注解是用来映射请求的,即指明 Controller 可以处理哪些 URL 请求,该注解既可以用在类上,也 ...
转载
OAuth 2.0 的四种方式
本文为转载内容,来自作者阮一峰 原文地址:OAuth 2.0 的四种方式 RFC 6749OAuth 2.0 的标准是 RFC 6749 文件。该文件先解释了 OAuth 是什么。 OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。……资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。 这段话的意思就是,OAuth 的核心就是向第三方应用颁发令牌。然后,RFC 6749 接着写道: (由于互联网有多种场景,)本标准定义了获得令牌的四种授权方式(authorization grant )。 也就是说,OAuth 2.0 规定了四种 ...
开发
SpringBoot启动原理
开始这是一个 SpringBoot 的启动类 SpringBoot 通过 @SpringBootApplication 注解及SpringApplication.run()方法,进行启动类的配置加载 123456@SpringBootApplicationpublic class ServiceMqApplication { public static void main(String[] args) { SpringApplication.run(ServiceMqApplication.class, args); }} 进 ...
开发
Java对象四种引用类型
从 JDK 1.2 版本开始,把对象的引用分为 4 种级别,从而使程序能更加灵活地控制对象的生命周期。 这 4 种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 强引用(Strongly Re-ference) 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的。当内存空间不足,即使该对象以后永远都不会被用到,Java 虚拟机宁愿抛出 OutOfMemoryError 错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。因此强引用是造成 Ja ...
开发
理解Java中的ThreadLocal
引子现在有这样一个需求,在多线程并发的场景下,要求每个线程中的变量都是相互独立的举个例子:线程 1 为变量 A 设置一个值 1,那么他获取到值的只能是线程 1 设置进去的值 ;线程 2 为变量 A 设置一个值 2,那么他获取到的值的只能是线程 2 设置进去的值 下面是一个 Demo 123456789101112131415161718192021222324252627282930public class Demo { /** * 实例变量 */ private String A; public void setA(String a) { ...
开发
Git拉取分支到本地
方法一:直接克隆分支在本地找个文件夹,打开 git 后直接执行命令 git clone -b <分支名> <远程仓库地址> 比如 1git clone -b dev git@github.com:imaegoo/twikoo.git 指定克隆深度在上面的基础上,如果只想拉取某个指定分支的最近一次 commit 1git clone --depth 1 -b dev git@github.com:imaegoo/twikoo.git 方法二:拉取分支前提 需要需要本地初始化仓库(git init) 需要添加远程仓库地址(git remote add orig ...
开发
Redis哨兵模式
原理Sentinel(哨兵)可以管理多个 Redis 服务器,它提供了监控,提醒以及自动的故障转移的功能, Replication(复制)则是负责让一个 Redis 服务器可以配备多个备份的服务器。 Redis 也是利用这两个功能来保证 Redis 的高可用的 主从复制实现高可用 通过主从架构,一个主节点,两个从节点。 通过手动监控的方式,监控 master 的宕机,以及出现故障将故障转移的方式可以做到高可用。 比如:如果主节点宕机,我们手动监控到主节点的宕机,并将某一个 Slave 变成主节点。 但是这样话,如何手动监控也是很麻烦的事情。所以使用 sentinel 机制就可以解决了这个问题, ...
开发
Redis集群介绍及搭建
集群集群概念集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。 集群的特点 可扩展性:集群的性能不限制于单一的服务实体,新的服务实体可以动态的添加到集群,从而增强集群的性能。(动态拓展/静态拓展) 高可用性:集群当其中一个节点发生故障时,这台节点上面所运行的应用程序将在另一台节点被自动接管,消 ...
开发
测试ES在Windows下集群的搭建
准备工作下载 Elasticsearch 的 Windows 版本:Download (Linux 上搭建同理,主要就是修改配置文件) 这里使用的是 ES7 的版本 解压以后直接复制三份,文件结构 注意:如果是之前使用过的的 ES,复制的时候不要复制 data文件夹 修改config 目录下的 jvm.options文件,修改 es 启动时占用内存大小 12-Xms512m-Xmx512m config 目录下的 elasticsearch.yml文件,配置跨域(已经配置过可以忽略)和集群设置 注意:Windows 下编辑的时候编码为 UTF-8 编码,不然启动会报错! 节点一【node- ...
开发
使用Maven对项目打包并制作docker镜像
项目打包IDEA使用 IDEA 打包项目时注意,需要加入 maven 插件,否则只会生成项目 .class 字节文件,缺少 lib 依赖。 123456789<build> <finalName>打包的jar包文件名</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plu ...