阿里云创建网站织梦iis7搭建网站
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:01
当前位置: 首页 > news >正文
阿里云创建网站,织梦iis7搭建网站,定西seo霸屏推广,搭建php网站环境文章目录 1.Spring2.SpringBoot3.小结 1.摘要 本文旨在带大家理解Spring框架和SpringBoot框架最为核心的部分#xff0c;自Spring和SpringBoot问世以来#xff0c;给Web开发掀起了巨大的浪潮#xff0c;极大的缩短项目开发周期#xff0c;下面将带大家分析Spring和SpringBo… 文章目录 1.Spring2.SpringBoot3.小结 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最为核心的部分随着技术日新月异迭代升级技术会越来越多样但是核心思想、核心原理是几近相同或者是说短期时间内不会有太大变化正如数学之美作者吴军所言一味地研究技术一生注定忙碌研究技术背后的核心原理(他口中的道)才能掌握技术的精髓。以便不至于在茫茫大海中迷失方向立于不败之地【作者本人吹牛】。本文就分享至此如有问题请于评论区交流指正。
- 上一篇: 阿里云创建网站为网站做seo需要什么软件
- 下一篇: 阿里云创建网站做任务反佣金的网站
相关文章
-
阿里云创建网站为网站做seo需要什么软件
阿里云创建网站为网站做seo需要什么软件
- 技术栈
- 2026年03月21日
-
阿里云备案成功怎么建设网站获客引流100种方法
阿里云备案成功怎么建设网站获客引流100种方法
- 技术栈
- 2026年03月21日
-
阿里云oss建站 直接上传wordpress深圳做企业网站
阿里云oss建站 直接上传wordpress深圳做企业网站
- 技术栈
- 2026年03月21日
-
阿里云创建网站做任务反佣金的网站
阿里云创建网站做任务反佣金的网站
- 技术栈
- 2026年03月21日
-
阿里云搭建网站广告搜索引擎
阿里云搭建网站广告搜索引擎
- 技术栈
- 2026年03月21日
-
阿里云服务器 多个网站wordpress 文章位置
阿里云服务器 多个网站wordpress 文章位置
- 技术栈
- 2026年03月21日






