spring boot框架抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程。使用spring boot之后就不用像以前使用ssm的时候添加那么多配置文件了,spring boot除了支持ssm之外,还支持非常多的第三方技术。spring boot就像是一个百宝箱,你要用那些技术,直接告诉他就行了。在spring boot中写的代码跟以前一样,所以在学习的时候非常容易上手。下面开始介绍spring boot核心内容以及目录结构:

  如何使用IDEA创建spring boot项目?

  1、新建完一个Empty Project之后创建一个模块

  

  2、选择Spring Initializr然后选择本地的JDK,之后Next进入下一步

  3、设置group和artifact,这里选择jar包,spring boot有内置的tomcat所以不需要打成war包,在Maven项目中一般选择打war包(根据项目需求选择)。

   

  4、选择web勾选Spring Web Starter和Spring Web Service,创建完项目之后spring boot会在pom.xml中自动添加勾选的相关依赖。然后点击Finish之后一个基础的spring boot项目就创建完毕了。

  

  5、在第三步创建的包下再创建一个controller包,在controller包下创建FirstController类,代码如下:

 import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class FirstController {
@RequestMapping("/boot/first")
@ResponseBody
public String first(){
return "first";
}
}

  6、写完controller代码之后进入Application类包,启动SpringApplication.run

  

  7、启动主函数检查未报错之后,spring boot的第一个项目就已经写完;之后运行Application类,这样Spring Boot会启动内嵌的tomcat,之后我们从浏览器中访问该Controller即可:localhost:8080/boot/first

  spring boot相关类和文件分析

  Application类

  • @SpringBootApplication注解是springboot的核心注解,主要作用是开启spring自动配置。使用这个注解相当于加上了下面三个注解:

    • @Configuration 允许将其他@bean注解标识的类加入到spring容器中,相当于spring配置文件中的beans标签
    • @EnableAutoConfiguration 启动自动配置
    • @ComponentScan 会自动扫描当前包和子包下的标有@Component,@Service,@Repository,@Controller的类。相当于以前spring配置文件中的context:component-scan标签  
  • main方法中的SpringApplication.run在启动的时候会启动springboot程序,启动spring容器,启动内嵌的tomcat容器。
  • 不要创建一个比Application类包级别高的类,需要创建子包,因为spring boot会自动扫描application类的子包或者是平级的类,如果是高与application的话就无法扫描了。例如FirstApplication类包位于com.monkey.first包下,Test类和controller包下的所有类Application类包都可以扫描到,但是 Test1这个类比Application类高一级所以就无法扫描到Test1。

  resources目录及各种文件

  • application.properties 是spring boot配置文件
  • static存放静态资源
  • templates spring boot动态的数据不建议使用jsp(spring boot可以通过修改配置文件之后使用jsp),而是使用thymeleaf模板语言,跟velocity和freemarker类似,是一个模板引擎。是独立于spring boot的,并不是spring boot的一部分。

    .gitignore

    git忽略提交规则

    mvnw

    是linux的脚本文件,mvnw 是maven wrapper,maven中的插件具有滞后性,即有的插件只针对某个版本有效,这里在用的时候,可能会安装多个版本的maven,为了解决这个问题,maven wrapper会自动的切换。

    mvnw.cmd

    是windows的脚本文件,作用同上

    pom.xml文件解析

    依赖没有版本号,是从父工程中选择继承的(应该是父工程的父工程,爷爷辈)。这个依赖叫做起步依赖,这些第三方的依赖是写在了dependencymanagement中,所以我们的项目如果要使用的话,还需要些依赖,只不过版本号是可以省略的。如果不想使用spring boot的默认版本的话,自己手动添加版本号即可。

  spring boot应用总结:spring boot就相当于一个平台,把我们需要一些东西准备好了,我们在这个平台里面填充业务代码即可,即代码跟以前代码区别不大。

  1、能够快速创建基于Spring的应用程序;

  2、能够直接使用java main方法启动内嵌的Tomcat服务器运行Spring boot程序,不需要部署war包文件;

  3、提供约定的starter POM来简化Maven配置,让Maven的配置变得简单;

  4、根据项目的Maven依赖配置,Spring boot自动配置Spring、Spring mvc等;

  5、提供了程序的健康检查等功能;

  6、基本可以完全不使用XML配置文件,采用注解配置。

  补充:spring boot热部署

  热部署是指当我们修改代码后,服务能自动加载新修改的内容,这样大大提高了我们开发的效率,否则每次都要手动重启,这样就比较耗时。Spring boot热部署通过添加一个插件实现,在pom中添加下面依赖:

<!-- springboot 开发自动热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

加入热部署插件之后,需要手动build一下才可以生效。该插件有时候会失效,此时手动重启即可。

Spring全家桶之spring boot(一)的更多相关文章

  1. Spring全家桶之spring boot(三)

    spring boot集成mybatis 众所周知,spring与springmvc可以无缝集成,而mybatis不是spring旗下的框架,因此需要进行配置,当然,这里的配置也是非常简单的. 1.首 ...

  2. Spring全家桶之spring boot(二)

    spring boot的两种配置文件: 虽然spring boot可以帮助我们进行一些配置项,但是有些内容还是需要开发者自己进行配置,因此spring boot提供了配置文件以供开发者配置.sprin ...

  3. Spring全家桶之spring boot(五)

    Thymeleaf简介 Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发,模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在C#.PHP语言体系下也 ...

  4. Spring全家桶之spring boot(四)

    spring boot拦截器.过滤器.servlet和健康检查机制  spring boot拦截器 spring boot配置拦截器与原来大致相同,只是需要在拦截器的配置类上添加@Configurat ...

  5. 10分钟详解Spring全家桶7大知识点

    Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的称之为 ...

  6. Spring全家桶–SpringBoot Rest API

    Spring Boot通过提供开箱即用的默认依赖或者转换来补充Spring REST支持.在Spring Boot中编写RESTful服务与SpringMVC没有什么不同.总而言之,基于Spring ...

  7. Spring全家桶系列–SpringBoot之AOP详解

    //本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关 ...

  8. Spring全家桶系列–SpringBoot渐入佳境

    //本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 首发地址:https://www.javazhiyin.com/20913.html 萌新:小哥,我在实 ...

  9. Spring全家桶系列–[SpringBoot入门到跑路]

    //本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...

随机推荐

  1. python3如何不生成pyc文件

    使用-B参数 即 python3 -B test.py 设置环境变量 export PYTHONDONTWRITEBYTECODE=1 在导入的地方增加 import sys sys.dont_wri ...

  2. 分析PE

    PE文件是Windows平台下可执行文件标准格式,浓缩了微软工程师的设计精华,历经40年依旧保持着原有的设计.分析PE文件对于研究Windows操作系统有着重要的实践意义,对于逆向分析有着重要的指导作 ...

  3. JasperReports入门教程(四):多数据源

    JasperReports入门教程(四):多数据源 背景 在报表使用中,一个页面需要打印多个表格,每个表格分别使用不同的数据源是很常见的一个需求.假如我们现在有一个需求如下:需要在一个报表同时打印所有 ...

  4. How to check if directory exist using C++ and winAPI

    如果看文件夹是否存在,必须看返回值是不是 INVALID_FILE_ATTRIBUTES #include <windows.h> #include <string> bool ...

  5. Spring Cloud OpenFeign使用教程

    文章目录 Spring Cloud OpenFeign Demo 怎么配置OpenFeignServer 怎么配置OpenFeignClient 多个参数传递问题 FeignClient的日志问题 多 ...

  6. ubuntu(物理机)连接ARM开发板

    非虚拟机 ubuntu下连接开发板 首先安装超级终端minicom sudo apt-get install minicom 安装完minicom以后,需要将开发板和电脑进行物理连接.需要使用一条网线 ...

  7. while循环脚本

    [root@oldboy ~]# (while :;do date;sleep 5;done)& fg ctrl c退出 fg ( while :; do date; sleep 5; don ...

  8. Leetcode PHP题解--D75 706. Design HashMap

    2019独角兽企业重金招聘Python工程师标准>>> D75 706. Design HashMap 题目链接 706. Design HashMap 题目分析 自行设计一个has ...

  9. Javascript基础之-var,let和const深入解析(二)

    你想在在变量声明之前就使用变量?以后再也别这样做了. 新的声明方式(let,const)较之之前的声明方式(var),还有一个区别,就是新的方式不允许在变量声明之前就使用该变量,但是var是可以得.请 ...

  10. 深入研究Clang(十) Clang Static Analyzer简介

    Clang Static Analyzer 官网地址:http://clang-analyzer.llvm.org/ Clang Static Analyer是一个源码分析工具,它可以发现C.C++和 ...