当前位置: 首页 > news >正文

台前做网站的公司建站源码下载

台前做网站的公司,建站源码下载,一套oa系统大概需要多少钱,义乌外发饰品加工网1.Spring工程的启动流程: Spring工程的启动流程主要包括以下几个步骤: 加载配置文件:Spring会读取配置文件(如XML配置文件或注解配置)来获取应用程序的配置信息。实例化并初始化IoC容器:Spring会创建并初…

1.Spring工程的启动流程:

Spring工程的启动流程主要包括以下几个步骤:

  • 加载配置文件:Spring会读取配置文件(如XML配置文件或注解配置)来获取应用程序的配置信息。
  • 实例化并初始化IoC容器:Spring会创建并初始化IoC容器,即ApplicationContext。在这一步,Spring会解析配置文件,并将配置的Bean实例化。
  • 实例化并初始化Bean:Spring根据配置信息实例化Bean,并完成Bean的依赖注入和初始化(例如调用构造函数、属性设置和初始化回调等)。
  • 完成Bean的初始化:在所有Bean实例化后,Spring会执行Bean的初始化回调方法(如果有定义的话)。
  • 应用程序使用:容器启动后,应用程序可以使用通过容器管理的Bean来完成相应的业务逻辑。

2.Spring Bean的生命周期:

Spring Bean的生命周期包括以下几个阶段:

  • 实例化:容器实例化Bean对象。
  • 属性赋值:容器注入Bean的属性值和依赖。
  • 初始化:Bean进行一些初始化操作,可以自定义初始化方法。
  • 使用:Bean可供应用程序使用。
  • 销毁:容器关闭时,销毁Bean,可以自定义销毁方法。

3.Spring给我们开发人员提供了哪些扩展点?

Spring提供了以下扩展点:

  • BeanPostProcessor:可以在Bean实例化和初始化前后对Bean进行自定义处理。
  • BeanFactoryPostProcessor:可以在容器实例化和配置所有Bean之后,对BeanFactory进行自定义处理。
  • InitializingBean和DisposableBean:用于在Bean的初始化和销毁阶段执行一些额外操作。
  • @PostConstruct和@PreDestroy:通过注解方式定义Bean的初始化和销毁方法。
  • BeanDefinitionRegistryPostProcessor:用于在Bean定义加载前对BeanDefinition进行自定义处理。

4.Spring如何管理事务?

Spring通过AOP(面向切面编程)和事务管理器来管理事务。

  • 在Spring中,我们可以通过@Transactional注解或XML配置来标记事务的边界。
  • 当方法被@Transactional注解标记时,Spring将为该方法创建一个事务,并在方法执行前后启动和提交事务。如果方法抛出异常,则会回滚事务。Spring使用事务管理器来处理底层数据库事务的提交和回滚。

5.Spring是如何解决循环依赖问题的?

Spring使用了三个主要的解决循环依赖的机制:

  • 提前暴露Bean(Early Bean Post-Processors):Spring容器在创建Bean实例的过程中,会提前暴露尚未完全初始化的Bean实例。这意味着在创建Bean的过程中,即使发生循环依赖,也能够获取到尚未初始化的Bean实例的引用,从而解决了循环依赖的问题。

  • 三级缓存(Three-Level Cache):Spring使用三级缓存来处理循环依赖。在创建Bean的过程中,Spring首先会将正在创建的Bean实例放入第一级缓存。然后,它会创建Bean的实例并放入第二级缓存,但在实例化之前,会解析依赖关系并注入尚未初始化的Bean引用。最后,当Bean实例完全创建并初始化后,它会放入第三级缓存。通过使用三级缓存,Spring能够在创建Bean实例的过程中解决循环依赖的问题。

  • 通过代理实现解决循环依赖(通过CGLIB创建代理对象):当Spring检测到循环依赖无法通过前两种方式解决时,它会尝试使用代理对象来解决循环依赖。对于需要循环依赖的Bean,Spring会创建一个代理对象来代替原始的Bean实例。当其他Bean依赖于该Bean时,Spring会注入这个代理对象。代理对象在真正被调用时,会触发Spring创建并注入真正的Bean实例,从而解决了循环依赖的问题。

6.Spring中的事务传播行为有哪些?

Spring定义了以下事务传播行为:
在这里插入图片描述
required supports

REQUIRED:如果当前存在事务,则加入该事务,如果不存在,则新建一个事务。
SUPPORTS:如果当前存在事务,则加入该事务,如果不存在,则以非事务方式执行。
MANDATORY:要求当前存在事务,如果不存在则抛出异常。
REQUIRES_NEW:新建一个事务,并挂起当前事务(如果存在)。
NOT_SUPPORTED:以非事务方式执行,如果当前存在事务,则挂起该事务。
NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
NESTED:如果当前存在事务,则在嵌套事务中执行,如果不存在,则执行与REQUIRED相同的行为。

http://www.yayakq.cn/news/640956/

相关文章:

  • 熊掌号网站改造绑定织梦网站东莞建网站公司动
  • 制作手机网站芜湖seo网站优化
  • 南宁网站制作最新招聘信息网站什么语言好
  • 什么软件做网站比较好网页设计图片相对路径
  • python网站建设商城类网站怎么优化
  • 源码网站代理有没有做那个的视频网站
  • 国内最大的网页模板网站青州网站搭建
  • 正规网站做菠菜广告可以做c语言任务的网站
  • 网站开发设计心得及体会柬埔寨旅游网站建设
  • 网站运营的概念推荐的网站制作
  • 多用户分布式网站开发徐州 网站制作
  • 天津综合网站建设商店手机网站dedecms
  • 百度推广送企业网站吗房产网络经纪人
  • 免费建设网站有哪些设计师用的软件有哪些
  • 重庆营销网站建设公司排名网站建设.pdf百度云
  • 企业网站建设 邮箱公司的网站建设jnzji
  • 比较出名的设计网站wordpress账号登录界面
  • 建网站要多少钱呢网站开发的交付文档
  • 做公司网站是永久性的吗东莞百度快速排名优化
  • 深圳光明新区网站建设高级网页设计教程
  • 十堰英文网站建设wordpress 分类 文章列表
  • 王者荣耀做网站dede网站不能访问
  • 百度首页官网seo工程师是做什么的
  • 秘塔猫ai写作官网泰兴网站优化
  • 丹阳网站制作现货交易十大平台
  • 安徽省建设干校网站哈尔滨百度网络推广
  • ysl千人千色t9t9t9t9网站优化工作怎么样
  • 东营市建设项目工伤保险是哪个网站国家职业资格证书查询
  • 网站建设案例单招网理查德西尔斯做的网站
  • 郑州网站制作费用ktv在那些网站做宣传效果好