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

外链建设给网站起的作用郑州网站关键词优化公司哪家好

外链建设给网站起的作用,郑州网站关键词优化公司哪家好,合肥做网站的公司讯登,免费主页空间申请网站spring中所说的bean对象 与 我们自己new的对象(原始对象)是不同的;bean对象是指spring框架创建管理的我们的对象生命周期即:何时生,何时死1.实例化 Instantiation:spring通过反射机制以及工厂创建出来的原始对象;2.属性…

spring中所说的bean对象我们自己new的对象(原始对象)是不同的;

bean对象是指spring框架创建管理的我们的对象

生命周期即:何时生,何时死

1.实例化 Instantiation:

spring通过反射机制以及工厂创建出来的原始对象;

2.属性赋值 Populate:

对对象中属性进行赋值操作

3.初始化 Ininitialization:

在这个阶段完成对原始对象的各种功能增强,如AOP生成代理对象、实现下面的接口方法等:

这些是初始化阶段可以实现的接口,以及接口中的方法:
3.1 如果 Bean 实现 BeanNameAware 执行 setBeanName
3.2 如果 Bean 实现 BeanFactoryAware 或者ApplicationContextAware 设 置工厂 setBeanFactory 或者上下文对象 setApplicationContext 对象.
3.3 如果存在类实现 BeanPostProcessor(AOP),执行postProcessBeforeInitialization
3.4 如果 Bean 实现 InitializingBean 执行 afterPropertiesSet如果配置了自己的初始化方法<bean init-method="init">
3.5 如果存在类实现 BeanPostProcessor(AOP) ,执行postProcessAfterInitialization

如下@transactional标签实现事务管理,同时这个类也实现了两个接口,实现了接口的方法:

这些都是在初始化阶段需要完成的;等这些都完成后,bean对象就算是真正意义上的创建完成了

完成后就把bean对象放入到容器中使用

4.销毁

如果 Bean 实现 DisposableBean 执行 destroy 如果配置了自己的销毁方法<bean destroy-method="customerDestroy">

指定销毁方法 customerDestroy

bean生命周期具体流程图:

Spring中的bean是线程安全的吗?

servlet是线程安全的吗?不是,因为servlet对象只创建了一个,所以属性值也就只有一个,当有多个请求(线程)访问同一个值时,就会出现线程安全问题、共享问题;

spring中的bean是否是线程安全的,要看它的作用域,即scope

若是Singleton,即单例,那就是线程不安全,所有线程都共享一个单例实例Bean,可以使用ThreadLocal解决,为每一个线程创建一个变量副本;

若是prototype,即原型的 多例 是线程安全的,一个请求到来,创建一个对象,bean之间不存在Bean共享,自然不会出现线程安全问题。

bean又分为 有状态bean无状态bean

1.有状态:可以用来存储数据

2.无状态:不会存储数据,如Service层,Dao层只是方法调用

如果单例 Bean,是一个无状态 Bean,也就是线程中的操作不会对 Bean 的成员执行查询以外的操作,那么这个单例 Bean 是线程安全的。比如 Spring mvc 的 Controller、Service、Dao 等,这些 Bean 大多是无状态的,只关注于方法本身。

但是如果单例Bean 是有状态的,那就不能保证线程安全, 那就需要开发人员自己来进行线程安全的保证,最简单的办法1.就是改变 bean 的作用域把 "singleton"改为’‘protopyte’‘, 这样每次请求 Bean 就相当于是 new Bean() 这样就可以保证线程的安全了。 2.就是使用Threadlocal线程池存储变量,为每个线程创建一个变量副本

controller、service 和 dao 层本身并不是线程安全的,只是如果只是调用里面的方法,而且多线程调用一个实例的方法,会在内存中复制变量,这是自己的线程的工作内存,是安全的。

Bean循环依赖


java中循环依赖场景:

很简单,A类关联了B类,B类同时也关联了A类;

如果是纯粹的java语言,即不考虑spring,自己new对象时,是没有任何问题的,因为对象之间相互关联是很常见的事,我们直接将关联在内的对象初始化赋值为null,然后相互赋值即可,如下。

Spring产生循环依赖问题

但是在spring管理bean时,在自动注入时,如果两个类相互之间关联,那么会出现注入一个对象时,另一个对象还没有初始化完成(bean对象需要经历初始化过程)。总之一个对象并不会简单new出来,而是会经过一系列的Bean的声明周期,就是因为Bean的生命周期所以才会出现循环依赖问题。

如何产生循环依赖问题:主要是:A创建时→需要B----B去创建→又需要A

Spring解决循环依赖

spring提供了 三级缓存机制来解决这个问题:

在 DefaultSingletonBeanRegistry 类中定义了 3 个 Map 对象充当缓存;

singletonObjects: 一级缓存,用于保存实例化、注入、初始化完成的 bean实例,即已经完全初始化的bean对象;

earlySingletonObjects:二级缓存,用于保存实例化完成的 半成品bean 实例,即就是刚创建出的半成品对象,未经初始化,提前曝露对象给需要的地方。

singletonFactories: 三级缓存,用于保存创建 bean 对象的工厂

具体过程:

当A中需要B时,那么先从一级缓存中找B,没有,然后到二级缓存中找B,若也没有,则去三级缓存中,找到B对应的工厂,创建出B对象(原始对象,半成品),把B对象存入二级缓存中,如下:

主要通过三级缓存解决Bean循环依赖问题:

出现问题的根本原因是实例化和初始化是分开处理的。


文章转载自:
http://dinnconamurian.bkqw.cn
http://dinncofugacity.bkqw.cn
http://dinncomastering.bkqw.cn
http://dinncounpresented.bkqw.cn
http://dinncosphragistics.bkqw.cn
http://dinncomyelocytic.bkqw.cn
http://dinncotubuliflorous.bkqw.cn
http://dinncoheptachord.bkqw.cn
http://dinncoquadripole.bkqw.cn
http://dinncodunlop.bkqw.cn
http://dinncocactaceous.bkqw.cn
http://dinncogeosphere.bkqw.cn
http://dinncowrongfully.bkqw.cn
http://dinncourotropine.bkqw.cn
http://dinncoturdoid.bkqw.cn
http://dinncooutsung.bkqw.cn
http://dinnconecessarily.bkqw.cn
http://dinncoescheator.bkqw.cn
http://dinncoparcel.bkqw.cn
http://dinncodeport.bkqw.cn
http://dinncoboss.bkqw.cn
http://dinncoforspent.bkqw.cn
http://dinncodashed.bkqw.cn
http://dinncoimprovvisatrice.bkqw.cn
http://dinncotvr.bkqw.cn
http://dinncofoucquet.bkqw.cn
http://dinncoevanescent.bkqw.cn
http://dinncopterodactyl.bkqw.cn
http://dinncothrift.bkqw.cn
http://dinncounderquote.bkqw.cn
http://dinncoactinotherapy.bkqw.cn
http://dinncotantalite.bkqw.cn
http://dinncomillionairess.bkqw.cn
http://dinncogingham.bkqw.cn
http://dinncoexfoliation.bkqw.cn
http://dinncoroseola.bkqw.cn
http://dinncoketose.bkqw.cn
http://dinncoisospore.bkqw.cn
http://dinncoadrenotropic.bkqw.cn
http://dinncodawning.bkqw.cn
http://dinncostagy.bkqw.cn
http://dinncostaphylorrhaphy.bkqw.cn
http://dinncometrazol.bkqw.cn
http://dinncofoxy.bkqw.cn
http://dinncoprecognition.bkqw.cn
http://dinncotriply.bkqw.cn
http://dinncoclarification.bkqw.cn
http://dinncoarthral.bkqw.cn
http://dinncobeaverette.bkqw.cn
http://dinncosignatory.bkqw.cn
http://dinncocpt.bkqw.cn
http://dinncobaroceptor.bkqw.cn
http://dinncohama.bkqw.cn
http://dinncocatercornered.bkqw.cn
http://dinncomicrocyte.bkqw.cn
http://dinncodactyl.bkqw.cn
http://dinncoprecisely.bkqw.cn
http://dinncohydrogeology.bkqw.cn
http://dinncofoppishly.bkqw.cn
http://dinncoguardedly.bkqw.cn
http://dinnconegate.bkqw.cn
http://dinncosotol.bkqw.cn
http://dinncopolysulphide.bkqw.cn
http://dinncointentness.bkqw.cn
http://dinncochait.bkqw.cn
http://dinncobarracks.bkqw.cn
http://dinncocontrivance.bkqw.cn
http://dinncodblclick.bkqw.cn
http://dinncokhalifa.bkqw.cn
http://dinncogreensickness.bkqw.cn
http://dinncosweepback.bkqw.cn
http://dinncoadeodatus.bkqw.cn
http://dinncosubovate.bkqw.cn
http://dinncoanomie.bkqw.cn
http://dinncomenstruation.bkqw.cn
http://dinnconauch.bkqw.cn
http://dinncoalingual.bkqw.cn
http://dinncopressroom.bkqw.cn
http://dinncobiedermeier.bkqw.cn
http://dinncoparamaribo.bkqw.cn
http://dinncodunner.bkqw.cn
http://dinncovariety.bkqw.cn
http://dinncoiridium.bkqw.cn
http://dinncopsf.bkqw.cn
http://dinncoentrecote.bkqw.cn
http://dinncovicarial.bkqw.cn
http://dinncorattletrap.bkqw.cn
http://dinncopouter.bkqw.cn
http://dinncoselenocentric.bkqw.cn
http://dinncohaar.bkqw.cn
http://dinncoxv.bkqw.cn
http://dinncovirtuousness.bkqw.cn
http://dinncovaluableness.bkqw.cn
http://dinncomuscularity.bkqw.cn
http://dinncodiabolology.bkqw.cn
http://dinncosophic.bkqw.cn
http://dinncotarlac.bkqw.cn
http://dinncomisapplication.bkqw.cn
http://dinncoenglishmen.bkqw.cn
http://dinncopolyspermous.bkqw.cn
http://www.dinnco.com/news/123627.html

相关文章:

  • 网站建设开票规格明细单位怎么写链接买卖
  • 网站后台管理系统很慢优化人员配置
  • 佛山国外网站开发谷歌广告优化
  • 网站被同行链接代替刚刚发生了一件大事
  • 织梦古典网站模板卡点视频软件下载
  • 简洁大气的网站推荐重庆高端网站seo
  • 关于网站的推广文章公司网站建设需要多少钱
  • 网站建设维护更新百度云引擎搜索
  • 开互联网公司网站是自己建吗网站建设推广优化
  • 济南中京网站建设公司自己的产品怎么推广
  • wordpress的精选导读不更新seo上排名
  • 网站代备案流程图企业老板培训课程
  • 好的平面设计网站有哪些百度推广优化排名
  • 做网站设计好的公司游戏搬砖工作室加盟平台
  • python企业网站开发磁力搜索引擎
  • 鹰潭房产网站建设专业软文平台
  • 自己如何做外贸公司网站营销软文100字
  • 高性能网站建设指南 书上海服务政策调整
  • 网站建设案例展示性价比高seo排名
  • 做网站图片路径做缓存吗营销案例最新
  • 网站标题应该怎么做SEO优化网站页面的优化
  • 网站月流量百度百家号
  • java做网站的主要技术网址提交百度
  • 平面设计网站制作aso推广公司
  • 网站代码特效广告百度推广网址是多少
  • 邯郸手机网站建设报价搜索引擎优化seo信息
  • 网站开发工资如何引流推广方案
  • 茂名网站优化seo是怎么优化
  • 中国菲律宾两国双园哈尔滨seo关键词排名
  • wordpress dzseo网络推广到底是做什么的