- 浏览: 72734 次
- 性别:
- 来自: 济南
最新评论
文章列表
spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。
devtools的原理
深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。
...
Linux 安装 sdkman 及使用方法
- 博客分类:
- linux
Linux 安装 sdkman 及使用方法sdkman是个linux/unix平台超级好用的开发工具安装、管理工具,能够极大的方便工作。有了它,可以很简单的一行命令搞定安装开发需要的工具,比如java环境...,,不用再一步步手动配置了。总之,大家用了都说好......
Maven的继承以及import作用域
- 博客分类:
- Maven
Maven的pom文件中可继承的元素包括:
groupId:项目ID,项目坐标核心元素
version:项目版本
description:描述信息
organization:组织信息
inceptionYear:创始年份
url:项目URL地址
developers:开发者信息
distributionManagement:项目部署配置
issueManagement:项目缺陷跟踪系统信息
ciManagement:项目持续集成系统信息
mybaits和springboot集成即可以写在application.yml里配置
mybatis: mapper-locations: classpath:mapping/*Mapper.xml type-aliases-package: com.example.entity
也可以写在java类里
使用@Bean的方式住入sqlSessionFactory
@Bean("sqlSessionFactory")
public SqlSessionFactory sqlSession(@Qualifier("dynamicDataSource&qu ...
深入理解和使用SpringBoot的@Configuartion类
代理类具用以下属性:
代理类是公共的、最终的,而不是抽象的。
未指定代理类的非限定名称。但是,以字符串 "$Proxy" 开头的类名空间应该为代理类保留。
代理类扩展 java.lang.reflect.Proxy。
代理类会按同一顺序准确地实现其创建时指定的接口。
如果代理类实现了非公共接口,那么它将在与该接口相同的包中定义。否则,代理类的包也是未指定的。注意,包密封将不阻止代理类在运行时在特定包中的成功定义,也不会阻止相同类加载器和带有特定签名的包所定义的类。
由于代理类将实现所有在其创建时指定的接口,所以对其 Class 对象调用 getInterfac ...
hystrix基础学习
- 博客分类:
- hystrix
Hystrix主要通过隔离服务之间的访问点,阻止他们之间的级联故障以及提供回退选项来实现容错.
Hystrix的容错方法主要:
1 资源隔离
2 熔断
3 降级
1 资源隔离主要指对主线程的隔离,Hystrix提供了2种线程隔离的方式:线程池 ...
java 线程/方法超时控制
- 博客分类:
- java
java 开发中经常遇到需要对线程、线程池、接口调用进行超时控制的需求,这种需求的场景往往是存在响应时间较长的接口或者方法,进行超时控制,避免因调用时间过长,影响调用者本身的性能甚至可用性,下面简单讨论下这些场合里超时控制的方法和工具。
1. Future 接口
Future接口是Java标准API的一部分,在java.util.concurrent包中,配合有返回值的线程使用。使用较多的方法有future.get(),future.get(long timeout, TimeUnit unit),注意get方法是一个同步方法,Futrue对象可以监视目标线程调用call的情况, ...
linux安装rz命令
- 博客分类:
- linux
yum install lrzsz
rz:从本地上传文件至服务器
sz filename:从服务器下载文件至本地
maven的scope属性
- 博客分类:
- Maven
在maven多模块项目中,为了保持模块间依赖的统一,常规做法是在parent model中,使用dependencyManagement预定义所有模块需要用到的dependency(依赖)
<dependencyManagement>
<dependencies>
<!-- Feign是一种声明式、模 ...
docker 启动MySql
- 博客分类:
- docker-mysql
docker start 7f6f55139362
用户:root 密码:123456
https://www.cnblogs.com/wangyu19900123/p/11641645.html
最近在看《Java并发编程的艺术》回顾线程池的原理和参数的时候发现一个问题,如果 corePoolSize = 0 且阻塞队列是无界的。线程池将如何工作?
我们先回顾一下书里面描述线程池execute() ...
1.重入锁 自旋锁 死锁
3.1定义: 当持1个线程的锁 再次获取锁时不会被锁住
3.2自旋锁:线程空转CPU(不会去堵塞等待其他线程唤醒)获取锁
3.3死锁:1个线程在等待另外一个等待的线程
While( true) {
} // 空转CPU
2.线程安全性问题
3.4活跃性问题
死锁
2个线程彼此持有对方的需要的锁
1 线程A拥有 对象锁1 同时等待线程B释放对象锁2
2 线程B拥有 对象锁2 同时等待线程A释放对象锁1
饥饿
线程一直获取不到CPU运行时间的机会
总结原因有3
1 高优先级线程吞噬了低优先级线程的时间
...
最靠谱的http协议无状态解释
- 博客分类:
- java基础
http协议无状态解释如下:
1 协议对于事务处理没有记忆能力【事物处理】【记忆能力】
2 对同一个url请求没有上下文关系【上下文关系】
3 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接 ...