一、异步任务
当一个方法需要执行很长时间时,并且这个方法的执行对下面的代码没有任何影响(没有用到返回值),便可以使用异步来加快程序的运行,而不是等待那个方法执行完才执行下面的。
举个例子:
1 |
|
学习 笔记
springboot整合elasticsearch常用的方式有以下三种
我们今天就来为大家讲解spring-data-elasticsearch这种方式来集成es。为什们推荐这种呢,因为这种方式spring为我们封装了常见的es操作。和使用jpa操作数据库一样方便。用过jpa的同学一定知道。
jpa只需要简单继承JpaRepository就可以实现对数据库表的crud操作
Spring3.1之后定义了两个缓存接口,CacheManager和Cache来统一不同的缓存,并支持JCache注解简化开发。
一些重要的注解:
一些重要的配置:
接下来我们就围绕这些概念进行展开,实际使用与底层原理
一般来说,一个starter会伴随着自动配置类,这样启动的时候就会自动加载到容器中
1 | @Configuration //指定这个类是一个配置类 |
SpringBoot整合JDBC十分简单,只需添加jdbc与mysql依赖即可:
1 | <dependency> |
然后配置数据库相关信息:
使用环境Springboot1.5.10,对于Springboot2.x来说,某些源码改动,例如1.3中设置主页的源码变动
通过前面的学习,对于这种映射我们知道都需要去看底层的自动配置类,而静态资源属于Web数据,所以我们打开WebMvcAutoConfiguration
查看
1 | @EnableConfigurationProperties({ WebMvcProperties.class, ResourceProperties.class }) |
首先往下可以看到导入了一个ResourceProperties
类,就是我们要找的资源配置类
1 | @ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false) |
市面上的日志框架;
JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j….
日志门面 (日志的抽象层) | 日志实现 |
---|---|
Log4j JUL(java.util.logging) Log4j2 Logback |
左边选一个门面(抽象层)、右边来选一个实现;如:
日志门面: SLF4J;
日志实现:Logback;
对于不同的框架,其选择的日志框架也是不同的
Spring:默认使用JCL日志门面
SpringBoot:使用SLF4j+Logback