原理 假设有两个外部的第三方配置类: static class OuterBean1{} static class OuterBean2{} /** * 外部配置类1 */ @Configuration static class OuterConfig1{ @Bean public OuterBean1 outerBean1(){ return new OuterBean1(); } } /** * 外部配置类2 */ @Configuration static class Out…
原理 假设有两个外部的第三方配置类: static class OuterBean1{} static class OuterBean2{} /** * 外部配置类1 */ @Configuration static class OuterConfig1{ @Bean public OuterBean1 outerBean1(){ return new OuterBean1(); } } /** * 外部配置类2 */ @Configuration static class Out…
基本结构 Tomcat 的基本结构: Server └───Service ├───Connector (协议, 端口) └───Engine └───Host(虚拟主机 localhost) ├───Context1 (应用1, 可以设置虚拟路径, / 即 url 起始路径; 项目磁盘路径, 即 docBase ) │ │ index.html │ └───WEB-INF │ │ web…
除了直接通过浏览器从 Spring 官网下载框架代码以及通过 Idea 创建外,还可以通过 Linux 下的命令行 Web 客户端下载,优点是可以结合 Bash 命令或脚本实现一些自动化功能,此外也可以在 Idea 无法创建项目框架时作为一种替代方案。 curl -G https://start.spring.io/starter.tgz -d dependencies=web,lombok -d type=maven-project -d java-version=21 -d …
能做什么 从 Spring 官网下载并解压以生成 spring boot 框架代码。 存在的意义 一般通过 Idea 从 https://start.spring.io/ 下载框架代码,但很诡异的是,经常会出现浏览器可以访问,但 Idea 无法下载的问题,尝试通过 curl 等 Linux 命令行 web 客户端下载,依然有概率出现连接超时的问题。 网上给出的解决方案是将 Spring 官网源替换为阿里源,我本来也打算这么干,但发现阿里源使用的是过时版本,版本支持上与官网不一致,因此就有了这个工具。 本工具的旨在通…
通过代理实现 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…
实现 动态代理有两种实现方式: JDK CGLIB JDK 要代理的目标类: interface DoSomething { void doSomething(); } @Slf4j static class Target implements DoSomething { @Override public void doSomething() { log.info("doSomething..."); } } 通过 JDK 创建动态代理: Target target = …
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…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang