分类 糟心语言 中的文章

Java反射教程

什么是反射 反射是:指程序可以访问、检测和修改它本身状态或行为的一种能力 反射是一种能力,所以给的定义就是说明了它能干嘛。 我们平时用反射主要做: - 获取类型的相关信息 - 动态调用方法 - 动态构造对象 - 从程序集中获得类型。 通过反射机制实例化对象 基础实体 package com.haojishu.entity; public class User { public Integer age; private String Username; private String addr; public User() { Sy

阅读全文

spring单元测试

Spring单元测试 现在很少人写单元测试了,不知道为什么,反正我一直坚持不管多忙,我都是一行一行的写单元测试,不是为了别的主要是了解到底反悔了什么,而不是去用模拟提交去测试。 加载Maven

阅读全文

jsoup教程

jsoup 什么是Jsoup Jsoup是用于解析Html,就类似XML解析器用于XML. jsoup能用来做什么? 从URL,文件或字符串中刮取并解析HTML 查找和提取数据,使用DOM遍历或CSS选择器 操纵HTML元素,属性和文本 根据安全的白名单清理用户提交的内容,以防止XSS攻击 输出整洁的H

阅读全文

自定义Ioc

SpringIoc自定义 第一种方式 ​ 在写代码的时候,我经常纳闷Spring @Autowired到底是如何实现的,我是不是自己实现一个,完后就有这篇文章 编写自定义注解 /** @author sulwan */ @Target({ ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Sulwan { boolean required() default true; } @Target: @Target说明了Annotation所修饰的对象范围

阅读全文

Mybatis注解权限

Mybatis注解权限 ​ 我们在写项目的时候,很多时候都是需要判断权限,比如你是哪个部门的有那个权限,比如你是哪个层级的管理需要那个权限,这个时候我们不能再SQL中固定死,其主要原因是因为我们不知道增加多少权限或者分组,所以这个时候就需要注解的闪亮登场了! 编写注解 package com.pv3.springboot_base.Annotation; import java.lang.annotation.*; /** @author sulwan */ @Target(ElementType.METHOD)

阅读全文

springboot整合Mybatis与Druid

Spring整合Mybatis Maven <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.19</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency> ###application.yml配置 spring: profiles: active: druid # MyBatis mybatis: # 搜索指定包别名 # typeAliasesPackage: com.pv3.springboot_base.Domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml application-drui

阅读全文

quickSort快速排序

快速排序 概念 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 步骤分

阅读全文

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"); // 创建

阅读全文