zoukankan      html  css  js  c++  java
  • java高级架构师教程-Spring Boot快速入门

    图灵学院  java高级架构师教程 Spring Boot快速入门

     

    案例概述

    Spring Boot是对Spring平台的一种过于注重常规配置的添加——对于以最少的工作量开始并创建独立的、产品级的应用程序非常有用。

    本文我们将介绍一些核心配置,前端,快速数据操作和异常处理。

    设置

    首先,让我们使用Spring Initializr为我们的项目生成基础。

    生成的项目依赖于Boot父级:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    最初的依赖关系非常简单:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    应用程序配置

    接下来,我们将为我们的应用程序配置一个简单的主类:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    注意我们如何使用@SpringBootApplication作为我们的主要应用程序配置类; 在幕后,这相当于@Configuration,@EnableAutoConfiguration和@ComponentScan在一起。

    最后,我们将定义一个简单的application.properties文件 - 现在只有一个属性:

    server.port=8081

    server.port将服务器端口从默认的8080更改为8081; 当然还有更多Spring Boot可用属性。

    简单的MVC视图

    现在让我们使用Thymeleaf添加一个简单的前端。

    首先,我们需要将spring-boot-starter-thymeleaf依赖项添加到我们的pom.xml中:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    这样就可以默认启用Thymeleaf - 无需额外配置。

    我们现在可以在application.properties中配置它:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    接下来,我们将定义一个简单的控制器和一个基本主页 - 带有欢迎消息:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    最后,这是我们的home.html:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    注意我们如何使用我们在属性中定义的属性 - 然后注入它以便我们可以在主页上显示它。

    安全

    接下来,让我们为我们的应用程序添加安全性 - 首先包括安全启动器:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    到目前为止,您希望注意到一种模式 - 大多数Spring库都可以使用简单的Boot启动程序轻松导入到我们的项目中。

    一旦spring-boot-starter-security依赖于应用程序的类路径 - 默认情况下所有端点都是安全的,使用基于Spring Security内容协商策略的httpBasic或formLogin。

    这就是为什么,如果我们在类路径上有启动器,我们通常应该通过扩展WebSecurityConfigurerAdapter类来定义我们自己的自定义安全配置:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    在我们的示例中,我们允许不受限制地访问所有端点。

    当然,Spring Security是一个广泛的主题,并且在几行配置中不容易涵盖 - 所以我绝对鼓励你深入研究Spring整合Security。

    简单的持久性

    让我们从定义我们的数据模型开始 - 一个简单的Book实体:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    和它的存储库,在这里充分利用Spring Data:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    最后,我们当然需要配置新的持久层:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    请注意,我们正在使用:

    @EnableJpaRepositories扫描指定的包以获取存储库

    @EntityScan可以获取我们的JPA实体

    为了简单起见,我们在这里使用H2内存数据库 - 这样我们在运行项目时就没有任何外部依赖关系了。

    一旦我们包含H2依赖关系,Spring Boot会自动检测它并设置我们的持久性,而不需要额外的配置,除了数据源属性:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    当然,就像安全性一样,持久性是一个比这里基本设置更广泛的话题,你应该查看Spring Persistence。

    网络和控制器

    接下来,让我们看一下Web层 - 我们将通过设置一个简单的控制器 - BookController来启动它。

    我们将实现基本的CRUD操作,通过一些简单的验证来公开Book资源:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    鉴于应用程序的这一方面是一个API,我们在这里使用@RestController注释 - 它等同于@Controller和@ResponseBody - 以便每个方法将返回的资源编组到HTTP响应中。

    只有一个值得指出的注意事项 - 我们在这里公开我们的Book实体作为我们的外部资源。这对我们这里的简单应用程序来说很好,但在实际应用程序中,您可能希望Spring REST API实体到DTO的转换

    错误处理

    现在核心应用程序已准备就绪,让我们专注于使用@ControllerAdvice 的简单集中式错误处理机制:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    除了我们在这里处理的标准异常之外,我们还使用了一个自定义异常:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    这应该让您了解这种全局异常处理机制的可能性。如果您希望看到完整的实现,请查看Spring REST中的错误处理

    请注意,默认情况下,Spring Boot还提供/错误映射。我们可以通过创建一个简单的error.html来自定义其视图:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    与Boot中的大多数其他方面一样,我们可以使用简单的属性来控制它:

    server.error.path=/error2

     

    测试

    最后,让我们测试一下我们的新Books API。

    我们将立即使用@SpringBootTest加载应用程序上下文:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    首先,我们可以尝试使用变体方法查找书籍:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    接下来,我们将测试创建一本新书:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    更新现有图书:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    删除一本书:

    java高级架构师教程,java高级培训,java架构师培训,java架构师,Spring Boot

    尽管Java架构师学习路线已经分享给大家,但有多少人能认真的去践行,这个就难说了。互联网寒冬已经到来,作为程序员,更应在此时提高自己,有着更高远的追求。

    篇幅有限,如果需要更详细的java架构师学习路线资料可加博主qq:1993712276,或者去图灵官网查看

  • 相关阅读:
    Bluetooth GATT介绍
    Bluetooth ATT介绍
    Bluetooth GAP介绍
    Bluetooth Low Energy介绍
    CC2540介绍
    DBus介绍
    802.11 MAC层
    802.11介绍
    Python资料
    Bluedroid之GKI
  • 原文地址:https://www.cnblogs.com/tulingxueyuan/p/13746390.html
Copyright © 2011-2022 走看看