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

哪家网站建设公司专业百度热搜榜小说排名

哪家网站建设公司专业,百度热搜榜小说排名,网站设计标语,平顶山做网站公司文章目录 1.Spring2.SpringBoot3.小结 1.摘要 本文旨在带大家理解Spring框架和SpringBoot框架最为核心的部分,自Spring和SpringBoot问世以来,给Web开发掀起了巨大的浪潮,极大的缩短项目开发周期,下面将带大家分析Spring和SpringBo…

文章目录

    • 1.Spring
    • 2.SpringBoot
    • 3.小结

1.摘要
本文旨在带大家理解Spring框架和SpringBoot框架最为核心的部分,自Spring和SpringBoot问世以来,给Web开发掀起了巨大的浪潮,极大的缩短项目开发周期,下面将带大家分析Spring和SpringBoot给JavaWeb开发带来那些便利,剖析其核心思想及其中运用到哪些核心技术原理。

1.Spring

1.Spring最早是为了解决企业中J2EE开发复杂性所产生的轻量级开源框架。
它到底解决了什么主要问题呢?
来先看到高频面试题:为什么使用Spring框架进行项目开发
这个问题乍看无法回答,现在项目不都是maven直接拉取spring jar包依赖,咔咔咔一顿操作直接上手启动运行程序,写代码开发测试吗?怎么还有人问这种问题,哎有的面试官就爱问. 是不是有点麻了。。。 想要回答这个问题还是从Spring诞生的起源来答复这个问题。

Spring最早为了解决企业J2EE开发各种对象创建、相互依赖关系复杂性而诞生的一门开源性框架。 因此这个答案就是:为了避免JAVA Bean对象之间的强耦合以及频繁构建对象所带来的内存开销、以及解决对象之间复杂的依赖关系,项目中边引入了Spring框架进行开发。当然Spring AOP 还能降低系统核心业务与其他业务逻辑之间的耦合,提升项目系统的可扩展性和可维护性。

Spring 最核心的两个功能 IOC 和 AOP
IOC: 控制反转,将Java中对象之间的相互引用交由Spring容器进行控制,使用DI 依赖注入实现Bean的自动注入。比如A类 对象想要使用B对象的某个功能,传统代码开发,直接把B对象new一次在赋值给A的一个成员变量,这使得A 类和B类对象之间构成强耦合,不利于项目扩展和维护,使用Spring后,A类对象如果要使用B类对象只需要将B类的JAVA Bean注入进来就可以使用了。降低对象之间的耦合度。
AOP:面向切面编程,这个最强大的地方就是可以让开发者能够专注于开发核心业务,无需花费大量精力书写与业务逻辑无关且必需的功能代码,比如日志处理、事务管理等。
AOP的实现方式:
动态代理: 分为 JDK动态代理 和CGLIB

实现代理所用技术反射
JDK代理对象的类必须实现一个接口,CGLIB没有这个要求,SpringBoot2.X以上默认就使用CGLIB代理,当然当你手动使用注解@Autowired 注入接口对象时,系统会自动走JDK代理实现Spring AOP默认使用JDK代理。其中被代理对象不能超过65535个接口。
结合Spring6.1.3-aop.jar 源码进行简要分析,作者已经补充了中文注释,便于大家阅读。其中

	// Spring6.1.3-aop.jar 包实现动态代理具体代码。public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException {// 如果不开启优化和使用代理类、存在代理接口 则直接使用JDK动态代理。其中默认是不开启优化和没有使用代理类的,因此凡是提供了接口的类代理默认都是走JDK动态代理。if (!config.isOptimize() && !config.isProxyTargetClass() && !this.hasNoUserSuppliedProxyInterfaces(config)) {return new JdkDynamicAopProxy(config);} else {// 获取代理目标类Class<?> targetClass = config.getTargetClass();// 如果代理类为空, 直接抛出异常。if (targetClass == null) {throw new AopConfigException("TargetSource cannot determine target class: Either an interface or a target is required for proxy creation.");} else {// 如果代理类不是接口类型且代理类存在、代理类不是通过Lambda方式实现的内部类,则直接使用CGLIB代理, 否则使用JDK动态代理。return (AopProxy)(!targetClass.isInterface() && !Proxy.isProxyClass(targetClass) && !ClassUtils.isLambdaClass(targetClass) ? new ObjenesisCglibAopProxy(config) : new JdkDynamicAopProxy(config));}}}private boolean hasNoUserSuppliedProxyInterfaces(AdvisedSupport config) {Class<?>[] ifcs = config.getProxiedInterfaces();return ifcs.length == 0 || ifcs.length == 1 && SpringProxy.class.isAssignableFrom(ifcs[0]);}

看看外国大佬书写Java代码方法名称命名就是规范,可读性太强了。

2.SpringBoot

1.SpringBoot是为了便于快速构建项目而诞生的一个新框架,其中最为核心的两个要素就是:自动配置起步依赖
什么是自动配置?

说白了,之前使用Spring、SpringMVC等框架进行开发过程中,需要手动配置各种各样的JavaBean对象,要么是通过注解实现,要么是XML实现,要么就是两者混合实现。SpringBoot为了简化频繁手动配置这个问题,就构建出了一个自动配置功能,极大简化开发人员的配置时间,提升项目开发效率。

自动配置的原理:通过6张图带大家领略自动配置具体实现。首先是项目启动配置@SpringBootApplication注解,这个注解内置了@EnableAutoConfiguration【图一】

在这里插入图片描述
在这里插入图片描述
这个Import注解会执行selectImports方法。
在这里插入图片描述
代码执行到红色划线部分
在这里插入图片描述
代码执行到红色划线部分
在这里插入图片描述

代码执行到红色划线部分**这里就是自动配置文件读取的源头了,读取后缀 为 imports的文件**
在这里插入图片描述
朋友们,就这个org.springframework.boot.autoconfigure.AutoConfiguration.imports文件。这里补充下,SpringBoot2.5以下 采用spring.factories作为自动配置文件入口。 2.5-2.7两者混用。 2.7版本后全部使用后缀为 .imports文件作为配置文件
在这里插入图片描述
这里面几个作者配置MybatisPlus 的自动配置类。

什么是起步依赖?

简单说就是一个starter可以直接启动执行的jar包,通常命名为xxx-xxx-starter。使用者可以不用关注具体包依赖的细节,直接通过依赖一个starter依赖,完成某一个模块/功能的完整依赖导入。有效避免了手动导入依赖发生依赖之间版本冲突。starter依赖包会自动将包所使用到所有依赖包一起打包加载进来。

3.小结

本文简单扼要剖析Spring和SpringBoot最为核心的部分,随着技术日新月异,迭代升级,技术会越来越多样,但是核心思想、核心原理是几近相同或者是说短期时间内不会有太大变化,正如数学之美作者吴军所言,一味地研究技术,一生注定忙碌,研究技术背后的核心原理(他口中的道),才能掌握技术的精髓。以便不至于在茫茫大海中迷失方向,立于不败之地【作者本人吹牛】。本文就分享至此,如有问题,请于评论区交流指正。

http://www.hengruixuexiao.com/news/43998.html

相关文章:

  • 微信h5爆点游戏源码在线优化seo
  • 品牌注册怎么办理seo公司网站
  • 打开百度网站建设baidu优化
  • 石家庄网站建站免费推广软件平台
  • 关键词搜索推广什么叫优化关键词
  • 做夺宝网站要办理什么百度热搜seo
  • 福州婚庆网站建设哪家好百度竞价排名费用
  • web项目模板seo优化培训
  • 大气的化妆品网站名崇左网站建设
  • 网站开发税率多少钱免费网站自助建站系统
  • 太原跨境电商陕西seo排名
  • 中国新冠疫情最新情况惠州seo推广优化
  • 网站程序结构国际新闻
  • 做查询网站有哪些全国人大常委会
  • 官网网站设计seo是哪个国家
  • 万维网网站注册怎么推广淘宝店铺
  • 专门做生鲜的网站今天的国内新闻
  • 网站后台看不到部分内容想在百度上推广怎么做
  • 做网站帮外国人淘宝潍坊网站定制模板建站
  • 做百度网站需要什么条件网上怎么推销自己的产品
  • 网站设置怎么调可以搜索任何网站的浏览器
  • 济南网站建设网站推广的要点
  • wordpress中动态设置轮播图片国外seo
  • 在国外网站做中国旅游推广手机优化大师官网
  • 怎样做网站的二维码网络推广员工资多少钱
  • 网站名字备案百度明星人气榜排名
  • 个人站长做哪些网站好黄页推广2021
  • 官网建设需求淄博seo网络公司
  • 做网站导航菜单优质外链平台
  • 海通建设集团有限公司网站刷网站排名软件