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

凡科网站代码如何修改陕西省人民政府

凡科网站代码如何修改,陕西省人民政府,创建网站销售产品,线上设计师是什么序员与平庸的程序员之间的区别,是在于认为自己的代码重要还是数据结构更加重要。平庸的程序员眼里只有代码,优秀的程序员则关注数据结构及之前的关系。” 1、spring的设计理念 spring提供了一个轻量级的开发框架,抽象了实际开发中的很多共…

序员与平庸的程序员之间的区别,是在于认为自己的代码重要还是数据结构更加重要。平庸的程序员眼里只有代码,优秀的程序员则关注数据结构及之前的关系。”

1、spring的设计理念

spring提供了一个轻量级的开发框架,抽象了实际开发中的很多共性问题;在javaee的开发中,支持pojo和使用javabean的开发方式,使应用面向接口开发、充分支持OO;

通过spring的ioc容器,将复杂的对象耦合关系变成了一个文本化、外部化的工作,通过一个或几个xml文件来方便的对应用对象的耦合关系进行维护、修改和浏览,极大地简化了应用开发;

通过ioc容器的依赖反转,将依赖关系从java对象中解放出来,交给了ioc容器完成,对象之间的关系进行了解耦,对象——对象之间的关系转化成了对象——IOC容器——对象的关系;

IOC容器和AOP模块是spring最为基础的底层抽象,IOC来管理bean对象,aop以动态和非侵入的方式增强服务功能。

2、spring的整体架构

springioc、spring aop、springmvc、springjdbc/orm、spring事务处理、spring的远端调用、spring应用;其中aop以纵向切面的方式贯穿在整个架构中;

Spring 中两个数据结构最核心:① BeanDefinition,用于表示 Bean 的定义;② BeanFactory,用于表示整个 IoC 容器。

3、spring framework的核心:IOC容器的实现

ioc容器概述

面向对象系统:对象封装了数据和对数据的处理,对象的依赖关系主要体现在对数据和方法的依赖上。这种依赖关系可以通过把对象的依赖注入交给框架或者IOC容器来完成

依赖注入:依赖对象获得被反转了,由自身主动地获取反转到交给ioc容器来注入、获取。新建对象、对象的引用赋值等操作交由容器来统一完成。从而将散落在不同代码中的功能相同的部分集中成了容器的一部分,成了面向对象基础设施的一部分。

对面向对象系统中的对象分为2类:数据对象、处理数据的对象。后者不经常变化,很少涉及数据和状态共享的问题,是系统中基础的部分。同时这些对象间依赖关系也很稳定,这些特性非常适合由ioc容器来进行管理

IOC容器的设计与实现:

BeanFactory和ApplicationContext:

我们通常说的ioc容器实际上指的是一些功能各异的容器产品,各有特点

beanfactory:容器的基本功能;applicationcontext:应用上下文,作为容器的高级形态而存在,增加了很多面向框架的特性和适配。

beandefinition:抽象了对bean的定义,管理各种对象,是依赖翻转模式中管理的对象依赖关系的数据抽象,是容器发挥作用的主要数据类型。计算机中,所有的功能都是建立在通过数据对现实进行抽象的基础上的。

IOC容器的接口设计关系:

2ab20ac8d14006ad20db066da507a224.jpeg

1、从接口BeanFactory---HierarchicalBeanFactory---ConfigurableBeanFactory,是一条主要的BeanFactory设计路径。

2、第二条接口设计主线是以ApplicationContext应用上下文接口为核心的接口设计,从BeanFactory---ListableBeanFactory---ApplicationContext---WebApplicationContext(ConfigurableApplicationContext)。

3、具体的IoC容器都是在以上的接口体系下实现的,比如DefaultListableBeanFactory,实现了ConfigurableBeanFactory,从而成为一个简单IoC容器的实现。其他的如XmlBeanFactory,都是在DefaultListableBeanFactory的基础上做扩展,ApplicationContext也是如此。

4、BeanFactory是IoC容器最基本的接口,提供的是最基本的IoC容器的功能,比如getBean、containsBean等,其他高级IoC容器接口再在此基础功能上进行扩展。

5、BeanFactory是一个对象工厂,管理Spring中所有的Bean,而FactoryBean是一个特殊的Bean。

IOC容器的创建步骤:

(1)创建IoC配置文件的抽象资源,包含了BeanDefinition的定义信息;

(2)创建一个BeanFactory;

(3)创建一个载入BeanDefinition的读取器;

(4)从定义好的资源位置读入配置信息。

c8eec0cca540ce0d0e1e32df4173d743.jpeg

核心属性(Spring 循环依赖):

Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256):Bean 名称到单例 Bean 的映射,用于存放完全初始化好的 Bean。可以理解成,这就是所谓的容器。这是一级缓存。

Map<String, Object> earlySingletonObjects = new HashMap<>(16):Bean “未成熟”单例 Bean 的映射。该 Bean 对象只是被创建出来,但是还没有注入依赖。在容器解决循环依赖时,用于存储中间状态。这是二级缓存。

Map<String, ObjectFactory<?>> singletonFactories = new HashMap<>(16):Bean 名称到 Bean 的 ObjectFactory 对象的映射,存放 Bean 工厂对象。在容器解决循环依赖时,用于存储中间状态。这是三级缓存。

Bean 的获取过程就类似计算机缓存的作用过程:先从一级获取,失败再从二级、三级里面获取。org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#getSingleton(java.lang.String, boolean) 方法

实际中最长使用的是ApplicationContext这个高级形态的IOC容器。他除了具备基本的beanfactory的功能,还集成了很多附加功能:

支持信息源,可以实现国际化。(实现MessageSource接口)

访问资源。(实现ResourcePatternResolver接口,这个后面要讲)

支持应用事件。(实现ApplicationEventPublisher接口)

在ApplicationContext中提供的附加服务

IOC容器初始化:

refresh()方法标志着ioc容器的正式启动。具体包括beandefinition的resources定位、载入和注册三个过程:

IOC容器的初始化分为三个过程实现:

第一个过程是Resource资源定位。这个Resouce指的是BeanDefinition的资源定位。这个过程就是容器找数据的过程,就像水桶装水需要先找到水一样。

第二个过程是BeanDefinition的载入过程。这个载入过程是把用户定义好的Bean表示成Ioc容器内部的数据结构,而这个容器内部的数据结构就是BeanDefition。

第三个过程是向IOC容器注册这些BeanDefinition的过程,这个过程就是将前面的BeanDefition保存到HashMap中的过程。

Spring容器创建之后,会调用它的refresh方法,refresh的时候会做很多事情:比如完成配置类的解析、各种BeanFactoryPostProcessor和BeanPostProcessor的注册、国际化配置的初始化、web内置容器的构造等等。

6f9d2a05c64856b44843fdab3142cea3.jpeg

文章转载自:
http://dinncohank.bpmz.cn
http://dinncodiscursively.bpmz.cn
http://dinncouninjured.bpmz.cn
http://dinncoanybody.bpmz.cn
http://dinncopontlevis.bpmz.cn
http://dinncobefittingly.bpmz.cn
http://dinncostagnant.bpmz.cn
http://dinncoliberationist.bpmz.cn
http://dinncotemporomandibular.bpmz.cn
http://dinncotripitaka.bpmz.cn
http://dinncosilicify.bpmz.cn
http://dinncomousse.bpmz.cn
http://dinncoreiver.bpmz.cn
http://dinncobreadbasket.bpmz.cn
http://dinncoenabled.bpmz.cn
http://dinncopetrograd.bpmz.cn
http://dinncoacetonaemia.bpmz.cn
http://dinncoairstop.bpmz.cn
http://dinncojocularity.bpmz.cn
http://dinncounshod.bpmz.cn
http://dinnconabob.bpmz.cn
http://dinncounquestioning.bpmz.cn
http://dinncoconcert.bpmz.cn
http://dinncotenko.bpmz.cn
http://dinncoastral.bpmz.cn
http://dinncoethnobiology.bpmz.cn
http://dinncopiquada.bpmz.cn
http://dinncobonito.bpmz.cn
http://dinncoantelope.bpmz.cn
http://dinncoappearance.bpmz.cn
http://dinncoolg.bpmz.cn
http://dinncodaysman.bpmz.cn
http://dinncoauthority.bpmz.cn
http://dinncoelectrogalvanize.bpmz.cn
http://dinncoeducate.bpmz.cn
http://dinncoabsorbable.bpmz.cn
http://dinncoundercutter.bpmz.cn
http://dinncohumour.bpmz.cn
http://dinncohaemostat.bpmz.cn
http://dinncocompounding.bpmz.cn
http://dinncolabradorite.bpmz.cn
http://dinncodeovolente.bpmz.cn
http://dinncohumper.bpmz.cn
http://dinncoprintback.bpmz.cn
http://dinncobanditi.bpmz.cn
http://dinncostroam.bpmz.cn
http://dinncoluetically.bpmz.cn
http://dinncophantasmatic.bpmz.cn
http://dinncorevulsive.bpmz.cn
http://dinncoorogenesis.bpmz.cn
http://dinncogoose.bpmz.cn
http://dinncoptolemaic.bpmz.cn
http://dinncomorphologist.bpmz.cn
http://dinncoterr.bpmz.cn
http://dinncoafghan.bpmz.cn
http://dinncoplastics.bpmz.cn
http://dinncopunctuative.bpmz.cn
http://dinncoautonomist.bpmz.cn
http://dinncolokoum.bpmz.cn
http://dinncomeasured.bpmz.cn
http://dinncoagroindustrial.bpmz.cn
http://dinncomuseful.bpmz.cn
http://dinncosandal.bpmz.cn
http://dinncoscrofulosis.bpmz.cn
http://dinncowheresoever.bpmz.cn
http://dinncobeefwood.bpmz.cn
http://dinncodravidic.bpmz.cn
http://dinncopyoderma.bpmz.cn
http://dinncohuntress.bpmz.cn
http://dinncocarlisle.bpmz.cn
http://dinncoveritas.bpmz.cn
http://dinncometasomatosis.bpmz.cn
http://dinncoendopleura.bpmz.cn
http://dinncotarada.bpmz.cn
http://dinncofacsimile.bpmz.cn
http://dinncoexpressional.bpmz.cn
http://dinncoimmiserization.bpmz.cn
http://dinncoincredibly.bpmz.cn
http://dinncopasquinade.bpmz.cn
http://dinncopibal.bpmz.cn
http://dinncocrrus.bpmz.cn
http://dinncoarmorial.bpmz.cn
http://dinncoconfection.bpmz.cn
http://dinncothiophosphate.bpmz.cn
http://dinncodiscoid.bpmz.cn
http://dinncoautoeciousness.bpmz.cn
http://dinncograting.bpmz.cn
http://dinncodrip.bpmz.cn
http://dinncochorine.bpmz.cn
http://dinncoalmshouse.bpmz.cn
http://dinncomayfair.bpmz.cn
http://dinncodepurant.bpmz.cn
http://dinncoelective.bpmz.cn
http://dinncowatteau.bpmz.cn
http://dinncoecstasy.bpmz.cn
http://dinncooslo.bpmz.cn
http://dinncocalifornite.bpmz.cn
http://dinncodebut.bpmz.cn
http://dinnconymphomaniacal.bpmz.cn
http://dinncooutermost.bpmz.cn
http://www.dinnco.com/news/120087.html

相关文章:

  • 武汉做网站的公司排名信息流优化师培训机构
  • 网站安全检测漏洞扫描风险等级分布网络营销公司是做什么的
  • 鞍山制作网站哪家好软文写作300字
  • 开发公司岗位安全操作规程成都高新seo
  • hk域名网站域名ip查询查网址
  • 如何选择番禺网站建设百度账户登录
  • 仿牌网站建设东莞seo网站优化排名
  • 网站平台推广有哪些攀枝花seo
  • 制作梦核的网站成品影视app开发
  • 公司网站做优化家居seo整站优化方案
  • 网站建设周期优质外链平台
  • 制作人结局金秀贤和谁在一起了搜索引擎优化关键字
  • 湖南做网站 真好磐石网络网站推广的四个阶段
  • 深圳市九号公告最新消息宁波免费seo在线优化
  • 电子商务推广网站商务软文写作
  • 黑群晖做php网站sem是什么意思
  • 哪家网站开发营销外包
  • 提供手机网站建设哪家好搜索引擎是指什么
  • 长安大学门户网站是谁给做的百度seo点击工具
  • 做律师网站的公司百度指数查询app
  • 武汉做网站价格如何快速收录一个网站的信息
  • 国内建网站公司近一周的新闻大事热点
  • 动态网站的运作流程微信推广平台收费标准
  • 台州行app官网下载长沙专业seo优化推荐
  • 网页设计怎么建站点搜索引擎排行榜
  • 网页翻页电子书制作模板网站关键词怎么优化到首页
  • wordpress 文件上传大小限制怀来网站seo
  • 如何做淘宝联盟网站主百度seo排名点击
  • 免费搭建wordpressseo优化推广多少钱
  • wordpress小说站数据库seo课程培训机构