最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术。虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧。

Spring Boot 概述

首先,Spring Boot是一个框架,主要理念就是消除项目中大量的配置文件,使项目更加短小精悍。我们知道 java 的开发显得很笨重:繁多的配置、开发效率低下、复杂的布署流程以及第三方技术集成难度大。所以说,spring boot就是在此环境下产生的。

Spring Boot 的核心功能

  1. 独立运行的Spring 项目

    Spring Boot 可以以jar包的形式独立运行,运行一个Spring Boot 项目只需要通过 java -jar xx.jar 来运行。
  2. 内嵌Servlet 容器

    Spring Boot 可以选择内嵌Tomcat、Jetty或Undertow,这样我们无须以war包形式部署项目。
  3. 提供starter简化Maven 配置

    Spring 提供了一系列的starter pom 来简化Maven 的依赖加载。
  4. 自动配置Spring

    Spring Boot 会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大地减少我们要使用的配置。Spring Boot只考虑了大多数的场景,并不是所有的场景。
  5. 准生产的应用监控

    Spring Boot 提供基于http、ssh、telnet对运行时的项目进行监控。
  6. 无代码生成和xml配置

    Spring Boot不是借助代码生成来实现的,而是通过条件注解来实现的,这是spring 4.x的新特性。Spring 4.x提倡使用Java配置和注解配置组合,而Spring Boot不需要任何xml配置即可实现Spring 的所有配置。

Spring Boot 的优缺点

优点:

1. 快速构建项目;

2. 对主流开发框架的无配置集成;

3. 项目可以独立运行,无须外部依赖Servlet容器;

4. 提供运行时的应用监控;

5. 极大地提高了开发、部署效率;

6. 与云计算的天然集成。

缺点:

1. 书籍文档较少且不够深入;

2. 如果你不认同Spring 框架。

快速搭建Spring Boot项目

书中介绍了几种搭建Spring Boot项目的方式,我用的是idea,所以就只总结在idea下的搭建方式。

1. 新建Spring Initializr 项目,如图:

2. 填写项目信息,如图:

3. 选择项目使用的技术,如图:

4. 填写项目名称:如图:

5. 项目架构及依赖,如图:

6. 添加测试控制器。直接在入口类中编写。

package com.springboot.first;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@SpringBootApplication
public class FirstApplication { @RequestMapping("/")
String index() {
return "Hello Spring Boot";
}
public static void main(String[] args) {
SpringApplication.run(FirstApplication.class, args);
}
}

@SpringBootApplication是Spring Boot 项目的核心注解,主要目的是开启自动配置。main方法是一个标准的Java应用的main方法,主要作用是作为项目启动的入口。

7. 运行项目,把它当成一个java类运行就可以了,右键菜单中选择,如图:

运行信息:

8. 运行结果,如图:

小结

以上是对Spring Boot 做一个基本的了解。从最后的一个例子来看,明显的可以感觉到开发一个Controller是多么容易,比SSM框架要快的多,因为你要搭建SSM框架都需要好长的时间,而Spring Boot只需要创建一个项目就可以了。很简单!

Spring Boot学习笔记---Spring Boot 基础及使用idea搭建项目的更多相关文章

  1. Spring Cloud学习笔记--Spring Boot初次搭建

    1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都 ...

  2. Spring Boot学习笔记——Spring Boot与MyBatis的集成(项目示例)

    1.准备数据库环境 # 创建数据库 CREATE DATABASE IF NOT EXISTS zifeiydb DEFAULT CHARSET utf8 COLLATE utf8_general_c ...

  3. [Spring入门学习笔记][Spring Boot]

    什么是Spring Boot Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架 ...

  4. Java框架spring Boot学习笔记(一):开始第一个项目

    新建一个项目,选择Spring initializr 修改group和项目名 添加依赖包Web,MongoDB 设置保存位置和工程名 新建一个test的文件 输入代码: package com.xxx ...

  5. Spring Boot学习笔记——Spring Boot与ActiveMQ的集成

    Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ.Artemis等.这里以ActiveMQ为 ...

  6. Spring Boot学习笔记——Spring Boot与Redis的集成

    一.添加Redis缓存 1.添加Redis起步依赖 在pom.xml中添加Spring Boot支持Redis的依赖配置,具体如下: <dependency> <groupId> ...

  7. [Spring MVC]学习笔记--基础Servlet

    Servlet是一个用Java编写的应用程序,在服务器上运行,处理请求的信息并将其发送到客户端. Servlet的客户端提出请求并获得该请求的响应. 对于所有的客户端请求,只需要创建Servlet的实 ...

  8. [spring入门学习笔记][spring的IoC原理]

    什么叫IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency ...

  9. [Spring入门学习笔记][Spring的AOP原理]

    AOP是什么? 面向切面编程 软件工程有一个基本原则叫做“关注点分离”(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年头互联网也 ...

随机推荐

  1. 在 golang 中使用 Json

    序列化 序列化对象将使用 encoding/json 中的 Marshal 函数. 函数原型为:func Marshal(v interface{}) ([]byte, error) 以下是官网给出的 ...

  2. Golang基础

    Golang官方 https://golang.org/ 使用命令,在本地启动一个go官网 go doc -http=: 访问127.: golang标准库api文档 https://studygol ...

  3. Neural Networks and Deep Learning(week4)Building your Deep Neural Network: Step by Step

    Building your Deep Neural Network: Step by Step 你将使用下面函数来构建一个深层神经网络来实现图像分类. 使用像relu这的非线性单元来改进你的模型 构建 ...

  4. vue中$mount与el区别

    vue中的$mount和el两者在使用中没有什么区别,都是将实例化后的vue挂载到指定的DOM元素中 用法: 如果在实例化vue时指定el,则该vue将会渲染在el对应的DOM中 反之 没有指定el, ...

  5. ZRender

    https://ecomfe.github.io/zrender-doc/public/

  6. 异常处理com.sun.image.codec.jpeg.JPEGImageEncoder

    以下方案不一定能解决问题.解决方案:配置JDK的JRE_HOME 环境变量既可. Linux 下配置  : vi /etc/profile 在profile文件下面追加写入下面信息: export J ...

  7. OpenCV不同类型Mat的at方法访问元素时该如何确定模板函数的typename(转)

    自从OpenCV推出了Mat后越来越像是Matlab了,使用起来方便了很多,但是,在用at方法访问Mat时,如何选用合适的typename类型来访问相应的Mat元素是个头疼的问题. 比如: int H ...

  8. js设置按钮不可用

    <input type="button" value="确定" id="stamp" onclick="stampBill( ...

  9. JavaScript之函数存储[摘]

    引用文献:js忍者秘籍 var store = {//demo:函数存储----存储一组独立的函数 nextId:1, cache:{}, add:function(fn){ if(!fn.id){ ...

  10. delphi-TTcpServer与TTcpClient

    最简单的TTcpServer与TTcpClient通信实例-Delphi_海盗船长_新浪博客http://blog.sina.com.cn/s/blog_5383794d0100nt9u.html d ...