随笔分类 - java
摘要:不多逼逼,直接贴代码,前端所有请求头都放在headers里面就行 @Component public class CorsFilter { //这里是前端请求头,那个跨域就添加到这里就行了 private static final String headers = "User-Agent,Cache
阅读全文
摘要:一 概述 StringBuffer类被 final 所修饰,不能被继承,StringBuffer继承了AbstractStringBuilder类, 是一个可变的字符序列,并且类中方法都有synchronized修饰,实现了线程安全 StringBuilder类也被final修饰,继承了Abstra
阅读全文
摘要:一 概述 String由final修饰,是不可变类,即String对象也是不可变对象.这意味着当修改一个String对象的内容时,JVM不会改变原来的对象,而是生成一个新的String对象 主要考虑以下原因: 为了实现字符串池(提升效率) 只有当字符串是不可变的,字符串池才有可能实现。字符串池的实现
阅读全文
摘要:一 简介 java.lang.Object,是Java所有类的父类,在你编写一个类的时候,若无指定父类(没有显式extends一个父类),会默认的添加Object为该类的父类。 在JDK 6之前是编译器处理,即编译后的zclass字节码可以显示的看到 extends Object. JDK 7之后是
阅读全文
摘要:一 新建模板 二 设置代码模板 三 设置变量 表达式是支持groovy脚本的,所以这里写一个groovy脚本,生成给定格式的日志字符串,methodParameters()是idea内置的函数,获取方法参数名字的数组: [param1,param2] 所以先把[ ]去掉,因为这里是一个groovy字
阅读全文
摘要:一 后端服务器使用过滤器 新建过滤器: /** * 解决跨域 */ public class AccessControlAllowOriginFilter implements Filter { @Override public void init(FilterConfig filterConfig
阅读全文
摘要:一 自定义异常 /** * 自定义参数为null异常 */ public class NoParamsException extends Exception { //用详细信息指定一个异常 public NoParamsException(String message){ super(message
阅读全文
摘要:一 添加每个数据源的config配置,单个直接默认,多个需要显示写出来 @Configuration @MapperScan(basePackages ="com.zhuzher.*.mapper", sqlSessionTemplateRef = "crmSqlSessionTemplate")
阅读全文
摘要:将jar放到resource目录下面: pom添加配置 <!-- 加载IK自定义 依赖--> <dependency> <groupId>com.ik.up</groupId> <!--自定义--> <artifactId>ik</artifactId> <!--自定义--> <version>1.
阅读全文
摘要:写的太好了! https://blog.51cto.com/1459294/1932331
阅读全文
摘要:准备: 1 一个war包或者jar包,这里我用springboot的 2 linux环境,安装tomcat,jdk,我用的jdk11和tomcat9,jdk11和8的拷贝权限文件路径有点不一样,这个需要注意 3 不管是Jconsole还是VisualVM,项目或者tomcat的配置都是一样的! 参考
阅读全文
摘要:如图,数据库查出来的数据: 需求是按menu_id和menu_name分组,stream实现最简单, stream里面只有按一个属性分组的,但是可以利用string简单变换一下: List<JsonObject> list = goodsList.getList(); Map<String, Lis
阅读全文
摘要:先看官方文档步骤: 需要一个编解码器,看源码: 可见内置了需要数据类型的实现,所以发送其他消息可以发送,但是如果发送自定义对象就需要自己实现编解码逻辑了 一 自定义编解码器 /** * 自定义对象编解码器,两个类型可用于消息转换,即发送对象转换为接受需要的对象 */ public class Cus
阅读全文
摘要:转载: https://blog.csdn.net/a745233700/article/details/80291694 (虽然大部分内容都其实是深入理解jvm虚拟机这本书里的,不过整理的很牛逼) 一 java运行时内存中的数据区域 每一个Java程序启动后,会获得一个JVM的实例,用来管理内存。
阅读全文
摘要:public static ArrayList<String> getLocalIpAddr() { ArrayList<String> ipList = new ArrayList<String>(); InetAddress[] addrList; try { Enumeration inter
阅读全文
摘要:就不介绍了,直接贴代码,建议在代码中使用,真的很方便 package cn.hou.completablefuture; import org.junit.Test; import java.util.concurrent.*; public class CompletableFutureDemo
阅读全文
摘要:一 Multiset /** * 新类型集合: Multiset: Multiset就是可以保存多个相同的对象,并且无序 * 占据了List和Set之间的一个灰色地带 * 其他实现: TreeMultiset LinkedHashMultiset * ConcurrentHashMultiset *
阅读全文
摘要:前言 思路与模拟业务 源码地址 https://gitee.com/houzheng1216/springboot 整体思路就是通过注解在策略类上指定约定好的type,项目启动之后将所有有注解的type获取到,根据type存储,然后在业务中根据type获取对应的策略即可 模拟订单业务,根据订单的ty
阅读全文
摘要:一 创建排序器 排序器:可以用来为构建复杂的比较器,以完成集合排序的功能: 本质上来说,Ordering 实例无非就是一个特殊的Comparator 实例。 Ordering把很多基于Comparator的静态方法(如Collections.max)包装为自己的实例方法(非静态方法), 并且提供了链
阅读全文
摘要:整体思路: 一 具体接口,可以自定义一个注解,配置限流量,然后对需要限流的方法加上注解即可! 二 容器初始化的时候扫描所有所有controller,并找出需要限流的接口方法,获取对应的限流量 三 使用拦截器或者aop,对加上注解的方法进行限流,采用配置的信号量 自定义注解 /** * 限流注解 */
阅读全文

浙公网安备 33010602011771号