参考了很多相关博客:
springboot怎么学? - 知乎
如何解读springboot 中约定大于配置、JPA是什么、咋用_打豆豆。的博客-CSDN博客
SpringBoot约定大于配置到底是什么意思?_zhupanlinch的博客-CSDN博客
SpringBoot约定大于配置的特性解读 & SpringBoot快速入门_星河_赵梓宇的博客-CSDN博客
SpringBoot-基于spring的约定优于配置_木子松的猫的博客-CSDN博客
目录
Spring是什么? spring有什么缺点呢 ?
什么是SpringBoot 呢 ?
为什么要有SpringBoot 呢 ?
Spring Boot 有什么优点呢 ?
Spring Boot支持哪些内置的Servlet容器呢 ?
SpringBoot 与 Spring 的区别是什么呢 ?
创建SpringBoot项目
Spring项目创建失败解决办法
什么情况算是创建好一个Spring Boot的项目呢 ?
输出 Hello,Spring Boot
简单看一下Spring的项目目录
相关路径的问题
SpringBoot 的核心设计思想
那么SpringBoot中有哪些约定呢?
Spring是什么? spring有什么缺点呢 ?
Spring是一种重量级企业的开发框架,Spring框架是为了简化企业级Java开发的.再具体来说,Spring,Spring就是包含了众多方法的IOC容器.
虽然Spring的组件代码是轻量级的,但是它需要大量的XML进行配置,Spring注解数量越来越多,被大量使用,尤其是相同的多个注解会被大量重复的用到各个类或者方法中,这就会导致繁琐的配置及大量冗余代码
为了减少配置做了以下工作 :
在 Spring2.5引入了基于注解的组件扫描,消除大量针对应用程序自身组件显示XML配置,Spring3.0引入了基于java的配置,一种类型安全的可重构配置方式,可以替代XML
但是当我们使用Spring的时候,开启它的某些特性的时候,比如事务管理和SpringMVC,还是需要XML或者java进行显示配置,启用第三方库也要显式配置,如Thymeleaf和Web视图.配置Servlet和过滤器同样是需要web.xml和Servlet初始化代码进行显式配置,组件减少了配置量,java配置也减少很多,但是Spring还需要很多配置,
再比如还会有一些相关库的依赖,不同库的版本冲突.....
什么是SpringBoot 呢 ?
对于SpringBoot它是Spring的脚手架,用来简化Spring框架本身的繁琐配置,达到快速的集成和开发.最典型的减少配置,开箱即用.
为什么要有SpringBoot 呢 ?
SpringBoot它是Spring的脚手架,用来简化Spring开发的.最典型的减少配置,开箱即用.
Spring Boot 有什么优点呢 ?
快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序 (不需要向Spring,那样还要在Tomcat容器里面使用,Spring boot自身内置了Tomcat容器,不需要进行配置,可以直接运行和部署)
快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬
可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况
Spring Boot 提供了很多种插件,可以使用内置工具(Maven,Gradle)进行开发和测试Spring Boot应用程序
Spring Boot支持哪些内置的Servlet容器呢 ?
可以将 Spring 引导应用程序部署到任何 Servlet3.1 + 兼容的Web容器中
SpringBoot 与 Spring 的区别是什么呢 ?
spring和spring boot就是同一家公司的两种产品,spring是很早起的框架,有很大的社区,庞大的用户
更具体的来说,Spring就是包含了众多方法的IOC容器.而对于Spring Boot来说,Spring Boot就是Spring的一个脚手架,只是对Spring本身的扩展,用来简化Spring框架本身的繁琐配置,使得开发,测试和部署更加的方便
创建SpringBoot项目
首先先要下载好Spring boot Helper 这个插件,下载后重新新建一个Spring boot的项目
Spring项目创建失败解决办法
出现这种错误就是Maven的jar包没有下载完成.导致失败,所以这个时候,我们应该先要配置好国内源
有可能你会发现一点开这两个设置就会弹出一大堆Maven下载失败,这就是国内源的问题.
首先先要配置好国内源-->也就是settings.xml-->配置好国内的镜像.
<!-- mirrors
| This is a list of mirrors to be used in downloading artifacts from remote repositories.
|
| It works like this: a POM may declare a repository to use in resolving certain artifacts.
| However, this repository may have problems with heavy traffic at times, so people have mirrored
| it to several places.
|
| That repository definition will have a unique id, so we can create a mirror reference for that
| repository, to be used as an alternate download site. The mirror site will be the preferred
| server for that repository.
|-->
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>******</id>
<name>******</name>
<url>******</url>
<mirrorOf>******</mirrorOf>
</mirror>
<!-- 阿里云镜像 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!-- junit镜像地址 -->
<mirror>
<id>junit</id>
<name>junit Address/</name>
<url>http://jcenter.bintray.com/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
有可能你配置我的这个也可能不好使,那就去网上找找,就好了我发现多配置几个就会好使.
然后重新创建出项目-->同时也要保证网络是良好的... 然后进行下载,初次下载可能会很慢,慢慢来就行.
什么情况算是创建好一个Spring Boot的项目呢 ?
当然,我们也可以运行一下,看是否能够成功
输出 Hello,Spring Boot
这可能是我们学习一门新技术的时候,最熟悉的给新技术招手了,发誓一定要学好它哈哈哈....
package com.example.demo; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @RequestMapping("/hello")//加上路由 public String sayHello(){ return "hello, Spring Boot"; } }
简单看一下Spring的项目目录
相关路径的问题
如果不放在同级目录下就会报错-->否则SpringBoot项目就不会将Bean注入到Spring容器中.
SpringBoot 的核心设计思想
如何理解Springboot的核心思想 -- > "约定大于配置" 呢 ?
我们可以用Spring与SpringBoot进行对比,以前我们基于Spring框架实现的Web应用都需要做一些与业务无关的并且只需要做一次的配置 比如 web.xml,管理jar包的依赖,将应用部署到Web容器中......
对于SpringBoot我们不需要在进行这些繁琐的配置,这些SpringBoot已经帮我们实现好了.我们只需要实现我们所实现的业务代码即可..这就是约定大于配置的思想..
使用这种约定大于配置的思想,在进行使用SpringBoot开发的时候,使用框架提供的默认值,但是如果提供的默认值与我们的需求不匹配的情况下,我们就可以进行自己进行配置比如 : properties或者yml来重写框架的默认值来满足我们的需求.
用自己的话来理解 : 就是别人已经帮我们把该做的事情做好了,我们只需要做自己的事情就行了,如果别人以前做的事情不符合我们的需求,我们修改一下或者添加一下自己需要的东西就好了呗,变成自己的就行了(哪有什么岁月静好,只不过是有人为你负重前行)
那么SpringBoot中有哪些约定呢?
- Maven的目录结构。默认有resources文件夹,存放资源配置文件。src-main-resources,src-main-java。默认的编译生成的类都在target文件夹下面
- spring boot默认的配置文件必须是,也只能是application.命名的yml文件或者properties文件,且唯一
- application.yml中默认属性。数据库连接信息必须是以spring: datasource: 为前缀;多环境配置。该属性可以根据运行环境自动读取不同的配置文件;端口号、请求路径等
- Spring Boot会自动内置Tomcat容器来运行 Web 应用,我们不需要再去单独做应用部署。
- Spring Boot 通过扫描约定路径下的 Spring.factories文件来识别配置类,实现 Bean 的自动装配。
- SpringBoot 约定,当你导入 spring-boot-starter-web 后,就约定了你是一个 web 开发环境。就约定了你会使用 SpringMVC。至于其它的也约定你会需要,都给你默认导入进来。当你觉得不合适的时候,可以用更少的改动,满足你的需要。
- 当我们导入spring-boot-starter-web后,就会自动帮我们导入springMVC的相关依赖和一个内置的tomcat容器,以及spring-boot-starter-logging依赖。这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。
- SpringBoot 约定以 starter 的形式减少依赖,于是相继推出了不少常用的 starter。