05 2020 档案
摘要:[TOC] learning ... ChapterOne RuleOne RuleTwo RuleThree RuleFour 对于工具类, 因该要私有化构造器, 避免工具类实例化, 同时工具类将不能被实例化 RuleFive 当创建一个新的实例时, 就将该资源传入到构造器中. 这就是 依赖注入
阅读全文
摘要:Stream API 遍历文件
阅读全文
摘要:DOS窗口乱码 在DOS窗口中默认使用GBK会出现乱码 对应CHCP 936 键入chcp 65001 会进入一个新的DOS界面, 类似于telnet 常见编码: GBK > 936 UTF-8 > 65001 重新开启一个DOS会变回默认GBK
阅读全文
摘要:Swagger2 常见注解 @Api : 修饰整个类, 描述controller的作用 @ApiOperation : 描述一个类的一个方法, 或者说一个接口 @ApiParam: 单个参数描述 @ApiModel: 用在放回对象上,描述对象 @ApiProperty: 用对象来接收参数时, 描述对
阅读全文
摘要:LocalDateTime Json序列化 参考: https://www.cnblogs.com/carrychan/p/9883172.html controller @RestController public class TestLocalDateTimeJsonController { @
阅读全文
摘要:springboot Mock测试模块 [TOC] 如果测试方法较多, 推荐使用静态导包 方法一: 可用全局的controller 方法二: 细粒度更高的, 指定测试controller == 这里要注意的是 一定要注入controller == 方法三: 注意点: 1. 返回的 存在中文乱码, 需
阅读全文
摘要:SpringBoot配置文件——加载顺序 [TOC] 一、存放目录 Application属性文件,按优先级排序,位置高的将覆盖位置 1. 当前项目目录下的一个/config子目录 2. 当前项目目录 3. 项目的resources即一个classpath下的/config包 4. 项目的resou
阅读全文
摘要:maven maven 常用命令 执行maven命令必须进入pom.xml所在的位置 mvn clean 清空产生的项目(target中) mvn compile 编译源代码,生成字节码文件 mvn package 打包 mvn install 在本地repository中安装jar(包含mvc c
阅读全文
摘要:HikariCP 连接池 地址: https://github.com/brettwooldridge/HikariCP HikariCP带有合理的默认值, 可以在大多数部署中很好的执行, 而无需进行其他调整 Essentials 必要属性值 , , ,`password` Frequently u
阅读全文
摘要:内部类 #内部类 内部类 |-- 非静态内部类 (成员内部类) |-- 静态内部类 (类内部类) |-- 局部内部类 |-- 匿名内部类 内部类被当前外部类的成员, 外部类必须通过new关键值来调用内部类的实例变量或是实例方法 内部类可以直接访问外部类的所有成员 #非静态内部类 相当
阅读全文
摘要:问题: 百度说要用事务,需要在启动类加上@EnableTransactionManagement。 但是我都没加,一样可以用@Transactional注解来控制事务。 解答 @EnableTransactionManagement是 spring tx 的注解,不是 spring boot 的 s
阅读全文
摘要:Mysql的四中事务隔离级别 参考: https://www.cnblogs.com/wyaokai/p/10921323.html [TOC] 事务的基本要素(ACID) 原子性 Atomicity 事务开始后所有操作, 要么全部做完, 要么全部不做, 不可能停滞在中间环节. 事务执行过程中出错,
阅读全文
摘要:mybatis plus 插件 DO 配置类 sql性能分析插件 yaml 添加
阅读全文
摘要:mybatis plus 代码生成器 生成的项目结构如下 controller
阅读全文
摘要:mybatis plus 使用 [TOC] 官网: https://mp.baomidou.com/guide/ 引入依赖 控制台打印sql 方法一 方法二 使用 查询 select 通过查询, 查询所有 按id查询 查询一个 使用map作为条件查询 一条记录对应一个map 查询多个id 分页查询
阅读全文
摘要:response.getWriter() 参考: https://blog.csdn.net/zp2605811855/article/details/91852527 在学习Spring Security 图形验证码时, 碰到了一个有趣的问题, 其实还是误解 自定义filter来处理图形验证码 p
阅读全文
摘要:05. Spring Security 图形验证码 参考: https://blog.csdn.net/yuanlaijike/article/details/80253922 https://mrbird.cc/Spring Security ValidateCode.html [TOC] 依赖
阅读全文
摘要:Spring Security 登出 [TOC] 默认退出处理逻辑 使当前session失效 清除配置的 认证, 会清空数据库中的 清空 重定向到 关键类 观察发发现, 针对多种请求方式 注意的一点是 的注解 The URL that triggers log out to occur (defau
阅读全文
摘要:03. Spring Security 异常处理 参考: https://blog.csdn.net/yuanlaijike/article/details/80250389 不知道你有没有注意到,当我们登陆失败时候,Spring security 帮我们跳转到了 Url,奇怪的是不管是控制台还是网
阅读全文
摘要:02. Spring Security rememberMe 参考: https://blog.csdn.net/yuanlaijike/article/details/80249869 接着上一讲 修改 使用简单的记住我, 但是不安全 login.html 添加rememberMe() 配置类 =
阅读全文
摘要:Redirect和Forward的区别 参考: https://blog.csdn.net/u010452388/article/details/80398929 redirect/重定向 forward/请求转发 数据共享 不能共享数据 可以共享request里面的数据 地址栏 地址栏改变 地址栏
阅读全文
摘要:01. Spring Security 参考: https://blog.csdn.net/qq_36095679/article/details/92625701 https://blog.csdn.net/yuanlaijike/article/details/80249235 核心组件 Sec
阅读全文
摘要:nextInt()和nextLine() Scanner scanner = new Scanner(System.in); System.out.println("before"); int i = scanner.nextInt(); String s1 = scanner.nextLine()
阅读全文
摘要:JavaBean DO (Domain Object) 领域对象 就是从现实世界中抽象出来的有形或无形的业务实体。一般和数据中的表结构对应。 PO (Persistant Object) 持久对象 用于表示数据库中的一条记录映射成的JavaBean. PO 仅仅用于表示数据,没有任何数据操作。通常遵
阅读全文
摘要:05. Hystrix Dashboard 新建模块加入依赖 无需添加其他任何依赖, 该依赖已经包括spring boot start web 修改yml 添加主启动类 服务提供者yml 这里需要额外对web开启 或是指定 访问localhost:9001/hystrix 出现页面表示成功 De
阅读全文
摘要:Spring Boot 默认支持 properties(.properties) 和 YAML(.yml .yaml ) 两种格式的配置文件,yml 和 properties 文件都属于配置文件,功能一样。 Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot
阅读全文
摘要:服务熔断, 服务降级 参考: https://blog.csdn.net/pengjunlee/article/details/86688858 https://blog.csdn.net/llianlianpay/article/details/79768890 在介绍熔断机制之前, 需要理解微服
阅读全文
摘要:04. Hystrix 一个方法对应一个@HystrixCommand 在Feign的基础上修改, 添加一个新模块, 复制拷贝服务提供者 pom.xml 添加依赖, 值得注意的是==@EnableHystrix不再该依赖中==, 而是在eureka client中 controller 主启动类 F
阅读全文
摘要:@SpringbootApplication 注解 @SpringBootConfiguration | @Configuration | @Component 实际作用就是将主启动类注入到ioc中 @EnableAutoConfiguration | @AutoConfigurationPac
阅读全文
摘要:Instead,when one {@code @Bean} method invokes another {@code @Bean} method in lite mode, the invocation is a standard Java method invocation; Spring d
阅读全文
摘要:03. Feign Feign使用面向api编程, 来简化编程 ,默认使用==RoundRobbin==,可以不需要额外配置负载均衡 在ribbon的基础上修改 1. microsoft api 修改api的pom.xml添加 添加一个接口 2. 添加一个模块, 将consumer拷贝 添加依赖 修
阅读全文
摘要:02. Ribbon 用于负载均衡 在eureka的基础上修改消费者模块 添加依赖 如果引入的 就可以不用引入ribbon依赖 修改yml 修改主启动类 修改ConfigBean 默认使用 类似于RoundRobbin 修改controller 如果不需要自定义Ribbon配置运行即可 自定义Rib
阅读全文
摘要:01. eureka 单eureka Server 这里末尾的/表示访问的是一个目录(默认访问default.html或是index.html),也可以不加,如果不加表示首先当作servlet处理,如果找不到就当作目录处理 主启动类 provider application.yml controll
阅读全文
摘要:groovy简单使用 一句话总结: ==groovy使用语法与js相似==
阅读全文
摘要:转载: https://blog.csdn.net/lingyiwin/article/details/81008231 本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从
阅读全文
摘要:@configuration(proxyBeanMethods = false) Specify whether {@code @Bean} methods should get proxied in order to enforce bean lifecycle behavior, e.g. to
阅读全文
摘要:一、简介 这里介绍下在spring中,通过factory methon属性创建bean。 回顾下,在Spring中,创建bean对象的方式有: 直接在xml配置文件中,通过bean标签创建对象; 通过注解如@Bean、@Service等创建对象; 通过FactoryBean工厂类创建对象(详情请查看
阅读全文
摘要:@Order @Order用于指定Bean的执行顺序(==也会影响加载顺序==), 数字越小优先级越高, 默认 假设有两全局异常处理类处理相同的错误, 谁的优先级高会先调用谁 handler1 handler2 controller 先让 注入时休眠 , 此时 的`@Order(Ordered.HI
阅读全文
摘要:转载: https://www.solves.com.cn/it/wl/zs/2019-11-18/8119.html URL 是我们每天畅游在互联网世界中最最常见的东西了,对于普通用户来说,URL 就是一个字符串,比如 http://www.justdoJAVA.com ,但是对于我们开发者而言,
阅读全文
摘要:HKEY_CLASSES_ROOT下找来到右键自新建菜单子百项度,删除其下的知ShellNew,例如道: HKEY_CLASSES_ROOT.bmp\ShellNew HKEY_CLASSES_ROOT.contact\ShellNew HKEY_CLASSES_ROOT.jnt\jntfile\S
阅读全文
摘要:快捷键 使用 可以在顶部显示目录 ctrl + n 新建 ctrl + s 保存 ctrl + f 查找替换 ctrl + / 源码模式 ctrl + shift + l 左边导航栏 F8 专注模式 F9 打字机模式 标题 文字格式 效果显示: 下划线 ctrl + u 斜体 ctrl + i 加粗
阅读全文
摘要:1xx (临时响应)表示临时响应并需要请求者继续执行操作的状态代码。 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 102 由WebDAV(RFC 2518)扩展的
阅读全文
摘要:final final 修饰的变量存储再堆内存中的常量池, 所以jvm的gc机制不会对final修饰的变量生效 final 修饰类, 不能被继承, 即final类没有子类 final 修饰变量 基本变量: 不能重新修改, 基本变量的值 引用变量: 存储的是一个引用, 指向实例对象的地址, final
阅读全文
摘要:4. shiro 整合redis 添加依赖 再shiro权限认证的基础上, 修改shiroConf, 添加 修改
阅读全文
摘要:https://blog.csdn.net/ctwy291314/article/details/81938882
阅读全文
摘要:![](https://img2020.cnblogs.com/blog/2005355/202005/2005355-20200506113533133-436801640.png)
阅读全文
摘要:3. shiro 权限认证 在rememberMe的基础上修改CustomizeRealm 添加一个controller 修改yml 修改index.html 添加一个没有权限认证的异常处理器 相应的错误页面
阅读全文
摘要:在yml中开启配置 !!! 切记默认false, 一定要手动开启
阅读全文
摘要:2. shiro 记住我 在用户认证的基础上修改shiroConf, 添加 AES加密 修改SecurityManager 修改login.html 修改对应的api
阅读全文
摘要:postman使用指南 [TOC] url中含有中文 postman发送中文请求时, 必须要编码, 否则会报错 get请求 post请求 同理put和delete请求 post 发送Json串 这里无需再设置Headers中的Content Type 如果像发送空串必须填 上传文件 postman
阅读全文
摘要:每个二进制数字0或1就是一个位(bit),位计算机的最小单位 1B(字节) = 8 bit 1KB = 1024 B 1M = 1024 KB 1G = 1024 M 32位处理器可以一次性处理4个字节(32 bit)的数据量 对于32位的操作系统,内存的地址就是32位的长度。也就是2(因为采用的是
阅读全文
摘要:springboot Jackson @ResponseBody 方法返回的是字符串, 返回到前端的就是字符串 方法返回的是对象, 返回到前端就是JSON 序列化 什么是序列化: 是将对象转为字节数组的过程, 反序列化是将字节数组转为对象. 对象序列化后可以在网络上传输, 或者保存在硬盘 Json在
阅读全文
摘要:shiro 用户认证 application.yml mybaits plus generator pojo mapper 在主启动类上使用了@MapperScan, 无需再使用@Mapper Mvc配置类 shiro配置类 自定义Realm 加密工具类 controller
阅读全文
摘要:SALT值属于随机值。用户注册时,系统用来和用户密码进行组合而生成的随机数值,称作salt值,通称为加盐值。
阅读全文
摘要:转载: https://blog.csdn.net/qq_35868412/article/details/84025153 Ajax只是利用脚本访问对应url获取数据而已,不能做除了获取返回数据以外的其它动作了。所以浏览器端是不会发起重定向的。 1)正常的http url请求,只有浏览器和服务器两
阅读全文
摘要:#@RequestParam() 如果参数前写了@RequestParam(xxx), 那么前端必须有对应的xxx名字才行(不管其是否有值), 如果没有 xxx的话, 就和报错, 400 如果参数前不写@RequestParam(xxx)的话,那么就前端可以有, 也可以没有对应的xxx 能接收地址栏
阅读全文
摘要:调用equals,clone,hashCode,toString 这些方法都会自动懒加载一次, 而println()打印对象是会调用对象的toString() 将LazyLoadTriggerMethods设置为""即可
阅读全文
摘要:@ControllerAdive同样可以经过视图解析器 @RestControllerAdivce将所有的方法加上@ResponseBody
阅读全文
摘要:异常 异常的分类 注意Error不是异常 CheckedException 编译器不会检查这类异常 UncheckedException 编译器会检查该异常 两者都能被try...catch或throws 异常的处理 throw 主动抛出异常 throws 有可能抛出异常, 将异常抛给上一层, 上一
阅读全文
摘要:@ExceptionHandler() 如果异常被try catch就不会被接收, 抛出的checked exception 能被接收 可以通过如下方法处理异常
阅读全文
摘要:spring aop annotation 被代理类 aspect 可以将pointcut 和 advice 都定义在aspect中 signature就是pointcut的别名 也可以将pointcut和advice 分离 上面的效果等效于 @AfterReturning 可以通过returnin
阅读全文
摘要:使用return; 结果: return 后的本方法的代码不会执行, 但是其他的方法会执行 使用System.exit(0); 结果 退出jvm, 之后的所有代码将不会被执行
阅读全文
摘要:只有try代码块被执行到了, finally才会执行 finally 一定是在return之前执行的 如果finally中带有return那么最后的返回值将被finally中的return修改 异常被catch后也会执行
阅读全文
摘要:概念 AOP(Aspect Orient Programming) 面向切面编程,是面向对象编程(OOP)的一种补充。 面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。 术语 Aspect (切面) 通常是一个类, 在Aspect中包含Advice和PointCut J
阅读全文
摘要:```java @Data @Component //可以通过@ConfigurationProperties来自动绑定 //@ConfigurationProperties(prefix = "test2") @PropertySource({"classpath:test.properties"}) public class SpELBean { // @Value 在spring包下, 必须
阅读全文
摘要:@ConfigurationProperties 通过setter和构造器来设置field的值, 并且支持级联绑定属性 配置文件中的属性个数可以和pojo中的field个数不一样, 如果这样那么field就使用默认值或是初始值 要想使@ConfigurationProperties生效, 可以通过@
阅读全文
摘要:BindingResult是用于接收前一个参数校验(validate或valid)错误信息, 前端将不再显示错误信息 statusCode == 200, 后端也不会抛出异常 如果想要跳转到错误页面, 使用@ResponseStatus指定code和reason, 或是抛出一个异常 将校验的错误信息
阅读全文
摘要:参考 : https://blog.csdn.net/Goodbye_Youth/article/details/90905688 @Valid有jsr303提供,而@Validated有spring提供 效果一样但是,后者比前者功能更强大, 提供分组(类似于@JsonView) 正常在 @Vali
阅读全文
摘要:interceptor controller
阅读全文
摘要:@ResponseStatus 且不会跳转到4xx页面 与@ExceptionHandler一起使用, 抛出异常, 但是无法将map的值传递出去, 即使重写了 可以通过指定 将值传递到request中 如果将@ResponseStatus加在异常类上(不管有没有reason), 在抛出异常时被@Ex
阅读全文
摘要:```java @RequestMapping("/test1") public ResponseEntity testControllerAdvice(String id) { if (StringUtils.isEmpty(id)) { throw new UserNotExistException(id); } //能设置返回的状态码,和请求头 可以拆解为@ResponseBody和@Res
阅读全文
摘要:在接收一个异常后, springboot会发送请求到默认的 BasicErrorController 这是里面默认的两个映射 第一个用于接收请求中accept包含 text/html的请求, 第二个用于接收没有text/html的请求 然后通过 这个key获取到对应的错误状态码, 这里看到attri
阅读全文
摘要:判断请求头中的accept是否包含指定的格式, 如果有就走该映射 常见的accept 这里的 表示接收所有MIME 类型 ,所以前面表示接收的顺序 application/json 也是MIME类型 一般用于指定 防止中文乱码
阅读全文
摘要:` {user.age?: 23}` 表示如果user.age不为空就使用user.age, 如果为空就使用 23 ,这里和thymeleaf中的elvis表达式一样 表示如果properties或yml文件中的属性值不为空就使用user.age, 为空就使用 23
阅读全文
摘要:/ Type is the common superinterface for all types in the Java programming language. These include raw types, parameterized types, array types, type va
阅读全文