SpringBoot介绍

引言

  • 为了使用ssm框架去开发,准备ssm框架的模板配置
  • 为了Spring整合第三方框架,单独的去编写xml文件
  • 导致ssm项目后期xml文件特别多,维护xml文件的成本也是很高的
  • ssm工程部署也是很麻烦,依赖第三方容器
  • ssm开发方式是笨重的

SpringBoot介绍

SpringBoot是由pivota团队开发的,SpringBoot并不是一门新技术,只是将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发

SpringBoot就是一个工具集

SpringBoot特点:

  1. SpringBoot不需要模块化配置
  2. 在SpringBoot中整合第三方框架时,只需要导入相应的stater依赖包,就自动整合了
  3. SpringBoot默认只有一个.properties的配置文件,不推荐使用xml,后期会采用.java文件去编写信息
  4. SpringBoot工程在部署时,采用的是jar包的方式,内部自动依赖Tomcat容器,提供了多环境的配置
  5. 后期要学习的微服务框架SpringCloud需要建立在SpringBoot的基础上

SpringBoot快速入门

快速构建SpringBoot

文件新建一个项目选择 spring initializr创建一个spring项目



点击下一步,选择需要导入的依赖,我什么都没选,因为我只是写个小Demo



第一次创建SpringBoot工程,下载大量的依赖,要保证maven已经配置了阿里云的私服:

阿里云私服配置:

cmd中输入mvn -v会显示maven的安装路径

到其安装路径下找到conf文件夹进去找到settings.xml,用文本编辑器打开找到mirrors标签添加如下标签

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

然后点击finish等待下载完成下载完成后会在,External Labraries中看到默认导入的所有依赖



在xml文件中把spring-boot-starter依赖改为,因为我要创建的是一个web的Demo

        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

直接点击src直到找到java目录然后点到你的Application所在的包在这个包中新建一个Controller在Controller包下创建一个java文件,写入一下内容

@RestController
@RequestMapping
public class TestController {
@GetMapping("/test")
public String test(){
return "Hello SpringBoot";
}
}
  • 打开默认创建的Application文件直接点击运行!
  • 如果看到控制台打印如下内容则表示成功

  • 倒数第二行可以看出,访问端口为8080,访问路径为''空在浏览器地址输入

    127.0.0.1:8080/test或者localhost:8080/test
  • 端口号后面为你GetMapping设置的访问路径

SpringBoot的目录结构

pom.xml文件

  1. 指定了一个父工程: 指定当前工程为SpringBoot,,帮助我们生命了starter依赖版本

  2. 指定项目的元数据: 包名,项目名,版本号

  3. 指定properties信息: 指定java版本为1.8

  4. 导入依赖: 默认情况导入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
  1. 插件: 默认只有SpringBootMaven插件
 <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

.gitignore文件,默认帮我们忽略了一些文件和目录,防止多余文件推送到git中

src目录,(带-的都是目录)

-mvc
-main
-java
-包名
启动类.java #需要将controller类,放在启动类的子包中或者同级包下
-resources
-static #存放静态资源的
-templates #存放模板页面的,static和templates文件夹不是自动创建的
application.properties #SpringBoot提供的唯一配置文件
-test

SpringBoot三种启动方式

运行启动类main方法即可运行SpringBoot工程

采用maven的命令运行SpringBoot工程

  1. 首先吧之前的项目关闭
  2. 打开terminal,输入mvn -v检查是否安装了maven环境
  3. 然后在当前项目路径下输入 mvn spring-boot:run

  4. 运行成功

使用打包方式

右侧点击maven,选择package进行打包



打完的包会在target下



通过java -jar jar文件

SpringBoot常用注解

@Configuration和@Bean

@Bean就是在SSM中开发时xml文件中的bean,但是SpringBoot中不推荐使用yml文件,

@Configuration注解相当于beans标签

@Bean注解相当于bean标签

@SpringBootApplication就是一个组合注解



而主要注解为这三个

  1. @SpringBootConfiguration就是@Configurationzhuje,代表启动类就是一个配置类
  2. @EnableAutoConfiguration帮你实现自动装配,SpringBiit工程启动时,运行一个SpringFactoriesLoader的类,加载META-INF/Spring.factories配置类,通过SpringFactoriesLoader中的load方法,以for循环的方式,一个一个加载

    好处: 无需大量整合配合配置信息,只需要按照SpringBoot提供好了约定整合即可

    坏处: 如果你导入了一个starter依赖那么你就需要填写他必要的配置信息

    手动关闭自动装配指定内容: SpringBootApplication(exculd=QuartzAutoConfiguration.class)
  3. @ComponentScan就相当于扫描包,默认只会扫描当前启动类所在的子包或同包,可以手动添加其他需要被扫描的包

SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解的更多相关文章

  1. SpringBoot_MyBatisPlus快速入门小例子

    快速入门 创建一个表 我这里随便创建了一个air空气表 idea连接Mysql数据库 点击右侧database再点击添加数据库 找到Mysql 添加用户名,密码,数据库最后点击测试 测试成功后在右侧就 ...

  2. SpringBoot开发快速入门

    SpringBoot开发快速入门 目录 一.Spring Boot 入门 1.Spring Boot 简介 2.微服务 3.环境准备 1.maven设置: 2.IDEA设置 4.Spring Boot ...

  3. Selenium WebDriver + Grid2 + RSpec之旅(三) ----入门小例子

    Selenium WebDriver + Grid2 + RSpec之旅(三) ----入门小例子 第一个例子都是比较简单的博客园登录界面,就像学习编程语言时候都是从Hello,World!开始. 1 ...

  4. Qt快速入门系列教程目录

    Qt快速入门系列教程目录

  5. 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)

    [原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...

  6. JavaWeb入门——Tomcat的目录结构

    JavaWeb入门——Tomcat的目录结构 摘要:本文主要了解了Tomcat的目录结构. 目录结构 打开Tomcat的目录,可以看到如下文件和文件夹: bin目录 该目录下存放的是二进制可执行文件. ...

  7. 【SpringBoot】快速入门

    博客主页:准Java全栈开发工程师 00年出生,即将进入职场闯荡,目标赚钱,可能会有人觉得我格局小.觉得俗,但不得不承认这个世界已经不再是以一条线来分割的平面,而是围绕财富旋转的球面,成为有钱人不是为 ...

  8. struts2框架快速入门小案例

    struts2快速入门: index.jsp------>HelloAction--------->hello.jsp struts2流程 1.导入jar包 struts2的目录结构: a ...

  9. 基于vue-cli、elementUI的Vue超简单入门小例子

    - 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. - 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vu ...

随机推荐

  1. scrapy 源码解析 (二):启动流程源码分析(二) CrawlerProcess主进程

    CrawlerProcess主进程 它控制了twisted的reactor,也就是整个事件循环.它负责配置reactor并启动事件循环,最后在所有爬取结束后停止reactor.另外还控制了一些信号操作 ...

  2. 三、Python系列——Pandas数据库读取数据

    Pandas主要先读取表格类型的数据,然后进行分析. import pandas as pd# 由于是用pandas模块操作数据,因此不用在路径前加open,否则就是python直接打开文件,可能还会 ...

  3. 软件测试工程师应该怎样规划自己?成为年薪30W+测试工程师(乾坤未定,皆是黑马)

    今天在知乎上被邀了一个问题,软件测试工程师应该怎样规划自己?16年毕业,技术方面已经渣到不行,因为之前的公司没有Python自动化测试这个要求,有些迷茫.我把我的问题回答贴出来希望可以帮助到更多有类型 ...

  4. Mnist手写数字识别 Tensorflow

    Mnist手写数字识别 Tensorflow 任务目标 了解mnist数据集 搭建和测试模型 编辑环境 操作系统:Win10 python版本:3.6 集成开发环境:pycharm tensorflo ...

  5. Netty 学习笔记(3) ------ ChannelPipeline 和 ChannelHandler

    ChannelPipeline通过责任链设计模式组织逻辑代码(ChannelHandler),ChannelHander就如同Servlet的Filter一样一层层处理Channel的读写数据. Ch ...

  6. JVM系列之:String.intern和stringTable

    目录 简介 intern简介 intern和字符串字面量常量 分析intern返回的String对象 分析实际的问题 G1中的去重功能 总结 简介 StringTable是什么?它和String.in ...

  7. MySQL 8.0.20 安装教程图文详解(windows 64位)

    MySQL 8.0.20 安装教程图文详解(windows 64位)  更新时间:2020年05月09日 15:09:04   转载 作者:瘦肉粥不加糖     这篇文章主要介绍了MySQL 8.0. ...

  8. ken桑带你读源码 之scrapy scrapy\core\scheduler.py

    从英文来看是调度程序  我们看看是怎么调度 首先爬虫队列有两个 一个是保存在内存中  没有历史记录   重新开始  42行  self.mqs = self.pqclass(self._newmq) ...

  9. jmeter之断言复制过来的内容也会失败

    今天遇到个很纳闷的事儿,就决定记下来,在做jmeter断言的时候,明明我是从相应文本中拷贝出来的内容,但是依旧会断言失败,差了很多资料无果,最终请教了大佬才发现是特殊字符的问题 jmeter断言中不会 ...

  10. manual for emacs markdown-mode(English)

    markdown-mode now requires Emacs 24.3 or later. Markup insertion and replacement keybindings under C ...