随笔分类 -  Spring

摘要:1. 没有使用代理 场景: 如果你在一个类内部调用同一个类中的另一个方法,Spring 事务管理无法生效。 import org.springframework.stereotype.Service; import org.springframework.transaction.annotation 阅读全文
posted @ 2024-11-02 20:42 CyrusHuang 阅读(12) 评论(0) 推荐(0) 编辑
摘要:package com.example.demo.service; import com.example.demo.mapper.UserMapper; import com.example.demo.model.User; import org.springframework.beans.fact 阅读全文
posted @ 2024-11-02 20:41 CyrusHuang 阅读(6) 评论(0) 推荐(0) 编辑
摘要:@Transactional 注解 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface Transac 阅读全文
posted @ 2024-11-02 20:40 CyrusHuang 阅读(3) 评论(0) 推荐(0) 编辑
摘要:事务的基本概念 事务是由一系列操作组成的逻辑单元,这些操作要么全部成功,要么全部失败,一个事务具有以下特性(ACID): 原子性 (Atomicity):事务中的所有操作要么全部完成,要么全部不完成。 一致性 (Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。 隔离 阅读全文
posted @ 2024-11-02 20:39 CyrusHuang 阅读(41) 评论(0) 推荐(0) 编辑
摘要:定义通知 public class LoggingAdvice implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { System.o 阅读全文
posted @ 2024-11-02 20:38 CyrusHuang 阅读(7) 评论(0) 推荐(0) 编辑
摘要:目标bean package com.example.service; import org.springframework.stereotype.Component; @Component public class UserService { public String sayHello() { 阅读全文
posted @ 2024-11-02 20:37 CyrusHuang 阅读(3) 评论(0) 推荐(0) 编辑
摘要:execution 表达式 // 语法格式 execution(方法访问修饰符? 方法返回类型 方法所在包路径?.方法名(方法参数类型) 方法抛出的异常?) 访问修饰符:public、protected、private 等,可省略,省略表示任意修饰符 // com.example.service.U 阅读全文
posted @ 2024-11-02 20:36 CyrusHuang 阅读(28) 评论(0) 推荐(0) 编辑
摘要:AOP 的原理就是给目标对象创建代理对象,达到增强目标对象方法的目的 如果目标对象实现了接口就是用 JDK 动态代理,如果没实现接口就是用三方的 CGLIB 代理 如果不使用 AOP 想要增强一个 bean 可以这样做: @Component public class Test implements 阅读全文
posted @ 2024-11-02 20:35 CyrusHuang 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Spring AOP OOP:Object-Oriented Programming,面向对象编程;AOP:Aspect-Oriented Programming,面向切面编程 Advisor:spring 自己的 AOP 组件;AspectJ :三方实现的 AOP 组件 原理是对目标 bean 创 阅读全文
posted @ 2024-11-02 20:35 CyrusHuang 阅读(18) 评论(0) 推荐(0) 编辑
摘要:生命周期 实例化:通过反射调用构造方法创建 Bean 实例 属性赋值:把配置文件的值或 IOC 容器中的其他 bean 注入属性中 初始化:bean 进入初始化阶段,spring 提供了 3 种方式对 bean 加工处理 @PostConstruct 注解指定初始化方法 实现 Initializin 阅读全文
posted @ 2024-11-02 20:25 CyrusHuang 阅读(6) 评论(0) 推荐(0) 编辑
摘要:读取默认配置文件 配置文件(application.properties):可以是 yml 也可以是 properties 格式,properties 不支持map、数组等,yml 可以 spring.profiles.active: dev server.port: 18080 读取 @Compo 阅读全文
posted @ 2024-11-02 20:24 CyrusHuang 阅读(7) 评论(0) 推荐(0) 编辑
摘要:Aware 是一个接口,空接口,作为一种标记,实现了各种 Aware 的 bean,spring 会给这个 bean 中的对应属性赋值 接口 作用 ApplicationContextAware 获得当前应用上下文 BeanNameAware 获取容器中bean名称 BeanClassLoaderA 阅读全文
posted @ 2024-06-29 18:35 CyrusHuang 阅读(10) 评论(0) 推荐(0) 编辑
摘要:属性注入 如果 Person 类型的 bean 只有一个,直接注入,名字无所谓 注册 bean(容器中 Person 类型的 bean 只有这一个,bean 名称是 person) @Bean public Person person(){ return new Person(); } 注入 bea 阅读全文
posted @ 2024-06-29 18:34 CyrusHuang 阅读(14) 评论(0) 推荐(0) 编辑
摘要:注册 bean 的方式 1. @Configuration + @Bean @Configuration public class MyConfig { // 当前类也会注册成为一个 bean @Bean public User user(){ // 注册 bean retu new User(); 阅读全文
posted @ 2024-06-29 18:08 CyrusHuang 阅读(6) 评论(0) 推荐(0) 编辑
摘要:Bean 定义属性 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:// 阅读全文
posted @ 2024-06-29 18:05 CyrusHuang 阅读(11) 评论(0) 推荐(0) 编辑
摘要:从 IOC 容器获取 bean 有 3 种获取方式 根据 bean 名称,只能获取一个 根据 bean 类型,可以获取一个,也可以获取多个 根据 bean 名称+类型,只能获取一个,期望精准获取 获取的 bean 也有三种情况 bean 不存在 不管哪种获取方式,结果都是一样的(因为 bean 不存 阅读全文
posted @ 2024-06-29 16:42 CyrusHuang 阅读(13) 评论(0) 推荐(0) 编辑
摘要:IOC 容器 IOC 全称是 Inversion of Control 即 控制反转,DI 全称是 Dependency Injection 即 依赖注入 IOC 是一种设计原则,DI 是 IOC 的实现,两者相辅相成,所以都说 Spring 是两大特性 IOC/DI 和 AOP 如果不使用 IOC 阅读全文
posted @ 2024-06-29 12:10 CyrusHuang 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示