分类 糟心语言 中的文章

bubbleSort冒泡排序

冒泡排序 概念 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成

阅读全文

MultiValueMap到底是什么

MultiValueMap是什么? ​ 要知道MultiValueMap是什么,我们首先说一个问题,那就是Map,Map有一个特性,那就是一个k-v,并且还是只能是一个v,一个k,那我们有的时候需要存储多个v咋办?比如我们想实现权限系统用多个v是不是很方便。 MultiValueMap 这个本身是Spring里

阅读全文

SpringBoot源码分析(二)事件监听与配置初始化

SpringBoot源码分析(二) 启动SpringBoot public static void main(String[] args) { SpringApplication.run(SpringbootBaseApplication.class, args); } 执行构造器并传递参数运行 public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { return new SpringApplication(primarySources).run(args); } 构造器方法 public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) { // 资源为空 this.resourceLoader = resourceLoader; // 断言判断是否传入自动文件如果如果没有传入则关闭 // 如开头我们传入:new Class[] {}空类,就会执行这句报错 Assert.notNull(primarySources, "PrimarySources must not be null"); // 创建

阅读全文

SpringBoot源码分析(二)事件监听与配置初始化

SpringBoot源码分析(三) 上篇我们讲解了监听器,以及初始化配置的文章,这章我们讲解下run方法 先看代码: public ConfigurableApplicationContext run(String... args) { // 初始化计时器 StopWatch stopWatch = new StopWatch(); // 开启计时器 stopWatch.start(); // 初始化配置为空 ConfigurableApplicationContext context = null; // 声明一个异常集合 Collection<SpringBootExceptionReporter> exceptionReporters = new ArrayList<>(); // 设置了一个名为java.awt.headless的系统属性,即使没

阅读全文

类加载的方式

类加载的方式 主要有两种: 隐式加载:使用 new + 构造方法时,隐式的调用类加载器,加载对应的类到 JVM 中,是最常见的类加载方式。 显式加载:使用 loadClass()、forName() 等方法显式的加载需要的类,对于显式加载这种类加载方式来讲,当我们获取到了 Class 对象后,需要调用 Class 对象的 newInstance() 方法来生

阅读全文

java collection list

1.什么是集合 存储对象的容器,面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的一种方式。 集合的出现就是为了持有对象。集合中可以存储任意类型的对象,而且长度可变。在程序中有可能无法预先知道需要多少个对象,那么用数组来装对象的话

阅读全文

java.awt.headless 模式

java.awt.headless 模式 1. 什么是 java.awt.headless? Headless模式是系统的一种配置模式。在系统可能缺少显示设备、键盘或鼠标这些外设的情况下可以使用该模式。 2. 何时使用和headless mode? Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤

阅读全文

SpringBoot StopWatch

springStopWatch 在写代码的时候我们经常会测试一段代码的执行时间,一般格式如下 @RequestMapping(value = "/") public String hello() throws InterruptedException { long start = System.currentTimeMillis(); Thread.sleep(100); long end = System.currentTimeMillis(); System.out.println("执行耗时:" + (end - start)); return "hello word"; } 当我们有了SpringBoot以后我们完全可以这么做 @RequestMapping(value = "/") public String hello() throws InterruptedException { StopWatch stopWatch = new StopWatch(); stopWatch.start(); Thread.sleep(100); stopWatch.stop(); System.out.println(stopWatch.prettyPrint()); System.out.println(stopWatch.getTotalTimeMillis()); return "hello

阅读全文

修改Springboot启动画面

springBoot启动画面 在我们运行Springboot的时候在命令行中输出了一个简易的画面 源码分析 1、启动SpringBoot 2、获取配置信息 3、调用Banner启动 4、Banner具体实现方法 5、Banner的一些定义 6、打印信息 7、读取内容配置 > 默认位置是资源文件`ban

阅读全文

Springboot两种打包方式

1、自带Tomcat 我们前边讲解的默认创建的,我们使用maven就是已经自带了tomcat 2、排除tomcat两种方法 两种方法都需要 war > package com.pv3.demo; > > import org.springframework.boot.builder.SpringApplicationBuilder; > import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; > > /** > * web容器中进行部署 > */ > public class SpringbootServletInitializer extends SpringBootServletInitializer > { > @Override > protected SpringApplicationBuilder configure(SpringApplicationBuilder application) > { > return application.sources(DemoApplication.class); > } > } > ``` 1、最简单办法 xml org.springframework.boot spring-boot-starter-tomcat provided 2、稍复杂办法 xml org.springframework.boot

阅读全文