概述

  1、了解springboot的作用

  2、构建第一个springboot项目

一、springboot的作用

  ① 原先在构建SSM项目的时候,可以感觉到,在一些不是很大的项目,构建配置文件的过程所需的时间花费甚至超过项目本身的业务,每次构建一个新项目都得搞各种配置文件(xml\configuration类)。我们需要一些自动化的配置,springboot可以做到。

  ② 近几年随着业务增加,流量增大等原因,所有业务堆积在一个项目是很恐怖的,一个项目里面光理清业务逻辑就很压力,更别说后期开发,到了集群时期,多个服务器部署相同的项目,改一个业务就得重新挨个部署,效率低下,就有人(Josh Evans大神)提出微服务的架构,他认为服务应该是独立个体(大概这意思)。随着技术发展,业务逐渐被独立出来,形成能独立执行的个体,分散在各个服务器中,也就是微服务架构,各个服务通过中间件交流,而springcloud就是实现微服务架构的技术之一,而了解springcloud,则先需要了解springboot。

二、构建第一个springboot项目

  以往构建spring项目,我们需要导入jar包或maven依赖,再配置一下 spring的配置文件(xml或@Configuration标注的类) ,之后在web.xml配置启动时加载spring容器,光是个启动就要做那么多事,所以我们来看看,springboot如何帮助我们构建一个项目,先跟着做,后续讲解一些还未接触的小伙伴想知道的事。

  以IDEA为例:

  (1)创建一个新项目,选择Spring Initializr(IDEA内嵌的初始化springboot的一个组件开发插件),此过程需要在接入网络下进行,会下载一些依赖

  (2)填写所属组、版本信息,使用jdk1.8构建 。 其中,Package 是构建后的包名,简略写

  (3)选择所需的模块。可以看到,在这里能选择很多我们想集成的模块(sql\nosql之类),这是springboot自动化配置的强大功能,只要选择模块,就默认帮我们配置好这些模块,现在我们先选择web模

块开发第一个程序。

  (4)确定项目的存储位置后,Finish 。

  (5)创建完成后,右下角会出现更新提示,允许后会自动配置好springboot的环境,并且项目目录如下,其中的详细后续会解释。现在我们可以看看 SpingbootQuickstart1Application类,其中的main方法就是整个项目启动的入口。springboot内置了Tomcat容器,我们不需要自己配置容器就可运行。

  (6)创建一个controller包,并且创建一个 HelloController.class

@Controller
public class HelloController { @ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World!" ;
}
}

  (7)运行 SpringbootQuickstart1Application中的 main方法,即可启动该项目(springboot内嵌了了Tomcat容器,所以不需要手动配置容器,很方便)。启动项目后,访问

  localhost:8080/hello 即可看到我们的第一个springboot项目已经完成。

  至此,我们可以发现,我们完成一个springboot项目,没有配置web.xml ,没有配置spring容器,仅仅是运行了main方法就可以启动项目。这是因为springboot的一个理念:约定大于配置。只要我们根据其约定,在对应的位置写下自己的业务,springboot就能帮我们运行。springboot有大量的自动配置文件,我们可以根据实际需求修改。后续的文章也会解析。

  

  刚学SpringBoot,记下笔记加深印象。若有错误,敬请斧正,以免误导他人。

初涉springboot(一)的更多相关文章

  1. 初涉springboot(二)

    概述 1.环境说明 2.HelloWorld项目细节   3.小结 一. 关于环境补充 在上一篇的HellWorld项目中,我们构建SpringBoot项目,采用的是jdk1.8版本,springbo ...

  2. 初涉springboot

    1.首先,我们需要了解微服务是什么? 微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用 ...

  3. 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用

    问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...

  4. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  5. Springboot搭建web项目

    最近因为项目需要接触了springboot,然后被其快速零配置的特点惊呆了.关于springboot相关的介绍我就不赘述了,大家自行百度google. 一.pom配置 首先,建立一个maven项目,修 ...

  6. Java——搭建自己的RESTful API服务器(SpringBoot、Groovy)

    这又是一篇JavaWeb相关的博客,内容涉及: SpringBoot:微框架,提供快速构建服务的功能 SpringMVC:Struts的替代者 MyBatis:数据库操作库 Groovy:能与Java ...

  7. 解决 SpringBoot 没有主清单属性

    问题:SpringBoot打包成jar后运行提示没有主清单属性 解决:补全maven中的bulid信息 <plugin> <groupId>org.springframewor ...

  8. SpringBoot中yaml配置对象

    转载请在页首注明作者与出处 一:前言 YAML可以代替传统的xx.properties文件,但是它支持声明map,数组,list,字符串,boolean值,数值,NULL,日期,基本满足开发过程中的所 ...

  9. springboot 学习资源推荐

    springboot 是什么?对于构建生产就绪的Spring应用程序有一个看法. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.(这是springboot的官方介绍) 我们为什么要学 ...

随机推荐

  1. GSON转换日期数据为特定的JSON数据

    通过JSON传递数据的时候经常需要传递日期,Java中可以通过GSON将日期转换为特定格式的JSON数据. 1.普通的GSON转换日期 public void query(HttpServletReq ...

  2. python并发编程之threading线程(一)

    进程是系统进行资源分配最小单元,线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.进程在执行过程中拥有独立的内存单元,而多个线程共享内存等资源. 系列文章 py ...

  3. Django【设计】同功能不同实现模式的兼容性

    需求: 当我们采集硬件信息时,客户端可以有多种方式,具体方式取决于客户机,CMDB项目中,我们有三种方式可选,AGENT/SSH/SALT,根据客户机具体情况和“SALT>>SSH> ...

  4. linux删除第几天日志【原创】

    cat del.sh #!/bin/bash thirty=`date -d '30days ago' +%Y-%m-%d` cd $ #删除输入路径下第30天的日志文件 find . -name & ...

  5. 8.Python3标准库--数据持久存储与交换

    ''' 持久存储数据以便长期使用包括两个方面:在对象的内存中表示和存储格式之间来回转换数据,以及处理转换后数据的存储区. 标准库包含很多模块可以处理不同情况下的这两个方面 有两个模块可以将对象转换为一 ...

  6. Nginx - 隐藏或修改版本号

    1. 前言 无论是修改 Nginx 版本还是隐藏 Nginx 版本号,都是很简单的操作,对外来说,相对更安全些. 2. 修改 Nginx 版本号 对于修改 Nginx 版本号来说,需要在源码的基础上进 ...

  7. HDU 4553 约会安排(线段树区间合并+双重标记)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4553 题目大意:就是有三种操作: ①DS x,安排一段长度为x的空闲时间跟屌丝一起,输出这段时间的起点 ...

  8. STL中stack/queue/map以及Boost unordered_map 的使用方法

    一.stackstack 模板类的定义在<stack>头文件中.stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型 ...

  9. gtk+学习笔记(二)

    如何创建一个按钮呢,直接贴代码把,有详细的注释. #include<gtk/gtk.h> gint data_count=; void on_button_clicked (GtkWidg ...

  10. Numpy narray对象的属性分析

    参考官方文档链接: narray是Numpy的基本数据结构,本文主要分析对象的属性(可通过.进行访问) 1:导入numpy: import numpy as np 2:初始化narray对象: > ...