怎么做传奇网站,手机网站视频无法播放是怎么回事,互联网推广好做吗,wordpress公众账号同步您可能已经听说过Spring Boot#xff0c;这是用不到140个字符创建一个Spring Web应用程序的神奇力量#xff0c;可以在一条推文中编写这些字符#xff0c;但这到底意味着什么#xff1f; 哪些功能可以使Spring Boot具有如此强大的功能并使Spring应用程序开发如此容易#… 您可能已经听说过Spring Boot这是用不到140个字符创建一个Spring Web应用程序的神奇力量可以在一条推文中编写这些字符但这到底意味着什么 哪些功能可以使Spring Boot具有如此强大的功能并使Spring应用程序开发如此容易 好吧这就是您将在本文中学到的内容但是如果您急着让我告诉您您将详细了解Spring Boot的自动配置Starter依赖项Spring Boot CLIActuator和Spring Initializer功能。 这些功能消除了编写基于Spring的Java Web应用程序所带来的大部分痛苦和磨擦。 但是在进行详细介绍之前让我们重新回顾与基于Spring的Java开发相关的问题。 我个人希望先看到问题然后才能享受解决方案。 请记住只有经过艰苦的努力舒适才会感觉更好一顿饭也是如此饥饿时您会享受更多。 毫无疑问Spring是一个很棒的框架它可以为您做很多事情例如它为您创建了一个对象为它们提供了相关性如果Spring不存在它会带走您可能编写的许多代码但作为回报它在配置和学习方面也要求您很多。 如果您曾经在一个未开发的项目中工作过那么您从头开始启动了一个新的基于Spring的Java应用程序那么您就会知道这并不是小菜一碟。 您首先需要找到所需的所有依赖项然后是它们的兼容版本。 您还需要配置很多bean来启用一些Spring Magic。 例如如果您要创建一个基于Spring MVC的REST应用程序 该应用程序在嵌入式tomcat中支持JSON格式则您的Maven pom.xml文件例如spring-core.jarspring-mvc.jar jackson.jarembedded-tomcat.jar等请注意这是一个非常简单的设置。 Spring Boot消除了所有这些麻烦让您编写重要的代码即应用程序代码。 我提到的所有Spring Boot功能例如自动配置Starter POM或Starter依赖项以及Spring Boot CLI旨在简化Spring的Java开发。 现在让我们详细介绍这些功能中的每一个 1.自动配置 您可能曾经使用过基于Spring的Java Web应用程序该应用程序连接到关系数据库例如像H2这样的内存数据库如果是那么您可能知道需要将JdbcTemplate声明为bean并且还需要配置一个DataSource。 JdbcTempalte的依赖项。 在使用基于Java的configuration的现代Spring应用程序中您需要将以下两种方法添加到您的 配置类 Bean
public JdbcTemplate jdbcTempalte(DateSource ds){return new JdbcTempalte(ds);
}Bean
public DataSource dataSource(){return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).addScripts(ddl.sql, data.sql).build();
} 对于已经完成Spring开发的人来说这并不是什么复杂的事情但是如果您是从头开始的话可能要花几个小时甚至几天才能弄清楚。 但是更重要的是这是我们许多人编写的一段代码与我们的应用程序无关。 我的意思是该代码不是唯一的并且每个与JDBC兼容的Spring应用程序都需要它。 这就是Spring Boot AutoConfiguration出现的地方。 它检测到Classpath中存在某些Class然后自动为您配置它。 例如如果您已经将JdbcTempalte和H2.jar添加到了类路径中那么Spring Boot可以为您自动配置一个内存数据库和一个可供使用的JdbcTempatle。 您无需编写上述代码即可在DAO层中使用JdbcTemplate 。 这只是一个例子。 Spring Boot的自动配置可以做出200多种决策并通过检查JAR依赖关系自动配置许多功能。 例如如果存在spring-mvc.jar则它可以自动配置DispatcherServlet InternalViewResolver等。 如果存在JPA和Hibernate则它也可以配置它如果您具有spring-security.jar则它甚至可以配置基本安全性来保护您的应用程序。 顺便说一句当涉及到自动配置时需要深入的知识来适当地保护您的应用程序。 默认情况下自动配置功能是禁用的您需要通过在Configuration类上使用EnableAutoConfiguration或SpringBootApplication批注来启用它。 我通常会注释Main类它将与嵌入式Tomcat服务器一起运行。 从Spring Boot 1.2开始建议使用SpringBootApplication批注因为它结合了其他两个批注以使您的代码更具可读性。 简而言之Spring Boot的自动配置功能可节省大量工作并减少开发时间我强烈建议您在使用Spring Boot时使用自动配置。 2.入门级POM 尽管自动配置消除了配置通用功能的麻烦但Starter POM通过在项目中查找和添加通用依赖关系而减轻了痛苦。 为了构建一个支持Jackson的简单的基于Spring MVC的REST应用程序并在嵌入式容器中运行它您至少需要遵循以下依赖关系例如 spring-core.jar
spring-web.jar
spring-webmvc.jar
jackson-databind.jar
tomcat-embed-core.jar
tomcat-embed-el.jar
tomcat-embed-logging-juil.jar 通过使用Spring Boot Starter POM或启动程序依赖项功能只需在pom.xml中添加spring-boot-starter-web依赖项就可以获取所有这些信息 因此您无需添加所有这些依赖项并担心它们的兼容版本只需添加一个即可。 您还将更加自信地使用了久经考验的库版本将来不会出现任何不兼容性问题。 入门POM功能的另一个细微优点是您无需记住或搜索依赖项。 如果要构建Web应用程序则可以添加“ Web”启动器如果要构建 JPA应用程序可以通过按功能聚合常见的依赖项来添加“ jpa”启动程序Spring Boot使它们易于记忆和使用。 顺便说一句如果您想了解Starter POMs功能在内部如何工作那么让我告诉您所有魔术都来自Maven或Gradle的传递依赖项功能。 是Maven或Gradle提取正确版本的库Starter POM只是声明它们。 如果您想了解更多信息建议您阅读Dan Vega的Spring Boot快速应用程序开发课程。 简而言之Starter POM或Starter依赖项是Spring Boot的另一个很棒的功能它确实有助于简化Spring应用程序的开发。 就像自动配置的近亲一样您将经常一起使用它们。 3. Spring Boot CLI 在本文的第一段中我说过现在可以创建一个Java Web应用程序该应用程序可以放入推文中并且由于Groovy和Spring Boot CLI的缘故这种情况发生了。 Spring Boot CLI是Spring Boot框架提供的命令行界面可让您使用Groovy编程语言创建基于Spring的Web应用程序。 实际上Groovy和Spring Boot很好地互补Groovy的目标是使Java开发更简单而Spring Boot的目标是使Spring应用程序开发更简单并且彼此都从彼此的简单性中受益。 尽管自动配置和启动程序依赖项是Spring Boot的不可或缺的功能但是Spring CLI是可选的但还需要安装Spring CLI才能使用它。 这是Groovy和Spring Boot CLI中的一个简单的HelloWorld RESTful Web服务它即使不进行编译也可以运行如下所示 RestController
class HelloSpringBootController{RequestMapping(/)def hello() {return Hello Spring Boot CLI}
} 就这样您可以在Spring Boot CLI附带的嵌入式容器上运行它无需web.xml无需配置也无需服务器设置。 如果您想知道这一切的工作原理例如Groovy如何了解RestController和RequestMapping注释那么让我告诉您Spring Boot CLI利用自动配置和启动程序POMs功能让您专注于仅编写应用程序代码 Spring Boot CLI检测到RestController和RequestMapping已在使用中并且知道要添加到类路径中才能使其正常工作需要哪些启动器依赖项。 一旦下载了这些系列的依赖项自动配置就会自动启动并对其进行配置以供使用例如一旦spring-boot-web-starter进入图片它就会下载spring-mvc.jar然后自动配置会自动配置DispatcherServlet并启用Spring MVC。 整件事看起来像是魔术但这是现实。 4.执行器 该执行器是Spring Boot的另一个很棒的功能它可以查看正在运行的Spring Boot应用程序中发生的情况。 由于具有自动配置的所有优点因此存在不知道应用程序内部内容是什么的风险并且该风险由Spring Actuator解决。 它提供了有关生产中正在运行的应用程序的大量见解和指标。 例如通过使用Actuator您可以准确找出在Application上下文中配置了哪些bean做出了哪些自动配置决策哪些环境变量系统属性命令行参数可用于应用程序等等。 您甚至可以跟踪应用程序处理的HTTP请求以及各种有用的应用程序指标例如CPU和内存使用率垃圾收集详细信息Web请求和数据源使用率。 Spring Boot Actuator还提供了多个端点来检索此数据例如您可以使用RESTful API来获取所有这些数据或者可以使用其远程Shell功能来安全地进入应用程序内部并通过发出命令来获取所有这些信息。 它还使用JMX MBean公开了所有这些功能这意味着您可以在运行时使用JConsole之类的JMX客户端来控制它们。 同时您还需要保护对Actuator端点的访问因为它不仅会泄露机密信息而且很危险。 例如任何人都可以使用/ shutdown端点来停止您的应用程序。 不过您不必担心。 像其他任何Spring应用程序一样您可以使用Spring Security保护Actuator端点。 5. Spring Boot初始化器 Spring Initializer是Spring Boot的另一个功能可以解决项目结构方面的问题。 这是一个Web应用程序允许您使用JavaKotline或Groovy和Spring Boot生成Maven或Gradle项目。 您需要指定的只是在GUI中提供项目元数据例如项目名称组工件等。它还允许您从较大的列表中选择启动程序依赖性例如WebJPA或安全启动程序。 可以从https://start.spring.io/访问Spring Initializer项目。 创建项目后您可以下载Zip文件然后按Nelson Djalo的Spring Boot Essential课程中的说明打开到Eclipse或IntelliJ IDEA之类的IDE中。 然后您可以编辑此示例项目以放入您的代码。 根据我的经验许多Java和Spring开发人员面临的常见问题之一是启动一个项目。 他们中的许多人对于是否放置Java文件资源文件等一无所知。 尽管Maven Gradle IntelliJ IDEA和Eclipse可以帮助您提供基本的结构但您仍然需要精通这两种技能才能快速入门并且如果您不熟悉Maven或IDE那可能是一场噩梦。 Spring Boot Initaizer解决了这个问题使创建基于Spring的Java应用程序变得容易而无需真正了解Spring框架的许多内部细节。 这就是Java开发人员应该知道的Spring Boot的一些基本功能 。 这些功能确实使使用Java和Spring变得有趣且富有成效这就是为什么越来越多的公司采用Spring Boot进行Java开发的原因。 对具有Spring Boot经验的Java开发人员的需求也很高如果您正在寻找下一个Java Web开发人员的工作那么Spring Boot的技能确实会有所作为。 到目前为止非常感谢您阅读本文。 如果您喜欢这些Spring Boot功能请与您的朋友和同事分享。 如果您有任何疑问或反馈请留言 翻译自: https://www.javacodegeeks.com/2018/11/spring-features-java-developers-know.html