实现 动态代理有两种实现方式: 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 = …
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…
Bean 定义和 Bean 实例 AnnotationConfigApplicationContext 首先,创建一个最简单的 Spring Boot 应用。 在入口类中接收SpringApplication.run的返回值: @SpringBootApplication public class DemoApplication { public static void main(String[] args) { ConfigurableApplicationContext contex…
问题描述 使用 Idea 启动 Spring Boot 应用时有如下错误: Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class 似乎是因为配置文件中缺少数据库连接相关信息导致的数据库连接不上的问题。 但查…
今天遇到一个奇怪的问题,在配置类中注册了一个拦截器: @Configuration public class WebConfig implements WebMvcConfigurer { @Resource private AuthInterceptor authInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { // 注册拦截器,并指定拦截路径 …
1.准备工作 创建一个 SpringBoot 项目,并勾选必要的依赖。 因为要使用 JSP 作为前端页面,所以这里需要将打包方式修改为war: <packaging>war</packaging> 添加 JSTL 依赖: <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2<…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang