可以从2个层面理解Spring: 首先Spring是一个生态:可以构建企业级应用程序所需的一切基础设施 但是,通常Spring指的就是Spring Framework,它有两大核心:
Spring提供了以下几种方式来实现自动装配Bean: 根据名称自动装配(byName):Spring容器会根据Bean的名称自动将相应的依赖注入到需要的地方。在XML配置中,可以使用autowire="byName"来启用byName自动装配。 <
在Spring框架中, 由于单例Bean在整个Spring上下文只有一个实例,因此在多线程环境下访问该实例时,需要确保Bean的状态是线程安全的。如果单例Bean的状态是可变的,并且多个线程同时修改该状态,可能会导致线程安全问题。 为了确保单例Bean的线程安全性,可以采取以下几种方式:
首先说下他们之间的关系: 当在Spring中要使用@Aspect、@Before.等这些注解的时候, 就需要添加AspectJ相关依赖 <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifac
Spring切面可以应用5种类型的通知: 前置通知:在目标方法被调用之前调用通知功能; 后置通知:在目标方法完成之后调用通知,此时不会关心方法的输出是什么; 返回通知:在目标方法成功执行之后调用通知; 异常通知:在
事务的传播特性指的是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行? Spring框架提供了多种事务传播行为: REQUIRED:如果当前存在事务,则加入该事务,如果当前没有事务,则创建一个新的事务。这是最常用的传播行为,也是默认的,适用于大多数情况。
1. 当使用@Component Bean的Name默认是什么? 很多同学觉得Bean的名字不就是类名首字母小写吗?其实并不是全都这样。 在解析@Component注册为BeanDefinition时会调用AnnotationBeanNameGenerator.buildDefaultBeanNam
Spring的事务隔离级别是指在并发环境下,事务之间相互隔离的程度。Spring框架支持多种事务隔离级别,可以根据具体的业务需求来选择适合的隔离级别。以下是常见的事务隔离级别: DEFAULT(默认):使用数据库默认的事务隔离级别。通常为数据库的默认隔离级别,如Oracle为READ COMMITT