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

写男主重生做网站的小说国内优秀公司网站

写男主重生做网站的小说,国内优秀公司网站,苏州企业网站公司都有哪些,discuz网站怎么做排名引言 在上一篇文章中#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.hkea.cn/news/14559041/

相关文章:

  • 翻译做网站好的设计网站
  • 银川怎么做网站导航类的wordpress
  • 株洲网站建设的公司怎么找成品ppt网站
  • 温州高端网站建设公司哪家好建设网站招标
  • 装饰网站模版wordpress获取文章内容
  • 沈阳建设工程质量检测中心网站苏州关键词优化seo
  • 网站降权投诉wordpress制作电商网站
  • 网站建设软硬件平台有哪些WordPress中文旅游模板
  • 1999年怎样建立企业网站网站建设下载
  • 违规网站开发 开发者如何规避风险南阳手机网站建设
  • 网站访问很慢扫码进入网站如何做
  • 安徽住房与城乡建设门户网站简网app工场在线制作
  • 网站建设是设玖壹购网站是做啥子的
  • 海珠区pc端网站建设网站访客代码js
  • 网站运营年度推广方案wordpress 本地 域名
  • 网站空间制作扁平化网站 源代码
  • 服饰网站建设 e-idea做网站需要掌握的软件
  • 网站建设维护与推广销售培训
  • 优惠劵网站怎么做企业网站建设与网页设计
  • 上海网站建设公司服务有哪些wordpress的用户名密码
  • 网站建设常熟红色简约的手机社区类网站html5响应式模板下载
  • 烟台专业网站建设免费设计软件app
  • 义乌市建设局官方网站泰安市网站建设公司
  • 做网站主页上主要放哪些内容公司效果图
  • 40万用户自助建站织梦网站地图在线生成
  • 建设一批适合青少年的网站专门查大学的网站
  • 山海关城乡建设局网站教育网站制作下载
  • 网站百度知道做网站点击挣钱不
  • 公司 网站 模板jsp网页成品免费下载
  • 网站文件夹目录结构wordpress 文章 自动生成标签