实现 动态代理有两种实现方式: JDK CGLIB JDK 要代理的目标类: interface DoSomething { void doSomething(); } @Slf4j static class Target implements DoSomething { @Override public void doSomething() { log.info("doSomething..."); } } 通过 JDK 创建动态代理: Target target = …
实现 动态代理有两种实现方式: 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…
用途 ConfigurationClassPostProcessor 前文提到过,bean 工厂的后处理器可以用于处理 bean 定义。比如下面的示例: static class Bean1{} @Configuration @ComponentScan(basePackages = "cn.icexmoon.demo.bean") static class Config{ @Bean public Bean1 bean1(){ return new Bean1(); } } bean…
在前篇中介绍了,Spring 提供了一些 bean 的后处理器(实现了 BeanPostProsessor 接口),用于处理 bean 的依赖注入等。实际上,我们可以通过自定义一个实现了相应接口的后处理器来观察 bean 的生命周期。 Bean 生命周期 创建一个用于打印不同生命周期方法钩子的 bean 后处理器: static class MyBeanPostProcessor implements InstantiationAwareBeanPostProcessor, DestructionAwareBean…
问题描述 使用 Idea 创建 Spring 项目时,有概率会出现如下错误信息: "https://start.spring.io'的初始化失败 请检查URL、网络和代理设置。 错误消息: Cannot download 'https://start.spring.io': connect timed out , response: 200 null 但访问 Spring 官网正常。 问题分析 可能是由于使用了 V2RayN 等网络工具,启用了系统的网络代理,但 Idea 没有正确处理代理,所以连接不到 Sprin…
Bean 定义和 Bean 实例 AnnotationConfigApplicationContext 首先,创建一个最简单的 Spring Boot 应用。 在入口类中接收SpringApplication.run的返回值: @SpringBootApplication public class DemoApplication { public static void main(String[] args) { ConfigurableApplicationContext contex…
博客更新后意外发现验证码插件失效了,登录不了后台了。好在通过 SSH 删除插件目录的验证码插件就解决了。 翻了一下 WordPress 插件社区,找到了一个适合 6.8.1 版本的验证码插件 hCaptcha for WP。 相对于原来使用的简单的图片验证码,这个验证码使用成熟的机器验证供应商,可以根据网站被攻击的程度提供不同的验证级别来保护网站。 要使用这个插件,需要先在 https://dashboard.hcaptcha.com/ 这个网站注册账号。 然后在 Sites 这个页面设置一个网站: 设置项里可以调…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang