- 博客(22)
- 收藏
- 关注
原创 Maven父工程(统一管理依赖)
之前一段时间,我和在其他公司工作的同行朋友聊天时无意间聊到项目依赖问题,发现很多公司(包括我们公司)都是有自己一个统一的父工程,而这个工程没有任何的逻辑代码,说起来只有一个pom.xml文件,而这个pom文件就是统一管理项目的依赖使用的。下面简单记录一下如何创建这样一个父工程来统一管理项目依赖。1.创建一个纯Maven项目 选择maven,然后直接Next,Next,Finish。...
2019-12-31 16:45:35 4736
原创 SpringCloud-----(1)微服务基础概念
1. 什么是微服务? 微服务强调的是服务的大小,它专注于某一个点,也可以理解为一个模块,一个模块就干一这一件事情,职责单一。 “微服务架构”一词目前在业界也可以说是烂熟于心了,但到底什么是微服务架构?它又解决了什么问题? 微服务架构是一种架构模式,也可以说是一种架构风格,它提倡的是将一个单独的应用程序开发为一个独立的小服务,它可以运行在自己的独立的进程中,服务之间使用通信机制进行服务通...
2019-12-31 15:25:05 279
原创 Session
上一篇文章写了会话跟踪技术—Cookie,这篇文章记录一下另外一种会话跟踪技术–Seesion。 Cookie是存放在客户端的,而Session是存放在服务器端的。相较而言,Session更加的安全。Session依赖于Cookie。1.Session示意图1. 客户端发起一个请求到服务器端,因为Session依赖于Cookie,所以第一次访问服务器的时候,服务器会在内存中生成一个...
2019-12-30 13:54:33 273
原创 Springboot项目集成jsp
springboot默认不是支持jsp作为视图的,如果想要在springboot项目中使用jsp来实现我们的一些需求,可以根据下面步骤操作:引入依赖(jsp现在实际上是在我们内嵌的Tomcat上运行)<!--加入springboot内嵌的tomcat的解析包--><dependency> <groupId>org.apache.tomcat.em...
2019-12-30 11:18:17 317 1
原创 java代码生成随机验证码
1. 新建一个controller@Controller@RequestMapping("/index")public class LoginController { @RequestMapping("/logins") public void login(HttpServletRequest request, HttpServletResponse response) throws...
2019-12-27 14:40:14 384
原创 Cookie
概念##### 1. 无状态协议带来的弊端 在了解Cookie之前,首先知道我们在做web开发的时候使用的Http协议是一种无状态协议,也就是说浏览器向Web服务器发送的每一个请求都是完全独立没有联系的。连续发送两次请求,对于Web服务器端来说不知道两次请求是否来自于同一个用户。 2. 问题案例及解决办法 针对于无状态协议的特性,往往我们在编程的时候又是需要Web服务器清楚了解自己...
2019-12-26 11:12:24 301
原创 java实现生成二维码
二维码在我们日常生活中非常常见,在工作中也经常会用到生成二维码的相关知识,这里记录一下使用谷歌提供的依赖ZXing实现二维码的生成。创建好项目之后,到maven中央仓库下载以下依赖: <!-- https://mvnrepository.com/artifact/com.google.zxing/core --> <dependency> ...
2019-12-24 18:34:23 238
原创 java NIO(四)----阻塞IO与非阻塞IO
阻塞IO 之间在java NIO(一)-----NIO基本概念中提到传统的IO是阻塞式的,而NIO是非阻塞式的(相对于网络通信而言)。通过下面图中可以了解IO阻塞的过程。1. 客户端向服务端发起一个读写请求,但是服务端不确定数据是否有效,此时该线程就会进入阻塞状态,也就是说此线程在此期间无法做其他任何事情。 针对于上面的情况,后面有了一个治标不治本的方法-------使用多线程...
2019-12-24 17:44:41 279
原创 java NIO(三)----通道(Channel)
概念 在java NIO中,通道可以简单理解为火车铁轨,他本身不能存储传输数据,而是需要配合缓冲区(火车)来进行数据的存取,在java中,通道定义在java.nio.channels包下,此包定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的选择器。此包针对不同的类型的数据定义了以下通道常见的通道实现类:Fil...
2019-12-23 15:48:42 1469
原创 java NIO(二)----直接缓冲区和非直接缓冲区
上一篇文章写了关于java NIO缓冲区的一些基本的概念,这篇主要记录一下直接缓冲区和非直接缓冲区的概念直接缓冲区 下面是直接缓冲区的读取模型图:1.创建直接缓冲区ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024); 以上代码创建了一个指定大小为1024字节的字节直接缓冲区,在创建缓冲区的时候,会在JVM内存之外...
2019-12-23 10:31:31 209
原创 java NIO(一)----NIO基本概念
前几天写了几篇关于IO操作的博客,今天再记录一下NIO相关知识点。NIO和IO的区别1. 什么是NIO? NIO是java1.4版本引入的,可以替代标准的java IO API,它与原来的IO有同样的作用和目的,但是IO是面向流的(字节流、字符流之类),但是NIO是面向缓冲区的、非阻塞式IO。整个图看一下:上图是NIO的传输方式,Channel就是我们的管道,如果你的程序和本地磁...
2019-12-20 14:28:10 287
原创 IDEA项目热部署
在开发Springboot项目的时候,经常做一个小改动就需要重启项目,然后再进行相应的测试,这样不仅体验差而且浪费时间,在这种情况下,可以使用热部署在项目修改之后自动进行重启。下面记录一下自己的使用过程:创建项目1.在创建项目的时候,引入devtools依赖<dependency> <groupId>org.springframework.boot&...
2019-12-19 11:57:53 213
原创 (Socket、ServerSocket、多线程)模拟文件上传至服务器
之前整理了一篇文件上传下载的博客和线程池相关文章,这次搞一篇使用Socket和ServerSocket结合线程池创建多线程来模拟上传文件至指定服务器。 Client客户端 此篇文章在创建demo的时候不需要额外引入其他依赖,直接Next创建一个Client客户端就可以了。 使用Socket套接字来创建客户端public class UploadClient { public...
2019-12-13 14:27:06 512
原创 SpringCloud---(3)实现Eureka的高可用
上一篇文章记录了搭建eureka server和eureka client,单个client往单个eureka上面注册,这一篇文章介绍一下如何实现eureka的高可用。本篇文章的项目案例是在上一篇文章的基础上进行拓展 说到高可用,第一反应就是加服务器嘛,让两个eureka server之间相互注册不就ok了,下面试一下能不能行。1.新建两个eureka server项目。在项目的appl...
2019-12-06 18:04:39 259
原创 SpringCloud----(2)Eureka Server(服务治理)
前言 SpringCloud微服务已经是目前互联网应用开发的一个趋势,简单来讲,其实就是将我们的一个整体的项目拆分成多个小的模块,这样使得我们的项目扩展更加灵敏。Eureka是Springcloud的服务与注册中心。作为SpringCloud的第一个组件,它的主要作用是负责SpringCloud中各个相互独立的服务之间相互调用。Eureka相当于 Zookeeper+Dubbo,服务提供者将自...
2019-12-06 14:46:45 268
原创 线程中的join()方法
1.join() 此方法的作用:让主线程等待子线程执行结束之后再运行。public class Father{ public static void main(String[] args){ try { // 新建“线程t1” Son t1 = new Son("t1"); // 启动“线程t1” t1.start(); // 将“线程t1”加入到“主...
2019-12-04 18:23:07 379
原创 线程池拒绝策略
上一篇文章中,讲了线程池的基本概念和用法;这篇文章主要说一下当任务队列已满并且线程池中的线程数量达到maximumPoolSize数量之后,还有任务到来,线程池是如何拒绝执行任务的。拒绝策略 还是结合创建线程池的源码来看:public ThreadPoolExecutor(int corePoolSize, int maxim...
2019-12-04 15:40:56 442 1
原创 线程池概念
线程池概念 线程池可以简单的看作是一个“容器”,当我们的程序在第一次启动的时候,就创建多个线程,放到这个容器中,在需要使用线程来执行某个任务的时候,就直接到这个容器中来取一个线程使用,当该任务执行完毕之后,再将此线程回收到容器中,等待下一个被执行的任务来使用。一、线程池出现的背景 以前我们程序中要执行一个任务,需要先new一个线程用来执行这个任务,执行完之后,这个线程也就被销毁了,如...
2019-12-04 14:04:48 306
原创 线程通信---等待与唤醒机制
之前有5篇文章,对于线程知识做了一些简单的梳理,这篇文章还是准备以案例实现的形式来记录一下线程之间的通信—等待与唤醒机制。 在了解等待与唤醒机制之前,首先思考一下线程之间为什么需要进行通信? 我们都知道,要想能够去执行一个线程,首先这个线程需要获取CPU的执行权,当这个线程执行完毕之后,就会释放CPU资源,并发执行的时候,剩下的处于就绪状态的线程就会一起去争夺CPU的执行权,谁抢到谁就...
2019-12-03 11:01:05 352
原创 前端框架---BootStrap入门
前言 BootStrap是一款来自于Twitter的一款前端开源工具包,在当下也是一款比较流行的前端框架。当然,现在前后端分离开发已经成为一种常态,但是也还是有个别的单位前后端并没有分的那么清楚,在这里写一写BootStrap的基本用法,平时自己下来写个小页面用来测试一下自己的功能代码什么的还是不错的。技多不压身嘛…… BootStrap介绍 [BootSprap中文网](http...
2019-12-01 18:23:13 398
空空如也
Outlook,OAuth2.0,IMAP,SMTP
2024-01-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人