PAcee Hub

学习 笔记


  • 首页

  • 标签

  • 分类

09.SpringBoot-任务

发表于 2019-12-24 | 分类于 springboot

一、异步任务

当一个方法需要执行很长时间时,并且这个方法的执行对下面的代码没有任何影响(没有用到返回值),便可以使用异步来加快程序的运行,而不是等待那个方法执行完才执行下面的。

举个例子:

1
2
3
4
5
6
7
8
9
10
11
12
@Service
public class TaskService {

public void hello(){
try {
Thread.sleep(3000);
System.out.println("我睡了三秒");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
阅读全文 »

08.SpringBoot-ES

发表于 2019-12-24 | 分类于 springboot

一、SpringBoot整合ElasticSearch

springboot整合elasticsearch常用的方式有以下三种

  • TransportClient
    这种方式基于TCP和ES通信,官方已经明确表示在ES 7.0版本中将弃用TransportClient客户端,且在8.0版本中完全移除它,所以不提倡。
  • REST Client
    上面的方式1是基于TCP和ES通信的(而且TransPort将来会被抛弃……),官方也给出了基于HTTP的客户端REST Client(推荐使用),官方给出来的REST Client有Java Low Level REST Client和Java Hight Level REST Client两个,前者兼容所有版本的ES,后者是基于前者开发出来的,只暴露了部分API,待完善
  • spring-data-elasticsearch
    除了上述方式,Spring也提供了本身基于SpringData实现的一套方案spring-data-elasticsearch

我们今天就来为大家讲解spring-data-elasticsearch这种方式来集成es。为什们推荐这种呢,因为这种方式spring为我们封装了常见的es操作。和使用jpa操作数据库一样方便。用过jpa的同学一定知道。

jpa只需要简单继承JpaRepository就可以实现对数据库表的crud操作

阅读全文 »

07.SpringBoot-Cache

发表于 2019-12-24 | 分类于 springboot

一、Spring缓存抽象接口

Spring3.1之后定义了两个缓存接口,CacheManager和Cache来统一不同的缓存,并支持JCache注解简化开发。

  • Cache接口为缓存组件的规范定义,包含了对缓存的各种操作集合,并提供了一系列的实现类,比如我们常用的RedisCache,EhCache。
  • CacheManager接口是用来管理Cache组件的,一个CacheManager可以包含多个Cache,如包含RedisCache,EhCache,并对其进行管理

一些重要的注解:

  • @Cacheable:针对方法配置,即根据请求参数对结果进行缓存。比如:查id为1的用户,结果便会被缓存,如果下次还查询1号用户,便不会调用方法,直接从缓存中返回数据
  • @CacheEvict:清空缓存,比如:删除1号用户,便清空1号用户的缓存
  • @CachePut:更新缓存,比如:修改了1号用户的手机号,便会更新1号用户的缓存。它与Cacheable的不同是这个方法总会被调用,Cacheable是如果缓存有就不调用方法了。
  • @EnableCaching:开启缓存注解

一些重要的配置:

  • keyGenerator:key缓存策略
  • serialize:value序列化缓存策略

接下来我们就围绕这些概念进行展开,实际使用与底层原理

阅读全文 »

06.SpringBoot-启动器

发表于 2019-12-24 | 分类于 springboot

自定义Starter

一般来说,一个starter会伴随着自动配置类,这样启动的时候就会自动加载到容器中

1
2
3
4
5
6
7
8
9
10
11
12
13
@Configuration  //指定这个类是一个配置类
@ConditionalOnXXX //在指定条件成立的情况下自动配置类生效
@AutoConfigureAfter //指定自动配置类的顺序
@Bean //给容器中添加组件

@ConfigurationPropertie结合相关xxxProperties类来绑定相关的配置
@EnableConfigurationProperties //让xxxProperties生效加入到容器中

自动配置类要能加载
将需要启动就加载的自动配置类,配置在META-INF/spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration,\
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\
阅读全文 »

05.SpringBoot-Data

发表于 2019-12-24 | 分类于 springboot

一、JDBC

SpringBoot整合JDBC十分简单,只需添加jdbc与mysql依赖即可:

1
2
3
4
5
6
7
8
9
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

然后配置数据库相关信息:

阅读全文 »

04.SpringBoot-Web

发表于 2019-12-24 | 分类于 springboot

使用环境Springboot1.5.10,对于Springboot2.x来说,某些源码改动,例如1.3中设置主页的源码变动

一、SpringBoot对静态资源映射

通过前面的学习,对于这种映射我们知道都需要去看底层的自动配置类,而静态资源属于Web数据,所以我们打开WebMvcAutoConfiguration查看

1
2
3
@EnableConfigurationProperties({ WebMvcProperties.class, ResourceProperties.class })
@Order(0)
public static class WebMvcAutoConfigurationAdapter implements WebMvcConfigurer {

首先往下可以看到导入了一个ResourceProperties类,就是我们要找的资源配置类

1
2
3
4
5
@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)
public class ResourceProperties {

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/",
"classpath:/resources/", "classpath:/static/", "classpath:/public/" };
阅读全文 »

03.SpringBoot-日志

发表于 2019-12-24 | 分类于 springboot

一、日志框架

市面上的日志框架;

JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j….

日志门面 (日志的抽象层) 日志实现
JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-logging Log4j JUL(java.util.logging) Log4j2 Logback

左边选一个门面(抽象层)、右边来选一个实现;如:

日志门面: SLF4J;

日志实现:Logback;

对于不同的框架,其选择的日志框架也是不同的

Spring:默认使用JCL日志门面

SpringBoot:使用SLF4j+Logback

阅读全文 »

02.SpringBoot-配置

发表于 2019-12-24 | 分类于 springboot

一、配置文件

Springboot不同于Spring,其配置文件有严格要求:

  • application.properties
  • application.yml(yaml)

只能是这两种才可以,名称固定。

一般来说Springboot在底层已经配置好,如果需要自己进行配置,便可以通过这个配置文件修改

例如:

1
2
server:
port: 8081
阅读全文 »

01.SpringBoot-入门

发表于 2019-12-24 | 分类于 springboot

一、Spring简单介绍

SpringBoot是为了简化开发人员开发而出现的,在之前使用SSM时,需要配置很多xml文件,才可以进行使用开发,使用Springboot,所有东西基本都自动帮你配好,只需写一些自定义的配置即可开发,是相当方便的一站式开发脚手架。

并且对于部署也相当方便,在以前可能需要安装tomcat然后把项目打成war包,再放到tomcat中,才算部署成功。使用Springboot,只需打成jar包,使用java命令运行即可。

阅读全文 »

99.SpringCloud 整合

发表于 2019-12-23 | 分类于 springcloud

SpringCloud 大整合

首先放一张自己制作的SpringCloud拓扑图

1576639341793

根据这张图我们进行整合

阅读全文 »
< 1…5678 >
PAcee

PAcee

学习 笔记

76 日志
6 分类
7 标签
© 2020 PAcee