`

为什么越来越多的开发者选择使用Spring Boot

 
阅读更多

Web应用开发背景

使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架,库以及整个生态系统。经过这么长时间的发展,Java作为一个成熟的语言,也演化出了非常成熟的生态系统,这也是许多公司采用Java作为主流的语言进行服务器端开发的原因,也是为什么Java一直保持着非常活跃的用户群。

Java EE开发生态图

最受Java开发者喜好的框架当属spring,Spring也成为了在Java EE开发中真正意义上的标准,但是随着新技术的发展,脚本语言大行其道的时代(Node JS,Ruby,Groovy,Scala等),Java EE使用Spring逐渐变得笨重起来,大量的XML文件存在与项目中,繁琐的配置,整合第三方框架的配置问题,低下的开发效率和部署效率等等问题。

这些问题在不断的社区反馈下,Spring团队也开发出了相应的框架:Spring Boot。Spring Boot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一,也被人看作是:Java EE开发的颠覆者(但是不是有点too young,too simple的感觉!)。

Spring Boot解决的问题

(1) Spring Boot使编码变简单

(2) Spring Boot使配置变简单

(3) Spring Boot使部署变简单

(4) Spring Boot使监控变简单

(5) Spring的不足

Spring Boot的干爹和其优点

准确的说,应该是亲爹,但是。。。大家都懂的!

官方地址:http://projects.spring.io/spring-boot/

这里写图片描述

Spring Boot继承了Spring的优点,并新增了一些新功能和特性:

(1)SpringBoot是伴随着Spring4.0诞生的,一经推出,引起了巨大的反向; 
(2)从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架; 
(3)SpringBoot帮助开发者快速启动一个Web容器; 
(4)SpringBoot继承了原有Spring框架的优秀基因; 
(5)SpringBoot简化了使用Spring的过程; 
(6)Spring Boot为我们带来了脚本语言开发的效率,但是Spring Boot并没有让我们意外的新技术,都是Java EE开发者常见的额技术。

Spring Boot主要特性

(1)遵循“习惯优于配置”的原则,使用Spring Boot只需要很少的配置,大部分的时候我们直接使用默认的配置即可; 
(2)项目快速搭建,可以无需配置的自动整合第三方的框架; 
(3)可以完全不使用XML配置文件,只需要自动配置和Java Config; 
(4)内嵌Servlet容器,降低了对环境的要求,可以使用命令直接执行项目,应用可用jar包执行:java -jar; 
(5)提供了starter POM, 能够非常方便的进行包管理, 很大程度上减少了jar hell或者dependency hell; 
(6)运行中应用状态的监控; 
(7)对主流开发框架的无配置集成; 
(8)与云计算的天然继承;

Spring Boot的核心功能

(1)独立运行的Spring项目

Spring Boot可以以jar包的形式进行独立的运行,使用:java -jar xx.jar 就可以成功的运行项目,或者在应用项目的主程序中运行main函数即可;

(2)内嵌的Servlet容器

内嵌容器,使得我们可以执行运行项目的主程序main函数,是想项目的快速运行;

主程序代码SpringbootDemoApplication.java

package com.xuliugen.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemoApplication.class, args);
    }
}

(3)提供starter简化Manen配置

Spring Boot提供了一系列的starter pom用来简化我们的Maven依赖,下边是创建一个web项目中自动包含的依赖,使用的starter pom以来为:spring-boot-starter-web

这里写图片描述

Spring Boot官网还提供了很多的starter pom,请参考:

http://docs.spring.io/spring-boot/docs/1.4.1.RELEASE/reference/htmlsingle/#using-boot-starter

这里写图片描述

(4)自动配置Spring

Spring Boot会根据我们项目中类路径的jar包/类,为jar包的类进行自动配置Bean,这样一来就大大的简化了我们的配置。当然,这只是Spring考虑到的大多数的使用场景,在一些特殊情况,我们还需要自定义自动配置;

(5)应用监控

Spring Boot提供了基于http、ssh、telnet对运行时的项目进行监控;这个听起来是不是很炫酷!

示例:以SSH登录为例

1、首先,添加starter pom依赖

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

2、运行项目,此时在控制台中会出现SSH访问的密码:

这里写图片描述

3、使用SecureCRT登录到我们的程序,端口为2000,用户为user:

这里写图片描述

密码就是刚才的shell access;

但是当我点击连接的时候,出现错误:

这里写图片描述

显然是SecureCRT的版本不支持,所以就放弃了这个,使用Git Bash:

ssh -p 2000 user@127.0.0.1

这里写图片描述

剩下的事情,大家自己玩吧!

(6)无代码生成和XML配置

Spring Boot神奇的地方不是借助于代码生成来实现的,而是通过条件注解的方式来实现的,这也是Spring 4.x的新特性。

Spring Boot的快速搭建案例

下边使用的是IDEA快速搭建一个Spring Boot项目

(1)File—-New—New Project

这里写图片描述

(2)点击Next填写相应的信息

这里写图片描述

(3)点击Next,选择Dependencies,这里创建Web项目选择—–Web:

这里写图片描述

(4)点击Next,设置项目名称,这里默认设置,点击Next之后,项目等一下就创建好了

这里写图片描述

找到应用程序的主函数,运行即可:

这里写图片描述

注意,在pom文件里的java版本这个要和你的机子上一致!我的是1.7,默认创建项目的时候位1.8:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.7</java.version>
</properties>

案例代码

GitOS 项目地址:

https://git.oschina.net/xuliugen/springboot-demo.git

这里写图片描述

 

 

http://blog.csdn.net/xlgen157387/article/details/52830071

分享到:
评论

相关推荐

    spring boot入门

    ### Spring Boot 入门详解 #### 一、Spring 发展历程与 Java 配置方式 Spring 是一个开源框架,最初由 Rod ...通过对 Spring Boot 的学习和使用,开发者可以更好地专注于业务逻辑的实现,而不是繁琐的基础配置工作。

    spring-boot 笔记

    在Spring1.x时代,开发者大量使用XML文件配置beans,随着项目的不断扩展,XML配置变得越来越复杂,维护成本逐渐增高。为了解决这个问题,从Spring2.x开始,随着JDK1.5引入注解支持,开发者开始使用注解来简化bean的...

    Spring Boot是一个基于Spring框架的开源项目,旨在简化Spring应用的初始搭建以及开发过程 以下是对Spring

    **支持分布式事务**:Spring Boot 还支持分布式事务和操作多数据源事务解决方案,为复杂业务场景提供了强大的支持。通过集成 Spring Data 和 JPA 等技术,Spring Boot 可以方便地管理多个数据库连接,并确保事务的...

    Spring boot 笔记

    通过使用 Spring Boot,开发者可以专注于核心业务逻辑的实现,而无需关心复杂的配置问题。同时,Spring Boot 的自动配置特性使得开发者能够快速搭建可运行的应用程序。随着 Spring 框架的不断发展和完善,Java 配置...

    Springboot入门到精通完整版.pdf

    Spring Boot 并非意图替代 Spring 框架,而是为开发者提供一个快速构建、部署和管理现代Java应用程序的平台。通过集成大量常用的第三方库并提供开箱即用的功能,Spring Boot 大大减少了开发者编写配置代码的工作量,...

    基于Spring Boot 和Spring Cloud开发的配置中心,无缝兼容Spring Boot 和 Spring Clou

    在现代企业级应用程序开发中,微服务架构变得越来越普遍,Spring Boot 和 Spring Cloud 作为构建这些微服务的重要工具,受到了广大开发者的欢迎。本篇将深入探讨如何利用Spring Boot 和 Spring Cloud 开发一个配置...

    Spring Boot核心技术-笔记

    Spring Boot是当前Java Web开发领域非常流行的一个框架,它主要的目的是简化Spring应用的初始搭建以及开发过程。Spring Boot提供了一系列...随着Spring Boot技术的不断演进,相信它会在IT领域占据越来越重要的位置。

    spring boot.docx

    通过以上介绍可以看出,Spring Boot 极大地简化了 Spring 的使用过程,让开发者能够更快地投入业务逻辑的实现,提高了开发效率。无论是对于初学者还是经验丰富的开发者来说,Spring Boot 都是一个非常有价值的工具。

    Spring Boot教程

    ### Spring Boot教程:简化Spring应用开发 ...通过减少配置、自动化部署等特性,Spring Boot为开发者带来了前所未有的便利。无论是对于初学者还是资深开发者来说,Spring Boot都是值得深入学习和掌握的重要工具。

    spring boot入门.txt

    为了解决这个问题,Spring Boot 应运而生,它的目标是让开发者能够更轻松地使用 Spring 和集成各种常用的中间件或开源软件。 #### Spring Boot 的核心思想 Spring Boot 基于“约定大于配置”的原则,为开发者提供了...

    Spring Boot Admin 参考指南-2.1.1-SNAPSHOT 谷歌翻译.pdf

    Spring Boot Admin应用客户端(SpringBootAdminClient)是客户端应用程序使用的库,用于将应用注册到Spring Boot Admin Server。它负责监控应用的健康状况,并将信息传递给服务器端。 Spring Boot Admin Server还...

    使用 Spring Boot Actuator 监控应用.docx

    ### 使用 Spring Boot Actuator 进行应用监控 随着微服务架构的广泛应用,系统变得越来越分散且复杂。在这样的背景下,微服务之间的通信和协作成为常态,这也为问题定位带来了挑战。在这种情况下,如何有效地监控...

    微服务架构下的API文档管理:Java与Spring Boot的实践

    通过使用Spring Boot和Swagger,我们可以轻松地为微服务生成详细且易于维护的API文档。这不仅提高了开发效率,也确保了API文档的准确性和及时更新。Swagger的集成和配置相对简单,使得它成为微服务API文档管理的理想...

    SpringBoot面试专题

    随着 Spring 框架的发展和功能的增加,Spring 变得越来越复杂,导致开发者需要花费很多时间和精力来配置和设置。Spring Boot 的出现解决了这个问题,它提供了一种简单、快速的方式来构建 Spring 应用程序。 Spring ...

    Spring Boot

    ### Spring Boot:微服务入门级框架详解 #### 引言 随着云计算和微服务架构的兴起,企业级...然而,面对更为复杂的企业级应用时,开发者还需要考虑如何整合更多的外部工具和服务来弥补Spring Boot本身的不足之处。

    Spring-Boot框架入门

    ### Spring Boot框架入门详解 #### 一、Spring Boot概述 ...随着Spring Boot的不断发展和完善,其已经成为Java开发领域中不可或缺的一部分,越来越多的企业开始采用Spring Boot来构建高效稳定的Web应用。

    Java_示例演示如何使用Spring Boot 2和Spring Security 5保护API.zip

    在现代Web开发中,API(应用程序编程接口)的使用越来越广泛,它们允许不同的服务之间进行数据交换和功能集成。为了确保API的安全性,开发者通常会采用各种安全框架。本示例将详细介绍如何在Java环境中,利用Spring ...

    springboot265基于Spring Boot的库存管理系统.zip

    总结,基于Spring Boot的库存管理系统充分利用了Spring Boot的特性,实现了数据管理、API设计、Web界面、安全控制、监控等多个关键模块,为企业提供了高效、可靠的库存管理解决方案。通过深入理解和掌握这些知识点,...

    使用Spring Boot和Python Flask实现AI文本分类服务注册与发现

    - **Spring Boot**:Spring Boot简化了Java应用的开发过程,提供了自动配置、启动类等特性,使开发者能够快速搭建并运行应用。 - **Python Flask**:Flask是一个轻量级的Python Web框架,易于上手且功能强大,非常...

    String Boot最新学习视频.doc

    Spring Boot为各种常见场景提供了起步依赖,只需要在pom.xml文件中引入对应的依赖即可,无需再手动添加jar包及其版本号。这大大减少了出错的可能性。 #### 3. 内嵌Servlet容器 Spring Boot默认集成了Tomcat、Jetty...

Global site tag (gtag.js) - Google Analytics