目录结构:(只跟book相关的)

model:

package com.cxb.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
//自动生成表
@Entity
@Table(name="book")
public class Book {

@Id
@GeneratedValue
private Integer id;

@Column(length=100)
private String name;

@Column(length=50)
private String author;

@Column(length=50)
private Integer stock;   //库存

public Integer getStock() {
return stock;
}
public void setStock(Integer stock) {
this.stock = stock;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}

}

BookDao:

package com.cxb.dao;

import java.util.List;

import javax.transaction.Transactional;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import com.cxb.model.Book;
/**
 * springbootJPA
 *       这种就不需要写service类,直接在controller里面调用该dao的方法
 * @author 81046
 *
 */
public interface BookDao extends JpaRepository<Book, Integer>{

//And --- 等价于 SQL 中的 and 关键字
public List<Book> findByNameAndStock(String name,int stock);

// Or --- 等价于 SQL 中的 or 关键字
public List<Book> findByNameOrStock(String name,int stock);

//Between --- 等价于 SQL 中的 between 关键字
public List<Book> findByStockBetween(int min,int max);

//LessThan --- 等价于 SQL 中的 "<"
public List<Book> findByStockLessThan(int max);

//GreaterThan --- 等价于 SQL 中的">"  
public List<Book> findByStockGreaterThan(int min);

//IsNull --- 等价于 SQL 中的 "is null"
public List<Book> findByNameIsNull();

//IsNotNull --- 等价于 SQL 中的 "is not null"
public List<Book> findByNameIsNotNull();

//NotNull --- 与 IsNotNull 等价
public List<Book> findByNameNotNull();

//Like --- 等价于 SQL 中的 "like"
public List<Book> findByNameLike(String name);

//NotLike --- 等价于 SQL 中的 "not like"
public List<Book> findByNameNotLike(String name);

//OrderBy --- 等价于 SQL 中的 "order by"
public List<Book> findByNameNotNullOrderByStockAsc();

//Not --- 等价于 SQL 中的 "! ="
public List<Book> findByNameNot(String name);

//In --- 等价于 SQL 中的 "in"
public List<Book> findByNameIn(String name);

//NotIn --- 等价于 SQL 中的 "not in"
public List<Book> findByNameNotIn(String name);

//***************************************
//利用原生的sql进行操作

// @Query 注解中编写 JPQL 语句
// 使用 @Modifying 进行修饰. 以通知   SpringData, 这是一个 UPDATE 或 DELETE 操作
@Query(value="select * from book where name = ?1 ",nativeQuery=true)
@Modifying
public List<Book> findBookByName(String name);

@Query(value="delete from book where id = ?1 ",nativeQuery=true)
@Modifying
@Transactional
public void deleteBookById(int id);

//利用原生的SQL进行修改操作  
   @Query(value = "update book set name=?1 where id=?2 ", nativeQuery = true)  
   @Modifying 
   @Transactional
   public void updateBookName(String name,int id);  
   
   //利用原生的SQL进行插入操作  
   @Query(value = "insert into book(name,author) value(?1,?2)", nativeQuery = true)  
   @Modifying  
   @Transactional
   public void insertBook(String name,String author);  
   
   //分页查询 查询计算元素总个数总页数,数据多的情况下,代价是昂贵的  
   Page<Book> findByNameAndAuthor(String name ,String author,Pageable pageable);  
   
   //分页查询,返回的是一个片段,它只知道下一片段或者上一片段是否可用。  
   Slice<Book> findByName(String name,Pageable pageable); 
   
   //分页查询所有
   //分页查询 查询计算元素总个数总页数,数据多的情况下,代价是昂贵的  
   Page<Book> findAll(Pageable pageable); 
   
   @Query(value = "update book set stock=stock-?1 where id=?2", nativeQuery = true)  
   @Modifying  
   @Transactional
   public void reduce(int num,int id);

}

BookController:

package com.cxb.controller;

import java.util.List;
import java.util.concurrent.Semaphore;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cxb.dao.BookDao;
import com.cxb.model.Book;

@Controller
@RequestMapping("/book")
public class BookController {

@Autowired
private BookDao bookDao;

//处理并发事件
//定义资源的总数量
Semaphore semaphore=new Semaphore(1);

/** 查询所有的图书
 * http://localhost:8080/book/list
 * @return   
 */
@RequestMapping(value="/list", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public List<Book> list() {
return bookDao.findAll();
}

/**
 * 新增图书
 * @param request
 * @return
 */
@RequestMapping(value="/saveBook", method=RequestMethod.POST,produces = "application/json; charset=utf-8")
@ResponseBody
public Book saveBook(HttpServletRequest request) {
String author = request.getParameter("author");
String name = request.getParameter("name");
String stock = request.getParameter("stock");
Book book = new Book();
book.setAuthor(author);
book.setName(name);
book.setStock(Integer.parseInt(stock));
return bookDao.save(book);
}

/**
 * 修改图书
 * @param request
 * @return
 */
@RequestMapping(value="/updateBook", method=RequestMethod.POST,produces = "application/json; charset=utf-8")
@ResponseBody
public Book updateBook(HttpServletRequest request) {
String author = request.getParameter("author");
String name = request.getParameter("name");
String stock = request.getParameter("stock");
Book book = new Book();
book.setAuthor(author);
//设置id之后,就会执行update
book.setId(3);
book.setName(name);
book.setStock(Integer.parseInt(stock));
return bookDao.save(book);
}

/**
 * 根据id删除图书
 * @param request
 */
@RequestMapping(value="/delete", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public void delete(HttpServletRequest request) {
String id = request.getParameter("id");
bookDao.deleteById(Integer.parseInt(id));
}

/** 根据库存和名称查询图书
 * http://localhost:8080/book/findByNameAndStock?name=庐州月&stock=20
 * @param request
 * @return
 */
@RequestMapping(value="/findByNameAndStock", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public List<Book> findByNameAndStock(HttpServletRequest request) {
String name = request.getParameter("name");
String stock = request.getParameter("stock");
return bookDao.findByNameAndStock(name,Integer.parseInt(stock));
}

/** 根据名称或者库存查询图书
 * http://localhost:8080/book/findByNameOrStock?name=庐州月&stock=22
 * @param request
 * @return
 */
@RequestMapping(value="/findByNameOrStock", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public List<Book> findByNameOrStock(HttpServletRequest request){
String name = request.getParameter("name");
String stock = request.getParameter("stock");
//满足条件1和条件2的集合
return bookDao.findByNameOrStock(name,Integer.parseInt(stock));
}

/**
 * 根据库存量在某个区间查询图书
 * @return
 */
@RequestMapping(value="/findByStockBetween", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public List<Book> findByStockBetween(){
//满足条件1和条件2的集合
return bookDao.findByStockBetween(10,20);
}

/** 根据名称查询图书
 * http://localhost:8080/book/findBookByName?name=千百度
 * @param request
 * @return
 */
@RequestMapping(value="/findBookByName", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public List<Book> findBookByName(HttpServletRequest request){
String name = request.getParameter("name");
return bookDao.findBookByName(name);
}

/** 根据id修改图书的名称
 * http://localhost:8080/book/updateBookName?name=叹服&id=1
 * @param request
 */
@RequestMapping(value="/updateBookName", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public void updateBookName(HttpServletRequest request) {
String name = request.getParameter("name");
String id = request.getParameter("id");
bookDao.updateBookName(name, Integer.parseInt(id));
}

/** 插入图书
 * http://localhost:8080/book/insertBook?name=千百度1&author=许嵩
 * @param request
 */
@RequestMapping(value="/insertBook", method=RequestMethod.POST,produces = "application/json; charset=utf-8")
@ResponseBody
public void insertBook(HttpServletRequest request) {
String name = request.getParameter("name");
String author = request.getParameter("author");
bookDao.insertBook(name, author);
}

/** 根据id删除图书
 * http://localhost:8080/book/deleteBookById?id=6
 * @param request   
 */
@RequestMapping(value="/deleteBookById", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public void deleteBookById(HttpServletRequest request){
String id = request.getParameter("id");
bookDao.deleteById(Integer.parseInt(id));
}

/**
 * 分页查询图书 根据名称和作者
 * @param request
 * @return
 */
@RequestMapping(value="/findByNameAndAuthor", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public Page<Book> findByNameAndAuthor(HttpServletRequest request){
@SuppressWarnings("deprecation")
//根据id降序
Pageable pageable = new PageRequest(0,3, Sort.Direction.DESC,"id");
String name = request.getParameter("name");
String author = request.getParameter("author");
return bookDao.findByNameAndAuthor(name, author, pageable);
}

/**
 * 分页查询所有的图书
 * @return
 */
@RequestMapping(value="/findAll", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public Page<Book> findAll(){
@SuppressWarnings("deprecation")
//根据id降序
Pageable pageable = new PageRequest(0,3, Sort.Direction.DESC,"id");
return bookDao.findAll(pageable);
}

/**
 * 
 * @param request
 * @return
 */
@RequestMapping(value="/findByName", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
Slice<Book> findByName(HttpServletRequest request){
@SuppressWarnings("deprecation")
//根据id降序
Pageable pageable = new PageRequest(0,3, Sort.Direction.DESC,"id");
String name = request.getParameter("name");
return bookDao.findByName(name, pageable);
}

/**
 * 减库存   处理多线程(成功几个也会失败几个)
 */
@RequestMapping(value="/reduce", method=RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public String reduce(HttpServletRequest request){
//可用资源数
int availablePermits = semaphore.availablePermits();
System.out.println("可用资源数量---"+availablePermits);
if(availablePermits>0) {
System.out.println("抢到资源****根据id修改该图书的库存");
try {
//请求占用一个资源
semaphore.acquire(1);
//根据id修改该图书的库存
String id = request.getParameter("id");
bookDao.reduce(5, Integer.parseInt(id));
System.out.println("根据id修改该图书的库存完成");
}catch (Exception e) {
e.printStackTrace();
}finally {
//释放一个资源
semaphore.release(1);
}
return "抢到资源处理业务逻辑,最后释放资源完成";
}else {
System.out.println("*********资源已被占用,稍后再试***********");
return "*********资源已被占用,稍后再试***********";
}

}

}

SpringBootThymeleafApplication:

package com.cxb;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.HttpMessageConverter;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

@SpringBootApplication
//没有连接数据库的时候报错  需要加上这一句
//@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class SpringBootThymeleafApplication {

public static void main(String[] args) {
SpringApplication.run(SpringBootThymeleafApplication.class, args);
}

/**
 * 这里是为了使用阿里的fastjson   方式一
 * @return
 */
@Bean
public HttpMessageConverters fastJsonConverters() {
FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();
FastJsonConfig fastConfig=new FastJsonConfig();
fastConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastConverter.setFastJsonConfig(fastConfig);
HttpMessageConverter<?> converter=fastConverter;
return new HttpMessageConverters(converter);
}

}

application.yml:

spring:
  thymeleaf:
    #缓冲的配置
    cache: false
    check-template: true
    check-template-location: true
    #开启MVC thymeleaf 视图解析
    enabled: true
    encoding: utf-8
    mode: HTML5
    prefix: classpath:/templates/
    suffix: .html
    
    
  #配置数据源
  datasource:
     url: jdbc:mysql://127.0.0.1:3306/sp?useUnicode=true&characterEncoding=utf8
     username: root
     password: 123456
     driver-class-name: com.mysql.jdbc.Driver
  
  jpa:
    hibernate:
      ddl-auto: update
      
    show-sql: true    
     
#指定mybatis映射文件的地址
mybatis:
  #配置文件的路径
  #config-location: classpath:mybatis-config.xml
  mapper-locations: classpath:mapper/*.xml 
  # mybatis自动扫描包中的实体类,自动定义别名,别名是类名(首字母大写或小写都可以,一般用小写)
  type-aliases-package: com.cxb.model

#pagehelper分页插件配置
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: countSql

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.cxb</groupId>
<artifactId>SpringBoot-Thymeleaf</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<name>SpringBoot-Thymeleaf</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<!--thymeleaf -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.1</version>
</dependency>
<!-- mybatis的分页插件 -->
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.2</version>
</dependency>

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.15</version>
        </dependency>
        
        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <scope>test</scope>
</dependency>

<!-- <dependency>
    <groupId>io.fabric8.devops.apps</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>2.2.335</version>
</dependency>

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-elasticsearch</artifactId>
</dependency>

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>securesm</artifactId>
    <version>1.0</version>
</dependency>

<dependency>
    <groupId>net.sf.jopt-simple</groupId>
    <artifactId>jopt-simple</artifactId>
    <version>3.2</version>
</dependency>

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>jna</artifactId>
    <version>4.4.0</version>
</dependency>

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.3</version>
</dependency>

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
    <version>4.4.6</version>
</dependency>

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpasyncclient</artifactId>
    <version>4.1.2</version>
</dependency>

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore-nio</artifactId>
    <version>4.4.4</version>
</dependency>

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>

<dependency>
    <groupId>com.github.spullara.mustache.java</groupId>
    <artifactId>compiler</artifactId>
    <version>0.8.13</version>
</dependency>

<dependency>
    <groupId>org.locationtech.spatial4j</groupId>
    <artifactId>spatial4j</artifactId>
    <version>0.7</version>
</dependency>

<dependency>
    <groupId>com.vividsolutions</groupId>
    <artifactId>jts</artifactId>
    <version>1.12</version>
</dependency>

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-queryparser</artifactId>
    <version>5.5.5</version>
</dependency>

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-queries</artifactId>
    <version>5.2.1</version>
</dependency>

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-sandbox</artifactId>
    <version>6.3.0</version>
</dependency>

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-spatial</artifactId>
    <version>5.5.4</version>
</dependency>

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-spatial-extras</artifactId>
    <version>6.3.0</version>
</dependency>

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-spatial3d</artifactId>
    <version>7.1.0</version>
</dependency>

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-suggest</artifactId>
    <version>6.2.1</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-smile</artifactId>
    <version>2.4.4</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-yaml</artifactId>
    <version>2.8.9</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-cbor</artifactId>
    <version>2.8.1</version>
</dependency> -->

</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

这里的测试可以用并发测试工具访问下面的链接:

链接:http://localhost:8080/book/reduce

SpringBoot--简单处理高并发demo相关推荐

  1. SpringBoot实现Java高并发秒杀系统之DAO层开发(一)

    SpringBoot实现Java高并发秒杀系统之DAO层开发(一) 秒杀系统在如今电商项目中是很常见的,最近在学习电商项目时讲到了秒杀系统的实现,于是打算使用SpringBoot框架学习一下秒杀系统( ...

  2. SpringBoot实现Java高并发秒杀系统之Service层开发(二)

    继上一篇文章:SpringBoot实现Java高并发秒杀系统之DAO层开发 我们创建了SpringBoot项目并熟悉了秒杀系统的表设计,下面我们将讲解一下秒杀系统的核心部分:Service业务层的开发 ...

  3. 一个简单的高并发的回应服务器(5万并发)

    一个简单的高并发的回应服务器,主要是使用boost的库! 自己测试过可以达到5万个并发! 程序的下载地址:http://download.csdn.net/detail/guanyijun123/83 ...

  4. php redis下单,redis 队列简单实现高并发抢购/秒杀

    redis 队列简单实现高并发抢购/秒杀 2019-03-21 14:34 阅读数 82 前提为每人限购1件 <>开抢前 把秒杀商品库存存进 Redis 队列中 $redis = new ...

  5. SpringBoot+Netty构建高并发稳健的部标JT808网关

    应很多朋友的要求,今天分享一下如何使用SpringBoot和Netty构建高并发稳健的JT808网关,并且是兼容JT808-2011和JT808-2019的网关,此网关已经有多个客户在商用. JT80 ...

  6. 从简单到高并发服务器(一)

    一个单线程的回声服务器 (Echo Server) 我们从一个简单的服务器开始说起. 它可以接受一个客户的连接,接收消息,然后把这个消息发送回去,关闭连接--完工.我们用 Linux 和 iOS / ...

  7. 彻夜怒肝!SpringBoot+Sentinel+Nacos高并发已撸完,快要裂开了!

    都说程序员工资高.待遇好,改变无数程序员职业生涯的金三银四已来,你的小目标是 30K.40K,还是 16 薪的 20K?作为一名 Java 开发工程师,当能力可以满足公司业务需求时,拿到超预期的 Of ...

  8. 彻夜怒肝!SpringBoot+Sentinel+Nacos高并发已撸完

    又到了"金三银四"面试求职高峰期,在金三银四时也参与过不少面试,2021都说工作不好找,也是对开发人员的要求变高.前段时间自己有整理了一些Java后端开发面试常问的高频考点问题做成 ...

  9. springboot使用多线程处理高并发接口

    1.同步转异步,单条转批量 2.异步线程获取数据 关于Future同步.异步获取线程执行结果分析_红鲤鱼与彩虹的博客-CSDN博客 多任务并行.利用CompletionService计算任务执行结果的 ...

最新文章

  1. 百度:YOLOX和NanoDet都没我优秀!轻量型实时目标检测模型PP-PicoDet开源
  2. Java 注解深入理解
  3. Yii 中Criteria常用方法
  4. Kubernetes-[6]-StatefulSet
  5. 大二上学期数据结构课程设计
  6. sql语句有没有怎么优化的空间,这条语句在我这里执行是死机
  7. linux字体使用教程,Ubuntu 字体设置:使用Windows 字体
  8. 大数据采集与处理期末复习题
  9. ELK---日志收集系统
  10. 搭建FTP站点(Windows)
  11. linux cpu 时间,【Linux】CPU时间与处理器耗时
  12. 华为手机助手上架流程_2019年各大安卓应用商店上架经验,含流程,物料,方法(建议收藏)...
  13. 苹果笔记本用户使用Mac版本微博软件Maipo,如何添加账户与高级授权?
  14. 我的世界服务器背景音乐修改,我的世界修改音乐方法
  15. python和java区别大吗-为什么入门大数据选择Python而不是Java?
  16. Eloquent JavaScript 笔记 九: Regular Expressions(下)
  17. C#编译基础知识(三)
  18. ThinkPHP5整合原生Swoole实现NBA比赛图文直播以及聊天室功能
  19. Maven的爱恨情仇
  20. Altium Designer新版本PCB电路板添加logo

热门文章

  1. Linux 下 find(文件查找)命令的用法总结
  2. Axure 交互学习1 基础页面跳转、鼠标悬停样式
  3. java工程师面试常见问题_JAVA软件工程师面试遇到的十个问题,这些你都知道吗?...
  4. 朋友可以分成三大类 对付虚伪的人3招
  5. 两线怎么接三线插座图_三孔插头怎么接线?两根线怎么接三孔插座?
  6. VS2017编译文件遇到fatal error C1010: 在查找预编译头时遇到意外的文件结尾的解决办法
  7. m利用SIMILINK仿真模块实现多径信道的动态仿真模拟
  8. 基于Java的飞机雷电射击游戏的设计实现(Eclipse开发)
  9. Redis的maven依赖
  10. 用latex排版LNCS模板的论文