简单讲SpringBoot是对spring和springMVC的二次封装和整合,新添加了一些注解和功能,不算是一个新框架。

  学习来源是官方文档,虽然很详细,但是太墨迹了…

  地址:https://docs.spring.io/spring-boot/docs/1.5.8.RELEASE/reference/htmlsingle/#boot-documentation

  

  我是配合maven来学习的,所以首先是pom.xml的配置,根据官方文档如下:

pom.xml

  <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

  稍微解释下:

  spring-boot-starter-web会自动引入一些web相关的spring框架,包含tomcat、springframework等等

  spring-boot-devtools相当于webpack中的热重载,可以快速更新资源并在应用中得到响应。

  parent、plugins这两个忘了,反正对我这种菜鸟来说,引入就没错

  接下来是启动一个简单的HelloWorld程序,不按照官网的example来了,直接上最终版:

@SpringBootApplication
public class Application{
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.run(args);
}
}

  执行该文件后,会启动一个服务器,默认端口8080,打开后会显示一个默认的error页面,如图所示:

 

  这里的@SpringBootApllication注解用在主入口函数上,是三个注解的合体:@Configuration@EnableAutoConfiguration and @ComponentScan

  因为这三个注解一般都是成套出现,所以SpringBoot把他们合成了一个。

  这个只需要关注@ComponentScan注解,这个注解的意思是会对目录下所有的文件进行扫描,功能类似于beans.xml中的:

    <context:component-scan base-package="project"/>

  是的,在主入口函数用了这个注解,连xml文件都省了。

  

  刚才打开的是一个默认的error页面,可以通过配置Controller来处理request请求:

@RestController
public class web {
@RequestMapping("/")
String Home(){
return "<h1>Home Page!!!</h1>";
}
@RequestMapping("/Jimmy")
String Jimmy(){
return "<h1>Jimmy Page!!!</h1>";
}
}

  新建一个java文件,然后代码如上所示,此时打开localhost:8080,会看到:

  如果将连接改成localhost:8080/Jimmy,会看到:

  也就是说,该类被注解为一个Servlet类,用来处理各种请求。而@RequestMapping注解表明请求路径,里面还可以指明method,这里就不做演示了。

  有时候并不希望主页通过这样的方法输出,也可以自定义一个html页面作为首页展示。

  SpringBoot默认会自动扫描/static (or /public or /resources or /META-INF/resources路径下的静态资源,然后将其中的index.html作为首页。

  当然也可以通过自定义路径来指定静态资源路径,这里就演示下 默认扫描:

  

  目录结构如图,最重要的是建一个文件夹,名称为上面列出来的默认项之一,然后往里面丢一个index.html,重启后打开主页可见:

  上面的自定义错误页面比较丑,SpringBoot可以自定义404页面,方式也很简单,在public中新建一个error文件夹,里面放404.html,当出现404错误时,会自动扫描该文件夹下的该页面,如图:

  

  至此,基本的功能都差不多了,官方文档还有很多杂七杂八的,目前也用不上。

  后面还有两章讲SpringBoot与Mysql、Nosql的连接使用,因为暂时没有学数据库,所以跳过。

  完事。

Spring学习之路-SpringBoot简单入门的更多相关文章

  1. ECharts.js学习(一) 简单入门

    EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart   这个是Visual Studio里的自带控件,使用比 ...

  2. Spring学习之路——简单入门HelloWorld

    Spring简单介绍 Spring是一个提供了解决J2EE问题的一站式框架. Spring的核心是反转控制,通过配置文件完成业务对象之间的依赖注入,他鼓励一个良好的习惯,就是注入对接口编程而不是对类编 ...

  3. Spring学习之路-从入门到放弃

    后台框架是真难入门啊!!!IDE的使用,环境的搭建,框架下载,上手,每一步都恶心人. 花了整整两天,才学会用idea,并且初步了解了maven(TM就是一个npm),然后跟着下载了对应的jar包,搭建 ...

  4. springboot 学习之路 17(webflux 入门 (1))

    Webflux: webflux是在springboot2系列引入的技术:补充一些概念: 1> Reactive Streams 是 JVM 中面向流的库标准和规范: 处理可能无限数量的元素 按 ...

  5. Spring学习之路-从放弃到入门

    AOP:方法拦截器 IOC:类管理容器 主要讲讲这一天看Spring视频学到的东西,以下的叫法全是自创的. 1.类实例管理容器 关于Spring,首先是对类的管理,在常规情况,生成一个类需要调用new ...

  6. springboot简单入门笔记

    一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...

  7. Spring全家桶系列–SpringBoot之入门JPA

    //本文作者:cuifuan 什么是JPA? 一种规范,并非ORM框架,也就是ORM上统一的规范 用了之后可以做什么,为什么要用? 代码解释: 实体类 package com.example.spri ...

  8. MyBatis学习(一)简单入门程序

    MyBatis入门学习 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...

  9. redis——学习之路五(简单的C#使用redis)

    redis官方推荐使用的客户端程序 打星星表示推荐使用的客户端程序,一个笑脸表示最近6个月内有过正式活动的.http://redis.io/clients/#c 从这里我们可以判断官方推荐我们使用Se ...

随机推荐

  1. To datafix AR DATE

    http://www.cnblogs.com/benio/archive/2012/07/07/2580203.html AR transactions should be created on 6- ...

  2. node.js second day

    create global link 使用全局模式安装的包不能直接通过require使用,但是nmp提供了一个 nmp link ,这个可以打破限制 $ nmp link [express] ./no ...

  3. C#项目 学生选课系统 C#窗口 Winform项目 项目源码及使用说明

    这是一个学生选课信息管理系统,使用VS2010+SQL2008编写,VS2017正常使用. 项目源码下载地址 https://gitee.com/whuanle/xkgl 笔者录了两个视频,打开项目源 ...

  4. 一、winForm-DataGridView操作——控件绑定事件的两种方法

    在winForm窗体中绑定(注册)事件的方法有两种: 一.绑定事件 双击控件,即进入.cs的代码编辑页面,会出现 类似于“ private void 控件名称_Click(object sender, ...

  5. 【转】C# 之泛型详解

    原文地址:https://www.cnblogs.com/yueyue184/p/5032156.html 什么是泛型 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一 ...

  6. 关于nginx部署vue项目的两个问题

    首先我使用的是后端接口+前端vue的形式,这样就涉及到跨域的问题.我是这样配置的: server { listen 80; server_name www.liangyp.xyz;//访问网址 loc ...

  7. sudo: 没有终端存在,且未指定 askpass 程序

    问题:sudo: 没有终端存在,且未指定 askpass 程序 解决: sudo visudo 增加如下一行: neutron    ALL=(ALL)    NOPASSWD:ALL

  8. Linux防火墙配置与管理(16)

    防火墙指的是一个由软件和硬件设备组合而成.在内部网和外部网之间.专用网与公共网之间的边界上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intra ...

  9. Linux系统文件权限管理(6)

    Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限,每当我们使用用户名登录操作系统时,linux ...

  10. MariaDB 备份与日志管理(13)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...