您需要一点弹簧吗? 厌倦了所有繁琐的Web服务器并部署WAR文件? 好吧,你很幸运。 Spring Boot对构建可用于生产的Spring应用程序持坚定态度。 Spring Boot倾向于使用约定而非配置,它旨在使您尽快启动并运行。

在此博客中,我将引导您逐步完成如何使Spring Boot在您的计算机上运行的过程。

只是穿上并系好鞋带……

Spring Boot使创建“ Spring”的独立,生产级基于Spring的应用程序变得容易。 由于它从Spring平台和第三方库的观点出发,因此您可以大惊小怪地开始工作。 大多数Spring Boot应用程序只需要很少的Spring配置。

这些靴子是为走路准备的……也许正在跑步

因此,Spring Boot的最大优点是能够在极短的时间内启动并运行。 您不必为此安装Web服务器,例如JBoss,Websphere甚至是Tomcat。 您需要做的就是拉入适当的库,进行批注并解雇。 如果您打算做很多Spring Boot项目,我强烈建议您使用可用的Spring Tool Suite。 它具有一些使Boot项目真正易于管理的强大功能。

您当然可以在Maven或Gradle之间进行选择,以管理依赖关系和构建。 我的示例将在Maven中进行,因为这是我所熟悉的。 这与您的配置首选项有关。

多种风格可供选择

使Spring Boot出色的原因之一是,它可以与其他Spring产品一起很好地工作。 哇,去图吗? 您可以使用Spring MVC,Jetty或Thymeleaf,只需将它们添加到依赖项中,然后Spring Boot自动将它们添加到其中。

天天穿靴子

Spring Boot希望为您简化事情。 您可以用它来做很多事情。 以下是一些要点。

  • 通过Spring Boot,您可以将应用程序打包为独立的JAR文件,并嵌入完整的Tomcat服务器
  • Spring Boot使您仍然可以将应用程序打包为WAR。
  • 配置基于类路径中的内容(路径中的MySQL DB,它将为您设置)
  • 它具有默认设置(因此您不必配置它们)
  • 通过添加到类路径可以轻松覆盖(添加H2依赖关系并将其切换)
  • 让我们的新开发者着急学习绳索,并在以后学习更多时进行更改。

婴儿靴

但是请记住,该博客的目的只是让您熟悉如何在计算机上运行Spring Boot。 这将非常简单明了。 目标是让您入门。 我们不打算在此处编写新的Uber应用程序或其他代码。 宝贝踩乡亲! 我们只是想让您的脚温暖。 我们都知道那些教程会向我们扔很多东西,只是掩盖一切。 不在这里。

因此,入门最简单的方法是从Spring本身中提取教程代码。 这是一个很好的入门点。 无需将整个Spring库交给您就可以查看正在发生的事情,这对您来说是个好习惯。

克隆靴子…注意目标!

首先,让我们克隆在此处找到的Spring示例。

git clone https://github.com/spring-guides/gs-spring-boot.git

我们不会进入在IDE中进行设置的步骤,因为每个人都有自己的偏好。

施工靴

让我们分解一下。 这些注释是关于什么的?

@SpringBootApplication是一个方便注释,它添加了以下所有内容:

  • @Configuration将类标记为应用程序上下文的Bean定义的源。
  • @EnableAutoConfiguration告诉Spring Boot根据类路径设置,其他bean和各种属性设置开始添加bean。
  • 通常,您将为Spring MVC应用程序添加@EnableWebMvc ,但是当Spring Boot在类路径上看到spring-webmvc时,它将自动添加它。 这会将应用程序标记为Web应用程序,并激活诸如设置DispatcherServlet类的关键行为。
  • @ComponentScan告诉Spring在hello包中寻找其他组件,配置和服务,从而允许它找到控制器。

哇,我一直在寻找新房时喜欢优质的内装! 但是这些闪亮的新物品背后究竟发生了什么?

main()方法调用Spring Boot的SpringApplication.run()方法来启动。

我们是否提到(或您注意到)您不必弄乱XML? 多么可观的奖金! 没有更多的web.xml文件废话了。 不再想知道我是否在文件中放置了正确的标签,并且想知道那条无法读取的错误消息告诉您什么不再是什么问题了。 这是100%纯Java。 无需配置或管道。 他们为您做了。 他们真好!

设置好并准备开始编辑后,让我们快速看一下Application.java文件。 在这里,您将找到可运行的main类。 它具有@SpringBootApplication的注释。 这是使该应用程序成为启动应用程序的关键注释。

package hello;import java.util.Arrays;import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}@Beanpublic CommandLineRunner commandLineRunner(ApplicationContext ctx) {return args -> {System.out.println("Let's inspect the beans provided by Spring Boot:");String[] beanNames = ctx.getBeanDefinitionNames();Arrays.sort(beanNames);for (String beanName : beanNames) {System.out.println(beanName);}};}}

现在运行它! 如果您使用的是STS套件(并已正确构建),则将在启动仪表板中看到它。 对于其他所有人,请在IDE中右键单击并以“ Run As => Java Application”运行,或转到您喜欢的命令行工具。 使用以下命令。

Maven:

mvn package && java -jar target/gs-spring-boot-0.1.0.jar

摇篮:

./gradlew build && java -jar build/libs/gs-spring-boot-0.1.0.jar

输出将显示嵌入式服务器的正常Spring启动,然后它将遍历所有bean并为您写出来!

你做到了! 您系好第一双Spring Boot。

展示靴子

为了进行销售或只是吸引眼球,此示例抛出了标有@BeanCommandLineRunner方法,该方法在启动时运行。 它检索由您的应用程序创建或由于Spring Boot而自动添加的所有bean。 它对它们进行排序并打印出来。 您可以放入其他启动信息,也可以做其他一些工作。

在线引导

在购买合适的靴子时,我们希望能搭配我们最喜欢的牛仔裤或女士的漂亮裙子搭配漂亮的裙子,对吗? Well Boot提供了一种简单的方法来将您的靴子推向世界,供其他人查看。 好吧,我们需要雇用一个Controller来做到这一点。 多么方便:我们下载的Spring代码已经为我们准备好了。

package hello;import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;@RestController
public class HelloController {@RequestMapping("/")public String index() {return "Greetings from Spring Boot!";}}

这里最重要的两件事是您看到的@RestController@RequestMapping批注。

@RestController是一个下意识的消息,它是午睡时间。 Errr,抱歉,我正在困倦。 不,这意味着我们有一个RESTful控制器在等待,监视,监听应用程序对其的调用。

@RequestMapping是调用特定方法的URL名称。 因此,在给定示例的情况下,它是应用程序的“索引”。 这里的示例只是返回文本。 这是很酷的事情; 我们可以在这里退回几乎所有您想退回的东西。

JSON在Argo上有不错的靴子吗?

最后,我认为大多数Spring Boot冒险者现在正在做的就是将其用作其应用程序的端点。 关于如何完成此操作,有很多不同的选择。 通过JSON提供的数据或XML解决方案。 我们现在只关注一个。 Jackson是一个很好的轻量级工具,用于完成对调用场景的JSON输出。

默认情况下,在Spring Boot的类路径中可以方便地找到Jackson。 自己检查一下:

mvn dependency:tree`

要么

./gradlew dependencies

让我们已经为这些靴子添加了一些赞誉吧! 在源代码中的任何位置添加一个新类。 只是一个POJO。

public class Greeting {private final long id;private final String content;public Greeting(long id, String content) {this.id = id;this.content = content;}public long getId() {return id;}public String getContent() {return content;}}

现在,回到你的 控制器并将其粘贴到:

private static final String template = "Ahoy, %s!";
private final AtomicLong counter = new AtomicLong();@RequestMapping(method=RequestMethod.GET)public @ResponseBody Greeting sayHello(@RequestParam(value="name", required=false, defaultValue="Argonaut") String name) {return new Greeting(counter.incrementAndGet(), String.format(template, name));}

现在重新启动您的启动应用程序。 返回浏览器,而不是/转到hello-world 。 您应该会看到一些很棒的JSON输出。 如果您这样做了,那么您就可以在Spring Boot和Jackson中创建端点了。

Argo需要另一个港口

由于许多人正在编写端点并且有多个站点在运行,因此您可能需要将默认端口8080更改为其他端口。 因此,最简单,最直接的方法是将application.properties文件添加到src/main/resources

所有需要的是这样的:

server.port = 8090

十分简单。 称重锚并起航!

新兵训练营总结

因此,您可以看到使用Spring Boot进行操作有多么容易。 我们不必在配置方面做很多事情就能真正着急地启动和运行。 我们避免了可怕的XML文件,只添加了一个小的属性文件。 内置的堆栈非常好。 对于那些希望为我们的闪亮前端提供端点的人,Jackson提供了一种易于使用的JSON转换。

再次,Spring似乎找到了一种使开发人员的生活更简单的方法。 该博客故意保持简单。 我们的新靴子有许多不同的冒险途径。 无论您是想利用微服务,构建传统的整体架构,还是要面对其他麻烦,您都可以看到Spring Boot如何使您快速着手。

翻译自: https://www.javacodegeeks.com/2017/01/spring-boot-right-boot.html

Spring Boot –适合您的靴子!相关推荐

  1. 下雨天,适合学「Spring Boot」

    北方的闷热,让不少小伙伴盼着下雨,前几天北京下了场大雨,杭州也紧跟这下了场雨,就在昨天原本还很闷热的天,突然就飘泼大雨了.今天也断断续续的下着小雨,一觉醒来已经是10点了.有句话说:懒惰是人的天性,最 ...

  2. RabbitMQ使用及与spring boot整合

    1.MQ 消息队列(Message Queue,简称MQ)--应用程序和应用程序之间的通信方法 应用:不同进程Process/线程Thread之间通信 比较流行的中间件: ActiveMQ Rabbi ...

  3. Guava Cache本地缓存在 Spring Boot应用中的实践

    概述 在如今高并发的互联网应用中,缓存的地位举足轻重,对提升程序性能帮助不小.而 3.x开始的 Spring也引入了对 Cache的支持,那对于如今发展得如火如荼的 Spring Boot来说自然也是 ...

  4. Spring Boot 学习(1)

    文 by / 林本托 Tip 做一个终身学习的人. 代码地址: https://github.com/iqcz/Springbootdemo Spring Boot 初体验 Spring Boot 包 ...

  5. Spring Boot启动过程(二)

    书接上篇 该说refreshContext(context)了,首先是判断context是否是AbstractApplicationContext派生类的实例,之后调用了强转为AbstractAppl ...

  6. Spring Boot 实现通用 Auth 认证的 4 种方式

    欢迎关注方志朋的博客,回复"666"获面试宝典 文章介绍了spring-boot中实现通用auth的四种方式,包括 传统AOP.拦截器.参数解析器和过滤器,并提供了对应的实例代码, ...

  7. ELK 处理 Spring Boot 日志,妙!

    以下文章来源方志朋的博客,回复"666"获面试宝典 在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常 ...

  8. Spring Boot神操作-多个数据源Service层封装

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:@pdai pdai.tech/md/spring/spri ...

  9. Spring Boot骚操作-多数据源Service层封装

    原文:https://www.pdai.tech/md/spring/springboot-data-multi.html mysql, es, mongodb 三个数据源用配置文件方式连接,JPA只 ...

最新文章

  1. iOS开发系列--让你的应用“动”起来
  2. 关于ArrayList的几大问题,看完还不懂来打我!
  3. 笔记本电脑如何像手机那样显示最近运行程序:三指上滑;以及如何滚动屏幕:双指上下滑
  4. python 高阶函数
  5. 他的车队低调拿掉安全员,现在用10亿新融资惊艳了所有人
  6. 图像拼接 python c++
  7. 文巾解题 278. 第一个错误的版本
  8. 自然语言处理库——Gensim之Word2vec
  9. 买卖股票的最佳时机IV
  10. Android ROM定制 入门到精通(含改机、移植、破解网络层、root原理、植入hook框架,反安全监测等)
  11. matlab smulink笔记03——过零检测
  12. 【UOJ168】元旦老人与丛林【图论证明】【最大权闭合子图】【dinic动态推流】
  13. 系统新模块增加需要哪些步骤_人工智能之父的问题解决策略:模块化
  14. 软件开发工具【十】 之 调试程序
  15. 682. Baseball Game 棒球游戏 按字母处理
  16. 我所使用的五大返利网站使用比较
  17. 实践致知第7享:Windows如何设置文件的默认打开方式?
  18. 【java实现二维码的生成(源码)】
  19. SitePoint播客#94:新年快乐!
  20. Mysql-mmm高可用集群(有mysql环境)

热门文章

  1. 跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局
  2. jQuery Raty星级评分插件使用方法
  3. 达到年薪 40W 必需掌握的技术。
  4. 关于区块链技术的10本书
  5. Oracle入门(十一)之SQL
  6. 请设计一个栈,实现十进制数转任意进制数。
  7. java实现遍历树形菜单方法——实体类VoteTree
  8. hibernate注解实体类(Dept.java)
  9. python queue 生产者 消费者_【python】-- 队列(Queue)、生产者消费者模型
  10. 小微企业名录查询系统_欢迎访问辽宁小微企业名录系统