当前位置: 首页 > news >正文

烟台做网站联系电话常熟市住房建设局网站

烟台做网站联系电话,常熟市住房建设局网站,欧洲vodafonewifi18mmpcc,镇江网站推广引言 在上一篇文章中#xff0c;我们详细探讨了 Spring 框架中的事件监听与发布机制。本文将转向 Spring Boot#xff0c;介绍如何快速入门 Spring Boot#xff0c;并深入探讨其核心原理。Spring Boot 是由 Pivotal 团队提供的全新框架#xff0c;旨在简化 Spring 应用的初…引言 在上一篇文章中我们详细探讨了 Spring 框架中的事件监听与发布机制。本文将转向 Spring Boot介绍如何快速入门 Spring Boot并深入探讨其核心原理。Spring Boot 是由 Pivotal 团队提供的全新框架旨在简化 Spring 应用的初始搭建以及开发过程。它通过约定大于配置的理念极大地减少了配置的工作量使得开发者可以更专注于业务逻辑的实现。 1. Spring Boot 快速入门 1.1 什么是 Spring Boot Spring Boot 是 Spring 框架的一个扩展旨在简化新 Spring 应用的初始搭建和开发过程。它通过自动配置、起步依赖和生产就绪功能使得开发者可以快速创建独立的、生产级别的基于 Spring 框架的应用程序。 1.2 创建第一个 Spring Boot 应用 1.2.1 使用 Spring Initializr Spring Initializr 是一个 web 工具可以帮助开发者快速生成 Spring Boot 项目的初始结构。以下是使用 Spring Initializr 创建项目的步骤 访问 Spring Initializr。选择项目的基本信息如项目类型Maven 或 Gradle、语言Java、Kotlin 或 Groovy、Spring Boot 版本等。添加所需的依赖如 Web、Thymeleaf、JPA 等。点击“Generate”按钮下载项目压缩包。解压项目压缩包并使用 IDE 打开项目。 1.2.2 项目结构 生成的项目结构通常如下所示 my-spring-boot-app/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/example/demo/ │ │ │ └── DemoApplication.java │ │ └── resources/ │ │ ├── application.properties │ │ └── static/ │ │ └── templates/ │ └── test/ │ └── java/ │ └── com/example/demo/ │ └── DemoApplicationTests.java ├── pom.xml (或 build.gradle) 1.2.3 编写一个简单的 REST API 在 DemoApplication.java 中添加一个简单的 REST 控制器 package com.example.demo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;SpringBootApplication public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}RestControllerpublic class HelloController {GetMapping(/hello)public String hello() {return Hello, Spring Boot!;}} } 运行 DemoApplication 类中的 main 方法启动 Spring Boot 应用。访问 http://localhost:8080/hello你应该会看到 Hello, Spring Boot! 的响应。 2. Spring Boot 核心原理 2.1 自动配置 Spring Boot 的自动配置功能是其最强大的特性之一。它通过扫描类路径中的 jar 包自动配置 Spring 应用所需的各种 Bean。自动配置的实现主要依赖于 SpringBootApplication 注解和 EnableAutoConfiguration 注解。 2.1.1 SpringBootApplication 注解 SpringBootApplication 注解是一个组合注解包含了以下几个注解 Configuration标记当前类为配置类。EnableAutoConfiguration启用自动配置。ComponentScan启用组件扫描自动发现并注册 Bean。 2.1.2 EnableAutoConfiguration 注解 EnableAutoConfiguration 注解会触发 Spring Boot 的自动配置机制。Spring Boot 会根据类路径中的 jar 包和 application.properties 文件中的配置自动配置各种 Bean。例如如果类路径中存在 H2 数据库的 jar 包Spring Boot 会自动配置一个嵌入式的 H2 数据库。 2.2 起步依赖 起步依赖Starter Dependencies是 Spring Boot 提供的一组依赖管理工具旨在简化依赖管理。每个起步依赖都包含了一组常用的依赖开发者只需在项目中声明所需的起步依赖即可快速引入一组相关的依赖。 例如要创建一个 Web 应用只需在 pom.xml 中添加以下依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency 这将自动引入 Spring MVC、Tomcat、Jackson 等依赖。 2.3 生产就绪功能 Spring Boot 提供了一系列生产就绪功能如外部化配置、健康检查、度量指标等这些功能可以帮助开发者更好地管理和监控应用。 2.3.1 外部化配置 Spring Boot 支持多种外部化配置方式如 application.properties 文件、环境变量、命令行参数等。通过外部化配置开发者可以轻松地在不同环境中切换配置。 例如在 application.properties 文件中配置数据库连接 spring.datasource.urljdbc:mysql://localhost:3306/mydb spring.datasource.usernameroot spring.datasource.passwordroot spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver 2.3.2 健康检查 Spring Boot Actuator 是一个生产就绪功能模块提供了多种监控和管理端点。通过启用 Actuator开发者可以轻松地监控应用的健康状况、度量指标等。 例如启用健康检查端点 import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties; import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties; import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType; import org.springframework.boot.actuate.endpoint.ExposableEndpoint; import org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver; import org.springframework.boot.actuate.endpoint.web.EndpointMapping; import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes; import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint; import org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier; import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpoint; import org.springframework.boot.actuate.health.HealthEndpoint; import org.springframework.boot.actuate.health.HealthEndpointGroup; import org.springframework.boot.actuate.health.HealthEndpointGroups; import org.springframework.boot.actuate.health.HealthEndpointWebExtension; import org.springframework.boot.actuate.health.ReactiveHealthContributorRegistry; import org.springframework.boot.actuate.health.ReactiveHealthIndicator; import org.springframework.boot.actuate.health.StatusAggregator; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.http.MediaType; import org.springframework.util.Assert;import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors;Configuration(proxyBeanMethods false) ConditionalOnWebApplication(type ConditionalOnWebApplication.Type.REACTIVE) ConditionalOnClass({ ReactiveHealthContributorRegistry.class, HealthEndpoint.class }) ConditionalOnProperty(prefix management.health, name enabled, matchIfMissing true) EnableConfigurationProperties({ HealthEndpointProperties.class, WebEndpointProperties.class, CorsEndpointProperties.class }) public class HealthEndpointConfiguration {BeanConditionalOnMissingBeanpublic HealthEndpoint healthEndpoint(HealthContributorRegistry healthContributorRegistry,StatusAggregator statusAggregator) {return new HealthEndpoint(healthContributorRegistry, statusAggregator);}BeanConditionalOnMissingBeanpublic HealthEndpointWebExtension healthEndpointWebExtension(HealthEndpoint healthEndpoint,HealthEndpointProperties properties,Environment environment,EndpointMediaTypes endpointMediaTypes,CorsEndpointProperties corsProperties,WebEndpointProperties webEndpointProperties,ListReactiveHealthIndicator reactiveHealthIndicators,ListHealthEndpointGroup groups) {MapString, HealthEndpointGroup groupMap groups.stream().collect(Collectors.toMap(HealthEndpointGroup::getName, (group) - group));HealthEndpointGroups healthEndpointGroups new HealthEndpointGroups(groupMap);ReactiveHealthContributorRegistry registry new ReactiveHealthContributorRegistry(reactiveHealthIndicators);return new HealthEndpointWebExtension(healthEndpoint, properties, environment, endpointMediaTypes,corsProperties, webEndpointProperties, healthEndpointGroups, registry);}ControllerEndpoint(id health)public static class HealthController {private final ExposableWebEndpoint endpoint;public HealthController(ExposableWebEndpoint endpoint) {Assert.notNull(endpoint, Endpoint must not be null);this.endpoint endpoint;}public MonoMapString, Object health(ServerWebExchange exchange) {return this.endpoint.invoke(exchange).map((response) - (MapString, Object) response.getBody());}} } 3. Spring Boot 最佳实践 3.1 保持项目结构清晰 保持项目结构清晰有助于提高代码的可读性和可维护性。建议按照以下结构组织项目 src/ ├── main/ │ ├── java/ │ │ └── com/example/demo/ │ │ ├── controller/ │ │ ├── service/ │ │ ├── repository/ │ │ ├── config/ │ │ └── DemoApplication.java │ └── resources/ │ ├── application.properties │ └── static/ │ └── templates/ └── test/└── java/└── com/example/demo/├── controller/├── service/├── repository/└── DemoApplicationTests.java 3.2 使用配置文件管理环境变量 使用 application.properties 文件管理环境变量可以轻松地在不同环境中切换配置。建议为不同的环境创建不同的配置文件如 application-dev.properties、application-prod.properties 等。 3.3 使用 Actuator 监控应用 启用 Actuator 可以帮助开发者更好地监控和管理应用。建议启用以下端点 /actuator/health健康检查/actuator/metrics度量指标/actuator/info应用信息 3.4 使用 Docker 部署应用 使用 Docker 部署应用可以提高部署的可靠性和一致性。建议为应用创建一个 Dockerfile并使用 Docker Compose 管理多服务应用。 4. Spring Boot 面试题解析 4.1 什么是 Spring Boot 答案Spring Boot 是 Spring 框架的一个扩展旨在简化新 Spring 应用的初始搭建和开发过程。它通过自动配置、起步依赖和生产就绪功能使得开发者可以快速创建独立的、生产级别的基于 Spring 框架的应用程序。 4.2 Spring Boot 的核心特性有哪些 答案 自动配置根据类路径中的 jar 包和 application.properties 文件中的配置自动配置各种 Bean。起步依赖简化依赖管理通过声明起步依赖快速引入一组相关的依赖。生产就绪功能提供一系列生产就绪功能如外部化配置、健康检查、度量指标等。 4.3 SpringBootApplication 注解的作用是什么 答案SpringBootApplication 注解是一个组合注解包含了以下几个注解 Configuration标记当前类为配置类。EnableAutoConfiguration启用自动配置。ComponentScan启用组件扫描自动发现并注册 Bean。 4.4 如何启用 Actuator 端点 答案在 pom.xml 中添加 spring-boot-starter-actuator 依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId /dependency 然后在 application.properties 文件中启用所需的端点例如 management.endpoints.web.exposure.includehealth,info,metrics 4.5 如何使用 Docker 部署 Spring Boot 应用 答案首先创建一个 Dockerfile 文件内容如下 FROM openjdk:11-jre-slim COPY target/my-spring-boot-app.jar app.jar ENTRYPOINT [java,-jar,/app.jar] 然后构建 Docker 镜像并运行容器 docker build -t my-spring-boot-app . docker run -p 8080:8080 my-spring-boot-app 5. 总结 通过本文我们详细介绍了 Spring Boot 的快速入门方法并深入探讨了其核心原理包括自动配置、起步依赖和生产就绪功能。理解这些核心原理对于开发高效、可靠的 Spring Boot 应用非常重要。希望本文对你有所帮助欢迎继续关注后续文章 6. 扩展阅读 官方文档Spring Boot Reference GuideSpring Boot 官网Spring Boot Official Website书籍推荐《Spring Boot in Action》、《Spring Boot Recipes》 如果你有任何疑问或建议欢迎在评论区留言交流
http://www.w-s-a.com/news/789926/

相关文章:

  • 商务网站建设找哪家本地推广找哪些网站
  • 手机h5网站企业网站管理系统的运维服务
  • 南京建设网站公司网站游戏怎么制作
  • 成都建站程序苏州市建设局招标网站首页
  • 自助建网站市场公司起名大全2020最新版的
  • dede网站模板北京 网站开发 大兴
  • 网站优化师招聘建设牌安全带官方网站
  • 南京网站建设网站做视频网站用什么格式
  • 普陀做网站价格wordpress接入qq互联
  • 网站2级页面怎么做杭州哪家做外贸网站
  • 做了静态网站怎么显示在互联网上营销策划与运营方案
  • 常见的英文网站国内军事新闻大事件
  • 傻瓜式做网站程序微信怎么开公众号
  • c2c电商网站wordpress仿36kr主题
  • 网站建设公司开发免费图纸网站
  • 一个网站页面设计多少钱做预算查价格的网站是哪个
  • 鳌江哪里有做网站百度短链接在线生成
  • 有没有什么做水利资料的网站杭州建设信用平台
  • 电子商务网站建设及推广方案论文wordpress无法显示文章
  • 建设工程监理网站前端和后端分别需要学什么
  • 公司网站制作效果国内最好的在线网站建设
  • 徐州好点的做网站的公司有哪些wordpress 工具插件下载
  • 如何用云服务器建设网站微网站免费开发平台
  • 官网的网站设计公司做网站需要准备哪些东西
  • 程序员和做网站那个好找工作wordpress二维码 插件
  • 湖南城市建设技术学院官方网站青海省建设局网站
  • 响应式网站有什么区别百度网站官网
  • 金华企业自助建站系统长沙建站公司模板
  • 云主机 做网站友情链接网站
  • 定制型网站设计天津网站模板建站