SpringBoot ...如今,有关SpringBoot的话题很多。 那么,SpringBoot是什么?

SpringBoot是一个新的Spring产品组合项目,它通过大幅度减少所需的配置量来构建可立即投入生产的Spring应用程序。 Spring Boot通过基于运行时可用的类路径库自动注册默认配置,将配置样式的约定提升到了新的水平

嗯..您可能已经在许多博客上阅读了有关SpringBoot的介绍。 因此,让我详细说明什么是SpringBoot以及它如何帮助更快地开发Spring应用程序。

当许多Java开发人员为构建企业应用程序而使用EJB 1.x / 2.x时,Rod Johnson创建了Spring框架。 通过使用依赖注入和面向方面的编程概念,Spring框架使开发业务组件变得容易。 Spring变得非常流行,更多的Spring模块(如SpringSecurity,Spring Batch,Spring Data等)成为Spring产品组合的一部分。 随着越来越多的功能添加到Spring中,配置所有spring模块及其依赖项变得繁琐。 除此之外,Spring还提供了至少3种方法! 有些人将其视为灵活性,而另一些人则将其视为混乱。

慢慢地,配置所有Spring模块以使其协同工作成为一个巨大的挑战。 Spring团队提出了许多方法,通过引入Spring XML DSL,Annotations和JavaConfig来减少所需的配置量。

在开始的时候,我记得在本节和许多声明中配置了大量的jar版本声明。 然后,我学习了如何使用基本结构和最低要求的配置来创建Maven原型。 这减少了很多重复工作,但没有完全消除。

无论您是手动编写配置还是通过一些自动化方式生成配置,如果都可以看到代码,则必须对其进行维护。

因此,无论您使用XML还是Annotations还是JavaConfig,您仍然都需要再配置一次(复制粘贴)相同的基础结构设置。

另一方面,J2EE(很久以前就死了)作为JavaEE出现,并且自JavaEE6以来(与J2EE和JavaEE5相比)使用JavaEE平台开发企业应用程序变得很容易。
JavaEE7发行时还带有所有出色的CDI,WebSocket,批处理,JSON支持等,这些功能也变得更加简单和强大。 使用JavaEE,您不需要太多的XML配置,并且war文件的大小将以KB为单位(对于非helloworld / non-stageshow应用程序,这真的是???!) 当然,这种“配置之上的约定”和“您无需将API粘合到appServer上就已经做到了”的论点成为JavaEE在Spring上的主要卖点。 然后,Spring团队使用SpringBoot解决了这个问题! 现在是时候到JavaEE展示SpringBoot在JavaEE中的对应版本了,JBoss Forge呢? 我喜欢Spring vs JavaEE这件事,它催生了功能强大的工具,这些工具最终简化了开发人员的工作!

很多时候,我们需要使用相同的库进行类似的基础架构设置。 例如,以一个Web应用程序为例,您将DispatcherServlet url-pattern映射到“ /”,使用带有Spring Data JPA后端的Jackson JSON库来实现RESTFul Web服务。 同样,可能存在需要类似基础结构配置的批处理或Spring集成应用程序。

SpringBoot进行了救援 。 SpringBoot查看可用于运行时类路径的jar文件,并使用明智的默认值为您注册Bean,这些默认值可以用显式设置覆盖。 而且, SpringBoot仅在jar文件可用并且您没有定义任何此类bean时才配置这些bean 。 总的来说,SpringBoot提供了通用的基础结构,而无需任何显式配置,但是允许开发人员在需要时覆盖。

为了使事情变得更简单,SpringBoot团队提供了许多入门项目,这些项目已预先配置了常用的依赖项。 例如,Spring Data JPA入门项目随附了具有Hibernate实现的JPA 2.x以及Spring Data JPA基础结构设置。 Spring Web Starter附带有Spring WebMVC,嵌入式Tomcat,Jackson JSON和Logback设置。

Aaah ..足够的理论..let进入了编码。

我正在使用最新的STS-3.5.1 IDE,它提供了比其早期版本更多的入门项目选项,例如Facebbok,Twitter,Solr等。

通过转到文件->新建-> Spring Starter项目 ->选择WebActuator创建一个SpringBoot启动程序项目,并提供其他必需的详细信息和完成。

这将使用以下pom.xmlApplication.java创建一个Spring Starter Web项目。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.sivalabs</groupId><artifactId>hello-springboot</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>hello-springboot</name><description>Spring Boot Hello World</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.1.3.RELEASE</version><relativePath/></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>  </dependencies><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><start-class>com.sivalabs.springboot.Application</start-class><java.version>1.7</java.version></properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
package com.sivalabs.springboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

继续并将该类作为独立的Java类运行。 它将在8080端口上启动嵌入式Tomcat服务器。 但是我们尚未添加任何要访问的端点,让我们继续并添加一个简单的REST端点。

@Configuration
@ComponentScan
@EnableAutoConfiguration
@Controller
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} @RequestMapping(value="/")@ResponseBodypublic String bootup(){return "SpringBoot is up and running";}
}

现在将浏览器指向http:// localhost:8080 / ,您应该看到响应“ SpringBoot已启动并正在运行”。

请记住,在创建项目时,我们还添加了Actuator启动器模块。 使用Actuator,您可以获得有关您的应用程序的许多有趣的事实。

尝试访问以下URL,您会看到SpringBoot提供的许多运行时环境配置。

  • http:// localhost:8080 / beans
  • http:// localhost:8080 / metrics
  • http:// localhost:8080 / trace
  • http:// localhost:8080 / env
  • http:// localhost:8080 / mappings
  • http:// localhost:8080 / autoconfig
  • http:// localhost:8080 / dump

SpringBoot执行器值得一个专门的博客文章来介绍其众多功能,我将在以后的文章中介绍它。

我希望本文提供有关SpringBoot的一些基本介绍,以及它如何简化Spring应用程序的开发。
有关SpringBoot的更多信息,请参见即将发表的文章

翻译自: https://www.javacodegeeks.com/2014/07/springboot-introducing-springboot.html

SpringBoot:SpringBoot简介相关推荐

  1. SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.21 SpringBoot 整合 ActiveMQ

    SpringBoot [黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)] SpringBoot 开发实用篇 文章目录 Spring ...

  2. SpringBoot SpringBoot 基础篇(第一篇) 第2章 SpringBoot 全局配置 2.2 yaml 文件

    SpringBoot [千锋教育java教程SpringBoot2全套,springboot快速入门到项目实战视频教程] SpringBoot 基础篇(第一篇) 第2章 SpringBoot 全局配置 ...

  3. SpringBoot入门简介

    一.Spring Boot入门 1.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特 ...

  4. SpringBoot | SpringBoot整合数据库

    文章目录 SpringBoot整合数据库 前言:关于本节的问题汇总 1.整合JDBC 1.1.SpringData简介 1.2.整合JDBC 1.3.分析源码 1.4.JdbcTemplate 1.5 ...

  5. php springboot,springboot是什么?

    spring boot是什么? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. 在Spring框架这个大家族中,产生了很多衍 ...

  6. springboot:SpringBoot项目启动成功,但无法访问且提示404

    当SpringBoot项目启动成功后,访问controller下的接口却发现无法访问,且提示status=404 我的项目中controller下只有一个测试接口,接口名为MainController ...

  7. SpringBoot: SpringBoot里面创建导出Excel的接口(亲测)

    在Web项目中,难免需要导出Excel这样的功能,后端接口怎么实现呢,Controller代码在下面,复制到项目的Controller中即可使用: 首先加入Excel的依赖,本例中我们用apache的 ...

  8. (入门SpringBoot)SpringBoot结合redis(四)

    SpringBoot整合redis: 1.引入jar <!--  引入redis依赖 --><dependency>     <groupId>org.spring ...

  9. SpringBoot : SpringBoot自定义的ApplicationContext实现类

    文章目录 1.美图 2.概述 3.在传统spring框架下的扩展方式 4.探寻SpringBoot框架下的扩展方式 5.如何设置自定义的ApplicationContext实现类 6.实战使用自定义的 ...

  10. Springboot(SpringBoot)重试机制retry

    在我们编写项目时,有时候需要调用外部接口,那这个时候就需要考虑如果出现异常怎么办,可能是网络访问异常,超时异常等等.SpringBoot为我们提供了重试机制,可适用于这种场景, 一.retry重试机制 ...

最新文章

  1. 单词转换(map对象)
  2. 湖北经济学院法商学院计算机分数线,湖北经济学院法商学院
  3. 实用--HTML的命名规范
  4. linux下ffmpeg编译成so文件,一、ffmpeg编译成android使用的so库
  5. mysql数据库druid密码加密_Druid数据库密码加密
  6. 深入学习Spring框架(二)- 注解配置
  7. 使用Putty密钥认证机制远程登录Linux
  8. C++实现演讲比赛小项目
  9. ZH奶酪:PHP中添加HTML代码的三种方法
  10. Linux中的jobs、fg与bg命令
  11. Adobe Premiere Pro 如何打开webm格式媒体
  12. 202206-2 寻宝大冒险
  13. 中国计算机学会青年计算机科技论坛
  14. pyscripter支持python什么版本_PyScripter|PyScripter(Python集成开发环境)下载v3.4.2.0官方版64位/32位 - 欧普软件下载...
  15. 进行遥感图像数据融合的步骤:
  16. 在js中对数值进行取整、四舍五入等方法汇总
  17. gitlab push 时提示 “Empty Reply From Server”
  18. 使用ShareSDK集成分享框架
  19. 浅谈jdk-spi与dubbo-spi
  20. 系统安全及应用(上)

热门文章

  1. JS中使用工厂模式创建对象
  2. java 刷新界面_利用java如何实现在删除信息后刷新页面功能
  3. linux-basic(9)文件与文件系统的压缩与打包
  4. java分布式对象——远程方法中的参数和返回值+远程对象激活
  5. jdk内置线程实例_EA问题的JDK14实例
  6. 在Selenium中按TagName定位元素
  7. Spring Boot和Apache Camel
  8. junit 5测试异常处理_使用JUnit 5测试异常
  9. 用一个程序生成另一个程序_还有另一个报告生成器?
  10. 突破极限–如何使用AeroGear Unified Push for Java EE和Node.js