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

TOP域名是什么网站网络营销方案策划案例

TOP域名是什么网站,网络营销方案策划案例,公司装修设计工程,网站站内搜索怎么做Spring Boot 详解 一、Spring Boot 概述 #xff08;一#xff09;产生背景 随着 Java 应用的日益复杂#xff0c;传统 Spring 框架在项目搭建与配置方面愈发繁琐#xff0c;大量的 XML 配置、依赖管理等工作耗费开发者诸多精力。为解决这些痛点#xff0c;Spring Boot …Spring Boot 详解 一、Spring Boot 概述 一产生背景 随着 Java 应用的日益复杂传统 Spring 框架在项目搭建与配置方面愈发繁琐大量的 XML 配置、依赖管理等工作耗费开发者诸多精力。为解决这些痛点Spring Boot 应运而生旨在简化 Spring应用的初始搭建以及开发过程让开发者能更聚焦于业务逻辑实现。 二特点与核心优势 1. 自动配置 Spring Boot 的自动配置是其一大亮点。 其核心原理基于条件注解如 Conditional 及其衍生注解以及大量的配置类。以下是部分关键源码展示 Configuration ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class }) EnableConfigurationProperties(DataSourceProperties.class) Import({ DataSourceAutoConfiguration.DataSourceInitializerConfiguration.class,DataSourceAutoConfiguration.DataSourceJmxConfiguration.class }) public class DataSourceAutoConfiguration {// 内部有诸多方法和逻辑用于根据条件判断是否要创建数据源相关的配置以及如何配置ConfigurationConditional(EmbeddedDatabaseCondition.class)ConditionalOnMissingBean({ DataSource.class, XADataSource.class })protected static class EmbeddedDatabaseConfiguration {// 比如这里根据是否存在嵌入式数据库相关类等条件来决定是否创建嵌入式数据库的配置BeanConfigurationProperties(prefix spring.datasource.embedded)public EmbeddedDatabaseFactoryBean embeddedDatabaseFactory(EmbeddedDatabaseType databaseType) {EmbeddedDatabaseFactoryBean factory new EmbeddedDatabaseFactoryBean();factory.setDatabaseType(databaseType);return factory;}} }从源码角度看像 DataSourceAutoConfiguration 这样的自动配置类会根据类路径下是否存在特定的类通过 ConditionalOnClass 判断等诸多条件来决定是否要进行数据源相关配置的创建以及初始化。Spring Boot 启动时会扫描所有的自动配置类满足条件的配置就会生效从而减少了开发者手动配置数据源等繁琐操作。在性能方面自动配置在启动阶段虽需遍历大量的配置类并判断条件但得益于条件缓存等机制后续重复启动的性能损耗不大。应用场景上适用于各种规模的 Spring 项目尤其新项目快速搭建基础环境时无需开发者深入了解每个组件的详细配置细节。 2. 起步依赖 Spring Boot 的起步依赖通过 spring-boot-starter 系列的依赖管理机制实现。 它将相关功能模块所需的依赖进行了整合打包例如 spring-boot-starter-web 会包含 Spring Web 开发所需的 Spring、Servlet、Tomcat 等相关依赖。 在 spring-boot-dependencies 这个父项目的 pom.xml 文件中有核心的依赖管理配置如下简化示意 dependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency!-- 众多其他起步依赖配置 --/dependencies /dependencyManagement这样开发者只需引入对应的起步依赖就能确保项目具备相应功能模块的完整依赖避免了版本冲突等问题。性能上减少了开发者查找和管理众多单个依赖版本的时间成本。应用场景广泛无论是小型的 API 服务开发还是大型企业级应用构建都能快速引入所需功能依赖。 三项目搭建流程 以使用 IDEA 为例新建项目时选择 Spring Initializr 模板填写项目基本信息如项目名、包名等然后在依赖选择界面勾选所需的起步依赖如 Web 开发相关依赖点击完成即可创建一个简单的 Spring Boot 项目项目结构中会自动生成启动类等基础代码方便后续开发。 二、Spring Boot 配置文件 一格式与作用 application.properties是传统的键值对格式配置文件 例如properties server:port: 8080 spring:datasource:url: jdbc:mysql://localhost:3306/test配置文件用于定制项目的各类参数涵盖服务器端口、数据库连接、日志级别等多方面是调整项目运行行为的关键所在。 二常用配置项 服务器相关配置 server.port用于指定项目启动后监听的端口号源码中在 ServerProperties 类里有对应的属性及 setter 方法部分简化源码 ConfigurationProperties(prefix server, ignoreUnknownFields true) public class ServerProperties {private int port 8080;public void setPort(int port) {this.port port;}// 还有诸多其他服务器相关属性及配置逻辑 }当修改配置文件中的 server.port 值时Spring Boot 在启动过程中会通过属性绑定机制将该值设置到 ServerProperties 类对应的 port 属性上进而影响服务器启动监听的端口。性能方面端口配置加载简单快速几乎不产生额外性能开销。应用场景为不同环境开发、测试、生产下需要切换端口时使用。 数据库连接配置像 spring.datasource.url、spring.datasource.username、spring.datasource.password 等配置项用于连接数据库。在 DataSourceAutoConfiguration 等相关配置类中会读取这些配置值来构建数据源对象其性能影响取决于数据库驱动等底层实现应用场景自然是所有需要与数据库交互的项目都需配置。 三、Spring Boot 中集成 Web 框架及内置服务器相关 一集成 Spring Web Spring Boot 集成 Spring Web 时引入 spring-boot-starter-web 起步依赖后内部通过自动配置机制完成了诸多设置。在 WebMvcAutoConfiguration 这个关键的自动配置类中部分源码展示 Configuration ConditionalOnWebApplication(type ConditionalOnWebApplication.Type.SERVLET) ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class }) ConditionalOnMissingBean(WebMvcConfigurationSupport.class) AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE 10) AutoConfigureAfter({ DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class }) public class WebMvcAutoConfiguration {// 配置了默认的 DispatcherServlet它是 Spring Web 中处理请求分发等核心逻辑的组件Beanpublic DispatcherServlet dispatcherServlet() {return new DispatcherServlet();}// 还有配置视图解析器、静态资源处理等诸多与 Web 开发紧密相关的逻辑和组件配置ConfigurationImport(EnableWebMvcConfiguration.class)public static class WebMvcAutoConfigurationAdapter extends WebMvcConfigurerAdapter {// 比如添加拦截器的配置逻辑等Overridepublic void addInterceptors(InterceptorRegistry registry) {// 具体的添加逻辑示例可自定义拦截器添加在此处}} }从源码可知它会根据条件判断项目是否是基于 Servlet 的 Web 应用等情况自动创建 DispatcherServlet 等核心组件并配置相关的拦截器、视图解析器等方便开发者快速开展 Web 开发。性能上由于自动配置了常用的高效处理逻辑在处理常规 Web 请求时性能表现良好适合各类 Web 应用开发场景从小型的网站后端到大型的企业级 Web 服务都适用。 二集成 Spring WebFlux 对于 Spring WebFlux在引入 spring-boot-starter-webflux 起步依赖后同样有对应的自动配置类发挥作用基于响应式编程模型构建非阻塞式的 Web 应用。例如 WebFluxAutoConfiguration 类部分源码示意 Configuration ConditionalOnWebApplication(type ConditionalOnWebApplication.Type.REACTIVE) ConditionalOnClass({ WebFluxConfigurer.class, ReactiveWebServerFactory.class }) ConditionalOnMissingBean(WebFluxConfigurationSupport.class) AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE 10) AutoConfigureAfter({ ReactiveWebServerFactoryAutoConfiguration.class }) public class WebFluxAutoConfiguration {// 配置响应式的 Web 服务器工厂等核心组件用于创建响应式的服务器实例Beanpublic ReactiveWebServerFactory reactiveWebServerFactory() {// 根据具体条件比如配置选择创建不同类型如 Netty、Tomcat 等支持的响应式模式的服务器工厂return new DefaultReactiveWebServerFactory();}// 配置路由等响应式 Web 相关逻辑使得请求能正确路由到对应的处理器方法ConfigurationImport(EnableWebFluxConfiguration.class)public static class WebFluxAutoConfigurationAdapter extends WebFluxConfigurerAdapter {Overridepublic void configureRoutes(RouterFunctionRegistration registration) {// 自定义路由配置逻辑示例可将请求映射到具体的响应式处理器函数上}} }其性能优势在于应对高并发场景时基于非阻塞的 I/O 模型能更高效地利用系统资源减少线程阻塞等待时间。应用场景多集中在需要处理大量并发请求且对响应及时性要求高的场景比如实时数据推送、大规模 API 网关等项目。 三内置服务器的切换及配置方法 Spring Boot 内置了 Tomcat、Jetty、Undertow 等服务器。以切换服务器为例在 pom.xml 文件中排除默认的服务器依赖如排除 Tomcat 依赖再引入想要使用的服务器依赖即可实现切换。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdorg.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration/artifactId/exclusionexclusiongroupIdorg.apache.tomcat.embed/groupIdartifactIdtomcat-embed-core/artifactId/exclusion/exclusions /dependency dependencygroupIdorg.eclipse.jetty/groupIdartifactIdjetty-server/artifactIdversion9.4.46.v20220331/version /dependency在源码层面ServletWebServerFactoryAutoConfiguration 等配置类会根据项目依赖情况创建对应的服务器实例如 TomcatServletWebServerFactory 创建 Tomcat 服务器实例切换依赖就改变了实例化的服务器类型。不同服务器在性能上各有优劣Tomcat 通用性强、应用广泛Jetty 启动快在轻量级应用中有优势Undertow 在高并发下性能出色。应用场景可根据项目对性能、资源占用等方面的需求来选择切换使用。 Spring Boot 通过其强大的自动配置、方便的配置文件以及灵活的 Web 框架集成与内置服务器管理等功能极大地简化了 Spring 应用开发过程在众多 Java 项目开发场景中都有着广泛且重要的应用。
http://www.dnsts.com.cn/news/27314.html

相关文章:

  • 如何去掉网站后缀wordpress响应式网站模板的特点
  • 直播app开发哪家好深圳seo优化公司唯八seo
  • 轻量应用服务器做网站屋顶平台设计效果图大全
  • jsp网站开发工资上海短期网站建设培训
  • 滨江做网站建筑设计网站issuu
  • 家用电器销售的网站开发网站中链接怎么做的
  • 有没有做相册的网站黄骅港务集团
  • 怎么用ps做购物网站广东省住房和城乡建设局网站
  • wordpress收购企业seo外包
  • 网站建设后的心得怎么卸载安装好的wordpress
  • html5 做网站在线logo免费设计生成器标智客
  • 重庆城市管理学院网站男女朋友在一起做那个的网站
  • wordpress网站上传到服务器衡水专业制作网站
  • 没有icp备案的ip地址访问的网站会被各搜索引擎收录吗做苗木网站哪家做得好
  • 名师工作室网站建设巨腾网站建设
  • 网站建设有什么要求asp网站开发设计文档
  • 营销软件站网站的设计思想
  • seo建站淘客建设香帅摩托车官网
  • 广东企业网站建设策划同一网站能否同时运行php和asp
  • 郑州上海做网站的公司学编程的正规学校
  • 大型网络建站公司搜索网站仿站
  • 学校网站建设的意义和应用网址大全有哪些
  • 网站制作需要学多久js网站模板免费下载
  • 青岛圭谷网站建设公司郑州seo外包v1
  • 网站开发怎么使用维语山西省吕梁市有哪些县
  • 做网站需要的带宽上行还是下行企业网查询官网在线登录入口
  • 做网站如何更新百度快照个人网站可以不备案吗
  • 中国优秀的企业网站微网站风格
  • 南京网站推广价格上饶市做网站
  • 新手制作网站wordpress如何装模板