前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构之Spring Boot(六十八)

微服务架构之Spring Boot(六十八)

作者头像
用户1289394
发布2022-05-23 15:42:32
4890
发布2022-05-23 15:42:32
举报
文章被收录于专栏:Java学习网

46. WebSockets

Spring Boot为嵌入式Tomcat,Jetty和Undertow提供WebSockets自动配置。如果将war文件部署到独立容器,则Spring Boot假定容器负责

其WebSocket支持的配置。

Spring Framework 为MVC Web应用程序提供了丰富的WebSocket支持,可以通过 spring-boot-starter-websocket 模块轻松访问。

WebSocket支持也可用于 响应式Web应用程序,并且需要在 spring-boot-starter-webflux 旁边包含WebSocket API:

<dependency>

<groupId>javax.websocket</groupId>

<artifactId>javax.websocket-api</artifactId>

</dependency>

47.网络服务

Spring Boot提供Web服务自动配置,因此您必须做的就是定义 Endpoints 。

该Spring Web服务功能,可以与 spring-boot-starter-webservices 模块可以轻松访问。

可以分别为您的WSDL和XSD自动创建 SimpleWsdl11Definition 和 SimpleXsdSchema beans。为此,请配置其位置,如以下示例所示:

spring.webservices.wsdl-locations=classpath:/wsdl

48.使用 WebServiceTemplate 调用Web服务

如果需要从应用程序调用远程Web服务,则可以使用 WebServiceTemplate 该类。由于 WebServiceTemplate 实例在使用之前通常需要进行自

定义,因此Spring Boot不提供任何单个自动配置的 WebServiceTemplate bean。但是,它会自动配置 WebServiceTemplateBuilder ,可用

于在需要时创建 WebServiceTemplate 实例。

以下代码显示了一个典型示例:

默认情况下, WebServiceTemplateBuilder 使用类路径上的可用HTTP客户端库检测到合适的基于HTTP的 WebServiceMessageSender 。您

还可以按如下方式自定义读取和连接超时:

@Bean

public WebServiceTemplate webServiceTemplate(WebServiceTemplateBuilder builder) {

return builder.messageSenders(new HttpWebServiceMessageSenderBuilder()

.setConnectTimeout(5000).setReadTimeout(2000).build()).build();

}

49.创建自己的自动配置

如果您在开发共享库的公司工作,或者您在开源或商业库中工作,则可能需要开发自己的自动配置。自动配置类可以捆绑在外部jar中,仍然可以

通过Spring Boot获取。

自动配置可以与“启动器”相关联,该启动器提供自动配置代码以及您将使用它的典型库。我们首先介绍了构建自己的自动配置需要了解的内

容,然后我们将继续介绍创建自定义启动器所需的 典型步骤。

可以使用演示项目来展示如何逐步创建启动器。

49.1了解自动配置Beans

在引擎盖下,自动配置使用标准 @Configuration 类实现。额外的 @Conditional 注释用于约束何时应用自动配置。通常,自动配置类使

用 @ConditionalOnClass 和 @ConditionalOnMissingBean 注释。这可确保仅在找到相关类时以及未声明自己的 @Configuration 时才应用自

动配置。

您可以浏览源代码 spring-boot-autoconfigure 以查看Spring提供的 @Configuration 类(请参阅 META-INF/spring.factories 文

件)。

49.2找到自动配置候选者

Spring Boot检查已发布jar中是否存在 META-INF/spring.factories 文件。该文件应在 EnableAutoConfiguration 键下列出您的配置类,如

以下示例所示:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

com.mycorp.libx.autoconfigure.LibXAutoConfiguration,\

com.mycorp.libx.autoconfigure.LibXWebAutoConfiguration

如果需要按特定顺序应用配置,则可以使用 @AutoConfigureAfter 或 @AutoConfigureBefore 注释。例如,如果您提供特定于Web的配置,

则可能需要在 WebMvcAutoConfiguration 之后应用您的类。

如果您想订购某些不应该彼此直接了解的自动配置,您也可以使用 @AutoConfigureOrder 。该注释与常规 @Order 注释具有相同的语义,但为

自动配置类提供了专用顺序。

自动配置,必须加载这种方式只。确保它们是在特定的包空间中定义的,特别是它们永远不是组件扫描的目标。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档