随笔分类 -  Java

摘要:请求进入:filter -> interceptor ->controllerAdvice -> aspect -> controller响应返回:controller -> aspect -> controllerAdvice -> interceptor -> filter 场景: 1、全局日志 阅读全文
posted @ 2024-02-16 15:08 leviH 阅读(83) 评论(0) 推荐(0)
摘要:String.concat 对String字符串进行拼接的方法,我们通常用的“+”拼接字符串,效率相比concat更低,其内部实现方式类似于new StringBuilder().append,每次拼接都会创建一个StringBuilder对象。 concat方法的核心逻辑:创建长度为str.len 阅读全文
posted @ 2024-02-16 15:06 leviH 阅读(112) 评论(0) 推荐(0)
摘要:ThreadPoolTaskExecutor是Spring框架的线程池,实现方式如下: 1 //声明一个name为asyncTaskExecutor的线程池bean到容器中 2 @Bean("asyncTaskExecutor") 3 public Executor getAsyncExecutor 阅读全文
posted @ 2024-02-16 15:03 leviH 阅读(164) 评论(0) 推荐(0)
摘要:Thread: Thread类中有两个变量threadLocals和inheritableThreadLocals,两者都是ThreadLocal.ThreadLocalMap类型,默认情况下为null,对应源码为 1 ThreadLocal.ThreadLocalMap threadLocals 阅读全文
posted @ 2024-02-16 15:02 leviH 阅读(43) 评论(0) 推荐(0)
摘要:1、Spring初始化bean的过程(bean的生命周期) 1. Spring扫描class文件得到beanDefinition2. BeanDefinition首先根据class的构造方法反射得到一个对象(如果反射无法获取对象,则根据工厂方法生成)3. 实现属性的依赖注入4. 如果实现了BeanN 阅读全文
posted @ 2024-02-16 14:57 leviH 阅读(39) 评论(0) 推荐(0)
摘要:1、问题描述 链路框架底层为jaegertracing,行内的北斗链路是对这个jaegertracing进行了一层包装框架中使用自定义注解@RvcAsync来执行异步任务,RvcAsync注解核心逻辑为使用CompletableFuture.runAsync()方法执行多线程任务,传入的第二个参数a 阅读全文
posted @ 2024-02-16 14:55 leviH 阅读(364) 评论(0) 推荐(0)
摘要:在apache的lang3包中有个StringUtils工具类,该工具类为开发中常用的字符串处理工具类 非空判断,isBlank和isEmpty 这俩方法的形参都是charSequence字符序列。isEmpty判断这个字符序列是否为null,还有长度是否为0,如果是,则返回true,反之返回fal 阅读全文
posted @ 2024-02-16 14:51 leviH 阅读(108) 评论(0) 推荐(0)
摘要:1、field注入(字段注入) 1 @Controller 2 public class FooController { 3 @Autowired 4 private FooService fooService; 5 6 //简单的使用例子,下同 7 public List<Foo> listFoo 阅读全文
posted @ 2024-02-16 14:48 leviH 阅读(655) 评论(0) 推荐(0)
摘要:1.@JsonInclude当使用json进行序列化时,往往会遇到某个实体对象的属性为null,可以使用如下类注解使得属性值为null的时候Java Bean不参与序列化可以作用在类上,也可以作用在字段上@JsonInclude(JsonInclude.Include.NON_NULL) 其他常量值 阅读全文
posted @ 2024-02-16 14:46 leviH 阅读(304) 评论(0) 推荐(0)
摘要:实现TreeMap后默认为key升序排序,如果要实现key其他排序规则,可以使用Comparator对象作为参数,前提是key为可以排序的类型(String,int等类型) 1 Map<String,People> map = new TreeMap<>(new Comparator<String> 阅读全文
posted @ 2024-02-16 14:45 leviH 阅读(224) 评论(0) 推荐(0)
摘要:spring获取bean容器管理的实例常用方式有两种。 1. 使用注解注入,@Autowired和@Resource@Autowired推荐使用构造函数的方式注入,可被@RequiredArgsConstructor代替@Resource在接口的实现类有多个的时候使用,指定name=实现类名来注入指 阅读全文
posted @ 2024-02-16 14:43 leviH 阅读(1481) 评论(0) 推荐(0)
摘要:在对对象进行jackson序列化的时候,有时候会出现序列化后的变量名称大小写错误的情况。测试的实体类TestEntity2如下: public class TestEntity2 { private String aBcd; private String qWER; private String q 阅读全文
posted @ 2024-02-16 14:41 leviH 阅读(163) 评论(0) 推荐(0)
摘要:注解源码如下 1 @Target(ElementType.METHOD) 2 @Retention(RetensionPolicy.RUNTIME) 3 @Documented 4 public @interface RvcCache{ 5 Strng key(); 6 String id() de 阅读全文
posted @ 2024-02-16 14:39 leviH 阅读(67) 评论(0) 推荐(0)
摘要:配置文件application.properties里配置rabbitMQ的ip和端口,如果没有配置username和password,就是mq安装时默认的用户名密码: spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.port=5672 spring.r 阅读全文
posted @ 2022-10-26 14:47 leviH 阅读(232) 评论(0) 推荐(0)
摘要:1. MySQL 1 public void getFile(String id,HttpServletResponse response) { 2 // TODO 自动生成的方法存根 3 DataObject criteria = DataFactory.INSTANCE.create("com. 阅读全文
posted @ 2022-07-06 10:50 leviH 阅读(876) 评论(0) 推荐(0)
摘要:项目背景:项目的后台部署在内网服务器linux_A上,在内网服务器linux_B上部署了nginx_A,linux_A和linux_B网络是打通了的,前台代码部署在nginx_A中。 同时在外网服务器linux_C中部署了nginx_B,nginx_B做了代理设置,所有请求到这台服务器都转向了ngi 阅读全文
posted @ 2022-03-08 17:08 leviH 阅读(1417) 评论(0) 推荐(0)
摘要:在实际开发中,使用mybatis时,如果指定parameterType为map时,如果数据库中字段STRING1的值为null,则map中不会返回当前这个字段,给前台的json数据中没有STRING1这个对象,这时创建一个vo,使用vo去接收mybatis查询的结果时,则没有这个问题,返回给前台的j 阅读全文
posted @ 2021-09-02 17:23 leviH 阅读(2959) 评论(0) 推荐(0)
摘要:1 URL realurl = new URL(REQUESTURL); //REQUESTURL为常量,请求地址 2 HttpURLConnection httpURLConnection = (HttpURLConnection) realurl.openConnection(); 3 http 阅读全文
posted @ 2021-04-02 15:45 leviH 阅读(400) 评论(0) 推荐(0)
摘要:网上大多数博客的内容都是使用Runtime.getRuntime().exec来执行shell语句,但是这种方法在执行javac或者java -version的时候返回结果为空 Runtime.getRuntime().exec("cmd /c "+cmd); 找了许久终于发现一篇博客中的方法,使用 阅读全文
posted @ 2020-11-27 09:16 leviH 阅读(2967) 评论(0) 推荐(1)
摘要:最近客户提一个需求,需要在系统功能中增加一个页面,可以直接执行sql语句。 实现这个功能有三个难点: 1.查询语句中查询的table不确定,前端展示的时候表头也就不是固定的 2.通过jdbc执行sql语句,在执行查询语句的时候需要返回两个数据,一个是查询结果,一个是查询结果里的所有字段的集合(前端展 阅读全文
posted @ 2020-11-27 09:08 leviH 阅读(4394) 评论(0) 推荐(0)