查看当前已安装的 WSL 版本: ❯ wsl -l -v NAME STATE VERSION * Ubuntu Running 2 进入 WSL,运行命令查看具体的发行版版本号: icexmoon@Awalon:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: …
查看当前已安装的 WSL 版本: ❯ wsl -l -v NAME STATE VERSION * Ubuntu Running 2 进入 WSL,运行命令查看具体的发行版版本号: icexmoon@Awalon:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: …
在前文中介绍了用于处理控制器方法的参数解析器和返回值解析器,本篇文章展开讨论 Spring 框架提供的不同类型的参数解析器的用途。 添加一个控制器类: @Controller @RequestMapping("/test") private static class TestController { @GetMapping public String test(@RequestParam String name, @RequestParam Integer a…
Spring 中,用于加载和启动 Web Server 的容器类型是AnnotationConfigServletWebServerApplicationContext: AnnotationConfigServletWebServerApplicationContext context = new AnnotationConfigServletWebServerApplicationContext(Config.class); new CountDownLatch(1).await(); 其配置类需要至少三个 B…
通过代理实现 AOP 下面演示怎么通过代理实现 AOP。 需要被 AOP 的类: interface Hello{ void sayHello(); void sayBye(); } static class Target implements Hello{ @Override public void sayHello() { System.out.println("Hello World"); } @Override public void sayBy…
有时候需要在代码中使用某个类的完整包名,比如: pointcut.setExpression("@annotation(org.springframework.transaction.annotation.Transactional)"); 大概有相当一部分人会先找到Transactional这个注解,再手动复制上边的包名,然后拼接: 实际上有个更方便的方式: 找到该注解,在其上右键选择复制引用,就可以将其完整类名复制到剪贴板。 当然也可以在注解定义文件中的类名上操作,效果是相同的。 当然也可以对类文件执行类似的操…
实现 动态代理有两种实现方式: JDK CGLIB JDK 要代理的目标类: interface DoSomething { void doSomething(); } @Slf4j static class Target implements DoSomething { @Override public void doSomething() { log.info("doSomething..."); } } 通过 JDK 创建动态代理: Target target = …
从官方 JDK 中挑选一个需要的版本下载。 要注意的是,Linux 平台有架构区分,AArch64 对应的是 ARM64 架构(ARM),x64 对应的是 x86 64 (Intel/AMD)架构。可以使用uname -m命令查看当前平台的 CPU 架构。 下载: wget https://download.java.net/java/GA/jdk22.0.2/c9ecb94cd31b495da20a27d4581645e8/9/GPL/openjdk-22.0.2_linux-x64_bin.tar.gz 解压:…
AOP 有三种实现方式: 动态代理(Dynamic Proxy) 编译时织入(Compile Time Weaving,CTW) 加载时织入(Load Time Weaving,LTW) 动态代理 添加 AOP 相关依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </d…
Scope Spring 的 bean 是有作用域(Scope)的: singleton:单例 prototype:原型,每次都获取到新的实例。 request:请求,在一次 HTTP 请求内有效。 session:会话,在一次 HTTP 会话内有效。 application:应用,在一个 Servlet 容器中有效。 默认的作用域是单例。 最后三种作用域都与 Web 应用相关,可以用一个简单的基于 Spring Boot 的 Web 应用观察其创建和销毁。 定义三种不同作用域的 bean: @Scope(WebA…
Aware 接口 Spring 提供一组 Aware 接口,可以利用它们在 bean 中获取容器或 bean 相关的句柄: @ToString @Slf4j static class MyBean implements ApplicationContextAware, BeanNameAware, InitializingBean { private String beanName; private ApplicationContext applicationContext; @Overrid…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang