Spring

BeanFactory

BeanFactory:ApplicationContext的父接口

DefaultListableBeanFactory:BeanFactory的默认实现类

DefaultSingletonBeanRegistry:DefaultListableBeanFactory的父类,默认注册单例bean的类

ApplicationContext

ApplicationContext:BeanFactory的子接口,组合了BeanFactory

MessageSource:ApplicationContext的父接口,提供国际化能力

ReloadableResourceBundleMessageSource:MessageSource的默认实现类,支持消息的动态刷新(当资源文件发生更改时,无需重启应用)

ResourcePatternResolver:ApplicationContext的父接口,提供获取资源文件能力

EnvironmentCapable:ApplicationContext的父接口,提供获取环境配置信息能力

ApplicationEventPublisher:ApplicationContext的父接口,提供发布事件能力

ClassPathXmlApplicationContext:ApplicationContext接口的实现类,从类路径中加载XML配置文件,并创建一个Spring应用上下文

FileSystemXmlApplicationContext:ApplicationContext接口的实现类,从磁盘中加载 XML配置文件,并创建一个Spring应用上下文

AnnotationConfigApplicationContext:ApplicationContext接口的实现类,通过Java配置类创建一个 Spring 应用上下文

AnnotationConfigServletWebServerApplicationContext:ApplicationContext接口的实现类,在Servlet环境中使用Java配置类创建一个Spring应用上下文,并提供Web服务器功能

作用域

singleton(默认):单例模式,相同名称的bean在spring ioc容器中只有一个

prototype:原型模式,spring容器每次都会创建一个新的bean

request:每次HTTP请求都会创建一个新的bean,并且只在该HTTP请求内有效

session:每个HTTP Session中拥有一个bean的实例

依赖注入方式

构造器注入:使用构造函数注入

Setter注入:使用setter方法来注入

字段注入:使用@Autowired和@Resource

后处理器

ConfigurationClassPostProcessor:处理@Configuration/@Bean/@ComponentScan/@Import

BeanFactoryPostProcessor:ConfigurationClassPostProcessor的父接口

AutowiredAnnotationBeanPostProcessor:处理@Autowired,默认优先级比CommonAnnotationBeanPostProcessor高

CommonAnnotationBeanPostProcessor:处理Java EE标准注解(@Resource/@PostConstruct/@PreDestroy)

BeanPostProcessor:AutowiredAnnotationBeanPostProcessor和CommonAnnotationBeanPostProcessor的父接口

事务失效场景

1:非public方法

2:非事务方法自调用(self-invocation)内部事务方法

解决方法:

      1:注入自身获取代理对象进行调用

      2:外部调用事务方法

3:异常被捕捉

4:抛出的异常类型未在@Transactional中声明,默认只回滚RuntimeException

5:事务传播行为设置不当,如NOT_SUPPORTED/NEVER/REQUIRES_NEW

代码示例:https://gitee.com/txovo/spring

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨晨OvO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值