4 cpown

尚未进行身份认证

我要认证

干就完了

等级
TA的排名 14w+

设计模式【1】单例模式

单例模式是一种比较常见的设计模式,在很多Manager 以及 Factory类中广泛使用。下面我们来介绍一下几种常见的写法:一、饿汉式/** 1. 单例模式之一 2. 饿汉式 */public class Singleton { //1.确保构造方法私有化,外界无法通过new 创建对象 private Singleton(){ } //2.静态私有化的创建 类的对象,类加载时就创建对象(饿汉式) private static final Single

2020-08-04 20:58:18

简单算法——二分查找法

二分查找算法二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,前提是查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。查找过程首先,假设数组中元素是按升序排列,将数组中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将数组分成前、后两个子数组,如果中间位置记录的关键字大于查找关键字,则进一步查找前一数组,否则进一步查找后一数组。重复以上过程,直到找到满足条件的记录,使查找成功,或直到数组不存在为止,此时查找不成功。

2020-08-03 22:21:25

还在使用 PostMan 测试接口?试试 Swagger 吧

一,简介什么是swagger?我们去官网看一下https://swagger.io/:简化Api开发,方便大规模Api设计。号称世界上最流行的Api框架。RestFul Api文档在线生成工具。字节运行,可以在线测试Api接口。支持多种语言,java、php等。二、如何使用Swagger...

2020-08-01 16:18:53

Spring Boot 整合 Shiro 实现登录认证权限控制

在互联网软件开发过程中,我们项目中必不可少的是安全框架,如何做好项目的安全是一个app最基本的一步。我们现阶段使用最多的安全框架一个是springboot的security框架,另一种是Apache Shiro,今天我们来学习一下shiro的使用。一、简介什么是权限管理权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。  权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,

2020-07-30 16:54:34

springboot + mysql + druid 整合

springboot 2.0以上默认使用 com.zaxxer.hikari.HikariDataSource 数据源,但是我们可以通过 spring.datasource.type 指定数据源。一、Maven 引入和Druid配置首先添加maven配置druid依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>druid<

2020-07-28 16:43:44

自从使用了Semaphore,再也不用担心接口并发频率限制了

今天在写代码时遇到一个问题,在对接shopify电商平台api接口时,使用多线程并发处理数据返回了一个报错:Exceeded 2 calls per second for api client. Reduce request rates to resume uninterrupted service.平台接口有频率限制一秒钟只能够请求两次,多线程并发处理,导致大量数据处理失败,咋整?按照我们以前的思维,这里肯定不适合使用多线程,乖乖换回单线程处理,并且每个请求睡眠0.5s。但是作为一个多年经验的

2020-07-21 14:50:07

springboot + bootstrap + thymeleaf +mybatis 编写员工管理系统

前面一篇文章实现了用户登录验证:springboot + thymeleaf +interceptor实现用户登录验证今天接着上一篇文章,接入mybatis,实现员工管理系统的增删改查功能。首先贴一下maven配置:<?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-in

2020-07-20 21:06:35

springboot + thymeleaf +interceptor实现用户登录验证

一、环境准备首先创建一个springboot项目,并引入thymeleaf依赖。贴一下pom.xml<!--引入thymeleaf--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>准备一个静

2020-07-17 14:08:26

mybatis-generator-maven-plugin:1.3.7:generate failed: Exception getting JDBC Driver: com.mysql.jdbc.

使用Maven :generator插件自动生成pojo以及xml映射文件时报这个错:[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate (default-cli) on project demo: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plug

2020-07-14 20:28:31

springboot配置多数据源

一、前言springboot 为我们集成了数据库资源,只要maven引入数据库资源,在配置文件中配置数据库连接即可。但是默认数据库只能有一个,真正生产中往往我们需要在项目中配置多个数据库资源。该如何配置呢?二、场景现有两个数据库,test、test1,分别有一张表,sys_user以及sys_student.我们现在要通过springboot项目,根据不同场景分别连接到不同的数据库。<?xml version="1.0" encoding="UTF-8"?><project

2020-07-09 22:19:30

springboot扫包的坑

今天在测试maven插件mybatic-generator自动生产pojo以及Mapper映射文件时发现一个问题。我生成的Mapper文件竟然不能够被springboot扫描到,导致在controller里面使用时出现装配异常。2020-07-09 12:00:06.110 WARN 15848 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context i

2020-07-09 12:18:15

【深度好文】Mysql 缓冲池(buffer pool)机制详解

应用系统分层架构,为了加速数据访问,会把最常访问的数据,放在缓存(cache)里,避免每次都去访问数据库。操作系统,会有缓冲池(buffer pool)机制,避免每次访问磁盘,以加速数据的访问。MySQL作为一个存储系统,同样具有缓冲池(buffer pool)机制,以避免每次查询数据都进行磁盘IO。今天,和大家聊一聊InnoDB的缓冲池。一、InnoDB的缓冲池缓存什么?有什么用?缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。速度快,那为啥.

2020-07-08 16:14:52

springboot静态资源加载规则

我们经常会使用springboot创建web应用,在springboot中金静态资源是如何存放的呢?一、静态资源映射规则我们先创建一个springboot项目。使用https://start.spring.io/idea内置创建一个项目,不多说了。我们要引入我们前端资源,我们项目中有许多的静态资源,比如css,js等文件,我们以前写项目与都是自己建立文件夹,自己设计访问路径,但是现在,这个SpringBoot怎么处理呢?如果我们是一个web应用,我们的main下会有一个webapp,我们以前都是将

2020-07-07 17:50:43

springboot自动装配原理

springboot为我们提供了大量自动配置。一、分析自动配置原理以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释自动配置原理;//表示这是一个配置类,和以前编写的配置文件一样,也可以给容器中添加组件;@Configuration //启动指定类的ConfigurationProperties功能; //进入这个HttpProperties查看,将配置文件中对应的值和HttpProperties绑定起来; //并把HttpProperties

2020-07-06 20:53:46

java自定义注解实现校验对象属性是否为空

前面学习了如何自定义一个注解:java如何优雅的自定义一个注解下面来实战演示一下如何使用自定义注解做一些实际的功能。比如校验对象属性是否为空。一、自定义一个NotNull注解我们自定义一个NotNull注解,里面有一个参数message 默认为“”;/** * 自定义注解 * 判断屬性不为空注解 */@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface NotNull { /*

2020-07-03 12:15:44

java8新特性之新的时间和日期

我们一直以来在写代码使用的时间无外乎两种,Date和Calender。但是传统的时间 API 存在线程安全的问题,在多线程开发中必须要上锁,所以 java8 现在为我们提供了一套全新的时间日期 API ,今天进来学习一下java8 的时间日期 API。一、LocalDate、LocalTime、LocalDateTimeLocalDate、LocalTime、LocalDateTime类的实例是不可变的对象,分别表示使用 ISO-8601 (ISO-8601 日历系统是国际化组织制定的现代化公民的日期

2020-07-01 22:41:40

java8新特性之方法引用与构造器引用

本文用使用大量内置函数式接口,可参考上篇文章:java8新特性之函数式接口使用1.使用场景当要传递给Lambda体的操作,已经存在实现的方法了,就可以使用方法引用。(抽象方法的参数列表 必须与方法引用方法的参数列表保持一致),可以理解为lambda的另一种表现形式。2. 语法使用操作符【::】将方法名和对象或类的名字分开。三种主要使用情况:1)对象::实例方法名注:消费型接口,参数类型为String,返回值为void,System.out.println(x)的参数类型也是String,返回值

2020-06-30 22:21:53

java8新特性之函数式接口使用

我们都知道java8的主要新特性是,stream流以及lambda表达式。java8内置了很多函数式接口,但是最基本的四大函数式接口,已经足以应付绝大多数场景。今天我们讲解一下,使用lambda表达式实现java8四大内置函数式接口。一、消费型接口 Cousumer< T>Cousumer类型接口没有返回值,参数为T,执行格式为accept(T t): public static void main(String[] args) { //使用lambda表达式调用ha

2020-06-29 21:35:48

java使用wait()和notify()实现线程通信

我们都知道线程睡眠的方法有两种,一中是Thread.sleep(),一中是Object实例化对象.wait()。今天我们着重说一下wait()的作用,我们都知道wait()如果没有参数的话线程会一直处于睡眠状态,除非主动唤醒,主动唤醒的方式有两种:notify()或者notifyAll(); 现在我们来使用wait()以及notifyAll()来实现线程通信。首先我们假定一个场景:有四个角色,分别是厨房,食客,鸡,以及存放鸡的器皿。厨房:负责将鸡烹饪好。食客:负责吃鸡。器皿:盛放烹饪好的鸡。鸡

2020-06-29 15:30:22

jdk动态代理与CGLIB动态代理的实现与区别

上篇文章我们写了静态代理设计模式之代理模式【1】静态代理今天说一下java的动态代理。一、为什么要使用动态代理其实动态代理是弥补了静态代理的短板,静态代理需要给每一个被代理对象写一个代理类,这就需要编写大量冗余代码,而动态代理,只需要编写一个代理类,就可以代理多个不同的对象,大大减少重复代码,前提是他们实现了同一个接口。请记住,代理的主要目的是控制对目标对象的访问,而不是增强目标对象的功能。访问控制包括同步,身份验证,远程访问(RPC),懒惰实例化(Hibernate,Mybatis),AOP(事务

2020-06-29 10:47:45

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取