SpringBoot笔记(一)————第一个SpringBoot项目

文章目录

  • SSM基础
  • 第一个SpringBoot项目(Maven)
    • 使用官网构建(目前Eclipse只能用官网构建)
    • 使用IDEA构建(其实也是内置的官网链接)
    • 解决Maven下载太慢
    • 启动!
    • 写个controller试试
  • 约定大于配置
  • 原理初探

SSM基础

学习SpringBoot之前必须要熟悉Spring,SpingBoot不是一个完全重新写的东西,他是基于Spring来开发的,有很多默认的配置由SpringBoot为我们配置了,并且SpringBoot有自动配置的功能,有很多依赖我们甚至不需要再写版本号了,SpringBoot已经帮助我们默认集成了
SSM的基础在这里
MyBatis笔记(从零到一)
Spring5笔记(配置和零配置)
SpringMVC笔记(从零搭建一个web项目)
SSM整合(搭建一个Web脚手架)

第一个SpringBoot项目(Maven)

Spring为我们提供了一键生成项目骨架的网址

  • Spring Initializr

在此之前,我们主要通过Maven Archetype 来快速生成Maven项目,项目原型相对简陋,对各种IDE的支持也不太友好。然而通过Spring官方提供的Spring Initializr 来构建Maven项目,它不仅完美支持IDEA和Eclipse,而且能自动生成启动类和单元测试代码,给开发人员带来极大的便利。

使用官网构建(目前Eclipse只能用官网构建)

打开 Spring Initializr,我选择了夜间模式所以是黑色的
SpringBoot笔记(一)————第一个SpringBoot项目_第1张图片
下面是添加依赖,点击出弹窗后可以进行搜索
SpringBoot笔记(一)————第一个SpringBoot项目_第2张图片
移除不想要的依赖,也可以在生成之后手动修改pom.xml文件移除
SpringBoot笔记(一)————第一个SpringBoot项目_第3张图片
配置好了之后点击生成项目就会把配置的项目下载下来,在线预览能在线预览项目的整体结构和生成的文件内容,SHARE会生成一个有你配置信息的链接,你可以分享给别人来看你的配置
SpringBoot笔记(一)————第一个SpringBoot项目_第4张图片
在线预览的效果
SpringBoot笔记(一)————第一个SpringBoot项目_第5张图片
下载下来是一个压缩包,解压后然后使用相应的IDE打开就行,IDEA用Import Project打开,一路下一步就完事

使用IDEA构建(其实也是内置的官网链接)

1)创建一个新的项目
SpringBoot笔记(一)————第一个SpringBoot项目_第6张图片
2)选择Spring Initializr
SpringBoot笔记(一)————第一个SpringBoot项目_第7张图片
3)然后出来的接面就跟官网的选项一样了,就不多介绍了,配置好以后下一步
SpringBoot笔记(一)————第一个SpringBoot项目_第8张图片
4)配置依赖
SpringBoot笔记(一)————第一个SpringBoot项目_第9张图片

5)设置项目名称,然后点Finish就算创建完成了
SpringBoot笔记(一)————第一个SpringBoot项目_第10张图片

解决Maven下载太慢

先把Maven的中央仓库配置成国内的
这里有配置 Maven笔记(从配置仓库开始)
然后配置IDEA的maven,我是用自己下载的maven,也可以直接改IDEA内置的maven的配置文件
SpringBoot笔记(一)————第一个SpringBoot项目_第11张图片
然后Apply然后OK就完事
SpringBoot笔记(一)————第一个SpringBoot项目_第12张图片
打开项目后也可这么进去改
SpringBoot笔记(一)————第一个SpringBoot项目_第13张图片

启动!

构建好的项目什么都不用管,直接启动就完事
SpringBoot笔记(一)————第一个SpringBoot项目_第14张图片
直接访问localhost:8080
SpringBoot笔记(一)————第一个SpringBoot项目_第15张图片
成功启动了,而且能正常访问,错误页面是因为我们根本就没有写任何代码和页面,所以才跳转到这个错误页面

写个controller试试

新建一个HelloController
SpringBoot笔记(一)————第一个SpringBoot项目_第16张图片
直接使用注解开发

@RestController
public class HelloController {

    @GetMapping("hello")
    public String hello(){
        return "hello SpringBoot";
    }
}

就这么简单,这个过程中没有写任何配置文件,一个Controller就写好了
这回使用maven的package打包成jar包来运行,双击package打包
SpringBoot笔记(一)————第一个SpringBoot项目_第17张图片
然后使用 java -jar helloworld.jar 来运行
在这里插入图片描述
看到如下结果就是运行成功了
SpringBoot笔记(一)————第一个SpringBoot项目_第18张图片
访问 http://localhost:8080/hello
SpringBoot笔记(一)————第一个SpringBoot项目_第19张图片
成功访问!

约定大于配置

约定大于配置不需要多说了,近些年框架都朝着这个方向走的,不止Spring,还有ASP.NET等
因为有约定,所以我们不需要写配置文件,但是我们需要把controller、dao、service包都建到程序主入口的同级目录下,创建到其他目录是不能自动识别的,这就是约定,我这个项目的主入口是HelloworldApplication.java
SpringBoot笔记(一)————第一个SpringBoot项目_第20张图片
所以我的包创建成这样
SpringBoot笔记(一)————第一个SpringBoot项目_第21张图片
自定义banner
我们可以修改SpringBoot启动时候的这个动画,他们就管这个叫banner,中文翻译是横幅
SpringBoot笔记(一)————第一个SpringBoot项目_第22张图片
那么如何修改呢,还是有个约定,在resources目录下创建一个banner.txt,SpringBoot就会自动帮助我们接管这个文件,其他的名字可不行
SpringBoot笔记(一)————第一个SpringBoot项目_第23张图片
我复制来了一个佛祖,直接粘贴到这个txt文件中,启动项目的时候,控制台就能输出出来了


//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//            佛祖保佑       永不宕机     永无BUG                    //

SpringBoot笔记(一)————第一个SpringBoot项目_第24张图片
这算是个彩蛋吧,也是约定的一种体现,我是在这个地址找的
https://www.bootschool.net/ascii
或者百度SpringBoot banner就有很多网址

原理初探

这个文件很重要 spring.factories ,这个文件里记录了所有SpringBoot的自动配置类,SpringBoot启动的时候会加载这个文件中的所有配置类,但是不一定生效,需要判断条件是否成立,只要导入了对应的starter,就有对应的启动器了,有了启动器,我们自动装配就会生效,然后就会配置成功
SpringBoot笔记(一)————第一个SpringBoot项目_第25张图片
1.SpringBoot在启动的时候,从类路径 /META-INF/spring.factories 下获取指定的值
2.将这些自动配置的类导入容器,自动配置就会生效,帮助我们进行自动配置
3.以前需要我们手动配置的东西,现在SpringBoot帮助我们做了
4.整个JavaEE,解决方案和自动配置的东西都在spring-boot-autoconfigure-2.2.6.RELEASE.jar这个包下
5.他会把所有需要导入的组件,以类名的方式返回,这些组件就会被添加到容器
6.容器中也会存在非常多的xxxAutoConfiguration的文件,就是这些类给容器中导入了这个场景需要的所有组件,并自动配置,@Configuration
7.有了自动配置类,免去了我们手动编写配置文件的工作

你可能感兴趣的:(SpringBoot,学习笔记,spring,boot,java,intellij,idea)