大图
导图:
大约 71 分钟
导图:
springboot高级特性:
为了方便多环境适配,springboot简化了profile功能。
官方文档 https://junit.org/junit5/
Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库,以前用的是JUnit4。
作为最新版本的JUnit框架,JUnit5与之前版本的Junit框架有很大的不同。由三个不同子项目的几个不同模块组成。
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
在window上安装kafka很简单,首先从kafak官网下载对应版本的kafka。
然后将下载的zip包进行加压缩,就可以看到kafka的源码包了。
每天早上在启动springboot程序时候,要定时去数据库中加载有代表性利率债券,然后在盘中时候,根据有代表性利率债清单将有代表性的债券行情发送到CDMS数据发布系统上供会员使用,因此,本文总结一下在spring容器启动时,对缓存的几种初始化方式。
首先我们需要定义一个缓存,因为有代表性利率债清单只有很小一部分,因此我们选择内存缓存,并且在对有代表性行情的时候,我们只需要用到债券ID一个属性,因此我们在选择内存缓存的时候,使用Set数据结构存储债券ID,这样保证最小存储代价并且最快速的查找到债券ID,所以定义缓存对象如下:
@Component
public class Cache {
private static final Logger log = LoggerFactory.getLogger(Cache.class);
// 缓存结构
private final Set<Integer> cache = new HashSet<>();
// 读写锁,防止线程不安全
private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
private final Lock readLock = lock.readLock();
private final Lock writeLock = lock.writeLock();
// 初始化缓存
public void initCache(){
for(int i=0;i<3;i++){
if(i%2 == 0){
cache.add(i);
}
}
}
// 缓存更新
public boolean updateCache(int number){
try {
writeLock.lock();
cache.add(number);
System.out.print("数据更新成功,正在休眠.......缓存数据为:");
cache.stream().forEach(System.out::println);
Thread.sleep(5000);
} catch (InterruptedException e) {
log.info("缓存数据更新失败:"+number);
e.printStackTrace();
return false;
}finally {
writeLock.unlock();
}
return true;
}
// 读缓存判断
public boolean isContain(int num){
try {
readLock.lock();
if(cache.contains(num)){
return true;
}else {
return false;
}
}finally {
readLock.unlock();
}
}
}
需求:浏览发送/hello请求,响应 Hello,Spring Boot 2
引入依赖
<!--引入springboot的父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<dependencies>
<!--要用springboot开发web场景模块,就引入springboot对应web模块的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!--指定编译构建的jdk版本,不需要在服务期安装部署tomcat,只需要将程序打成jar包,
//在服务期上执行即可-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.4</version>
<!-- 下面指定为自己需要的版本 -->
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>