以下内容基于spring,maven

为啥要用(学习)springboot?

学习springboot之前你必须先对spring有足够的了解,并且对它要有一定的体会,因为只有对spring的体会越深刻,你的springboot才会学得越爽,越有干劲儿。springboot就是是用来简化Spring应用开发的一个框架。

spring为啥还要简化呢?(spring的优缺点)

spring的优点

Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能(大大的减少了代码量)。

spring的缺点(面向“配置”的开发)

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。

所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。

除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。

简而言之就是spring的配置繁琐,开发时程序员不能全身心地投入到程序逻辑的问题上。且导的库也多且繁琐(库间还有依赖,搞错了还不好找bug

那springboot是怎么解决的呢?(springboot的特点)

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

那springboot还有些什么功能呢?(SpringBoot的核心功能)

起步依赖(解决导包问题)

起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依
赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

自动配置(非常智能)

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定
Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

后续会对这两个功能做详细剖析

java大乘期(33)----java进阶(springboot基础(1)----springboot基本概念)相关推荐

  1. SpringBoot基础知识

    SpringBoot基础知识 SpringBoot课程笔记 前言 ​ 很荣幸有机会能以这样的形式和互联网上的各位小伙伴一起学习交流技术课程,这次给大家带来的是Spring家族中比较重要的一门技术课程- ...

  2. 新手教程系列——SpringBoot基础

    SpringBoot基础 目录 SpringBoot基础 1. 初始化项目 2. 项目目录结构 3. 配置文件 4. 编写项目代码 5. `@Value`的使用 1. 初始化项目 方法1:从Sprin ...

  3. 【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  4. 【Java笔记+踩坑】SpringBoot——基础

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  5. Java一个月学到springboot_Java基础学习路线之SpringBoot入门

    对于Java开发人员来说Spring和其它框架(Hibernate.MyBatis.SpringMVC...)的整合是比较麻烦的事情,需要涉及到大量的配置文件和第三方库的导入. Spring的Pivo ...

  6. 五万字15张导图Java自学路线,小白零基础入门,程序员进阶,收藏这篇就够了

    本文收录于<技术专家修炼> 文中配套资料合集 路线导图高清源文件 点击跳转到文末点击底部卡片回复「资料」领取 哈喽,大家好,我是一条~ 最近粉丝问我有没有Java自学路线,有了方向才能按图 ...

  7. Java反射机制的基本概念与使用_Java进阶之reflection(反射机制)——反射概念与基础...

    反射机制是Java动态性之一,而说到动态性首先得了解动态语言.那么何为动态语言? 一.动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化.比如常见 ...

  8. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...

    本文已经收录自 https://github.com/Snailclimb/JavaGuide  (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...

  9. java面试题——java基础(四),java初级面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

最新文章

  1. String s=hello;s+=world;s变化了吗?原始的String对象的内容变了吗?
  2. 任正非签发最新电邮:管理者的18种堕怠行为
  3. java打字游戏代码_牛逼啊!一个随时随地写Python代码的神器
  4. HIT Software Construction Lab6引发出来对锁的问题的探究
  5. [恢]hdu 2186
  6. Android应用程序窗口(Activity)与WindowManagerService服务的连接过程分析
  7. python 正则表达式 re.sub_Python 正则表达式 re.match/re.search/re.sub的使用解析
  8. 2寸照片尺寸大小是多少,两寸照片多大?
  9. 【小程序开发之微信登录】
  10. LOJ 3090 「BJOI2019」勘破神机——斯特林数+递推式求通项+扩域
  11. 06-课堂笔记-包相关
  12. Android 自带工具生成图标
  13. Hibiscus的脑机接口学习周报(2023/1/16~2023/1/22)
  14. 在运行局域网中另一台电脑上的程序时,总是弹出“无法验证发行者,确定要运行此软件吗”
  15. 百度地图 行政区域 高亮
  16. C++ Primer Plus读书笔记第二章
  17. 渗透测试国内外研究_浅析晶硅光伏背板阻隔性能测试(一)——水蒸气透过率测试...
  18. java计算机毕业设计高校选课系统源码+mysql数据库+系统+lw文档+部署
  19. PortTunnel(转)
  20. 【 老站的收录问题的解决】(笔记)

热门文章

  1. C语言 输入一个正整数n,再输入n个字符,如果是小写字符就将其转换为大写字符,如果是大写字符就 转换为小写字符
  2. php5(isapi).mysql5.zendforiis.rar_WIN2003系统IIS下PHP5+MySQL5+ZendOptimizer配置图解教程第1/3页...
  3. ad 原理图差分线_采用差分PulSAR ADC AD7982转换单端信号电路图
  4. python html模块调用_Python html 模块简介
  5. 云计算数据中心建设热潮的两个图表
  6. 虚拟机备份oracle异常,客户端连接虚拟机Oracle服务器异常
  7. 成功解决利用pandas的read_csv函数读取csv文件的时候出现中文乱码问题
  8. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding
  9. ML之回归预测:利用多个算法模型(LassoR、KernelRidgeR、ElasticNetR、GBR、LGBMR、XGBR)对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测
  10. 成功解决ValueError: Cannot feed value of shape (1, 10, 4) for Tensor Placeholder:0 , which has shape