什么是单体应用
就是只有一个项目启动,并没有启动微服务,多台服务器,多个端口。
单体应用锁的使用
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
@RestController@Slf4jpublic class LockController {private Lock lock =new ReentrantLock();@RequestMapping("singleLock")public String singleLock() {log.info("进入了方法");lock.lock();try {log.info("进入了锁");Thread.sleep(60000);} catch (InterruptedException e) {e.printStackTrace();} finally {lock.unlock();}return "执行成功!";}}
启动项目,然后通过Postman测试
可以看到单体项目的多个请求访问,lock能够阻塞住请求。
等待一分钟,释放锁
接着,我们再次开启一个项目,复制一个Application,将端口8081启动
再次测试,访问两个项目


锁就失效了,这就是单体应用的时候会出现的问题。
