浅谈之Spring优缺点、SpringBoot概述(优点核心功能)、起步依赖和自动配置的原理剖析

原有Spring优缺点

Spring的优点分析:

  • 1、非侵入式设计
    Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化。

  • 2、方便解耦、简化开发
    Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器的管理,大大的降低了组件之间的耦合性。

  • 3、支持AOP
    Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事物、日志等进行集中式处理,从而提高了程序的复用性。

  • 4、支持声明式事务处理
    只需要通过配置就可以完成对事物的管理,而无须手动编程。

  • 5、方便程序的测试
    Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序。

  • 6、方便集成各种优秀框架
    Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如Struts、Hibernate、MyBatis、Quartz等)的直接支持。

  • 7、降低Jave EE API的使用难度。
    Spring对Java EE开发中非常难用的一些API(如JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。

Spring的缺点分析:

  • 配置过于繁琐
  • 所有配置都代表了开发时的损耗
    因为在思考Spring特性配置和解决业务问题之间需要切换思维,所以编写配置挤占了编写应用程序逻辑的时间。
  • 项目的依赖管理也很繁琐
    项目搭建时,需要分析要导入哪儿些库的坐标,还需要分析导入与之有依赖关系的其他库的坐标,一旦选错依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度

SpringBoot的概述

SpringBoot解决上述Spring的缺点:

  • SpringBoot对上诉的Spring缺点进行改善和优化,基于约定优于配置的思想,可以让开发人员不必再配置与逻辑业务之间进行思维的切换,全身心投入到逻辑业务中,提高开发效率。

SpringBoot的特点:

  • 为基于Spring的开发提供更快的入门体验。
  • 开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值莱曼住特定的要求。
  • 提供了一些大型项目中常见的非功能性特征,如嵌入式服务器、安全、指标、健康检测、外部配置等。
  • SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。

SpringBoot的核心功能
在这里插入图片描述

SpringBoot原理分析之起步依赖

spring-boot-starter-parent底层继承于spring-boot-dependencies

  • spring-boot-starter-parent
    在这里插入图片描述
  • spring-boot-dependencies
    版本约定与依赖:相当于maven的版本库

spring-boot-starter-web
底层引入了 spring-web 、spring-webmvc的坐标及版本控制
在这里插入图片描述

SpringBoot原理分析之自动配置

@SpringBootApplication
底层有很多注解:具体可以具备三个注解的功能
在这里插入图片描述

  • 1、@SpringBootConfiguration相当于@Configuration注解
  • 2、@ComponentScan:自动扫描注解
  • 3、@EnableAutoConfiguration:是否可以自动配置的开关,其中默认配置了很多配置
    例如:默认配置Tomcat端口号:8080
    在这里插入图片描述
    修改SpringBoot的默认配置,新建配置文件:application.properties
# 服务器的端口号
server.port=8081
#配置web应用的名称
server.servlet.context-path=/demo

此时就覆盖了默认配置的端口号和web应用的名称。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一课:面向抽象编程 4 第二课:Jdom的基本使用 4 第三课:模拟Spring功能 5 第四课:搭建sping的运行环境 8 一、 建立一个新的项目 8 二、 建立spring配置文件 8 三、 引入spring的jar包 8 四、 测试代码: 8 五、 注意接口的使用: 8 第五课:IOC(DI)配置及应用 9 一、 什么是IOC、DI 9 二、 编辑xml文件时,没有提示 9 三、 注入类型(Injecting dependencies) 9 (一) setter注入类型Setter Injection 9 (二) 构造方法Constructor Injection 10 四、 id、name 11 五、 简单属性的注入 11 六、 Bean的作用范围scope 12 七、 集合注入 12 八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource 17 四、 @Componet 18 五、 @Scope、@PostConstruct、@PreDestroy 19 六、 注解对应的jar包 19 第七课:AOP(面向切面编程) 19 一、 AOP概念 19 二、 利用动态代理实现面向切面编程 20 第八课:Spring AOP配置选项 21 一、 AOP配置annotation方式 21 (一) 搭建annotation开发环境 21 (二) aspectJ类库 22 (三) AOP的annotation实例 22 (四) AspectJ的专业术语 23 (五) 织入点语法 23 (六) Advice 24 (七) Pointcut 26 (八) annotatin方式的AOP实例 26 二、 AOP配置xml方式 27 三、 AOP实现动态代理注意 28 第九课:DataSource 28 一、 Sping配置数据源: 28 二、 注入使用 29 三、 dbcp.BasicDataSource 29 第十课 Spring整合Hiberante3 30 一、 Spring配置hibernate3的SessionFactory 30 (一) xml形式的SessionFactory 30 (二) annotation注解方式的SessionFactory 30 二、 引入hibernate所需要使用的jar 31 (一) 基本jar 31 (二) 加入annotation功能的jar包 31 (三) 搭建日志环境并配置显示DDL语句jar包 31 三、 Spring整合hibernate3事务 31 (一) Annotation注解方式配置事务管理 31 (二) Spring事务选项 35 (三) XML文件形式配置Spring事务管理 37 四、 HibernateTemplate 38 (一) HibernateTemplate 38 (二) HibernateDaoSupport 39 第十一课:Spring整合-SSH 40 一、 第一步:加入jar包(需要的jar包列表) 40 二、 第二步: 首先整合Spring + Hibernate 41 三、 第三步:再来整合Struts2 41 四、 struts的读常量: 43 第十二课:DTO、VO 43 一、 DTO 43 二、 VO 43 第十二课:SSH整合存在的问题 43 一、 Jsp中访问Session时,Session已经关闭 43 二、 如果不配置事务,openSessionView出现异常 44 三、 中文乱码问题: 44 第十三课:SSH整合的jar包 45 一、 Struts2 45 二、 Hibernate3.3.2 45 三、 Spring 46

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值