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

德州市建设局质监站网站2023年4月疫情恢复

德州市建设局质监站网站,2023年4月疫情恢复,博客网站建设方案书,wordpress 建app一、概念简述 “约定优于配置”(Convention over Configuration,简称 CoC)是一种软件设计理念,在 Spring Boot 框架中得到了充分体现。该理念倡导开发人员遵循一套预先定义好的约定,从而减少针对通用功能的显式配置。这…

一、概念简述

“约定优于配置”(Convention over Configuration,简称 CoC)是一种软件设计理念,在 Spring Boot 框架中得到了充分体现。该理念倡导开发人员遵循一套预先定义好的约定,从而减少针对通用功能的显式配置。这样,开发人员能够将更多精力聚焦于业务逻辑的实现,而非花费大量时间在繁琐的配置文件编写上。

二、在 Spring Boot 中的具体体现

1. 项目结构约定

Spring Boot 推荐采用特定的项目结构,例如典型的 Maven 或 Gradle 项目结构:

收起

plaintext

src/
├── main/
│   ├── java/
│   │   └── com/
│   │       └── example/
│   │           └── myproject/
│   │               ├── MyProjectApplication.java
│   │               ├── controller/
│   │               ├── service/
│   │               └── repository/
│   └── resources/
│       ├── application.properties
│       └── static/
│           └── css/
│               └── styles.css
│       └── templates/
│           └── index.html
└── test/└── java/└── com/└── example/└── myproject/└── MyProjectApplicationTests.java

在这种结构下,src/main/java 存放 Java 源代码,src/main/resources 存放配置文件、静态资源和模板文件等。MyProjectApplication.java 作为 Spring Boot 应用的主启动类,位于根包下。这种约定使得项目结构清晰,开发人员能够快速定位和管理不同类型的文件。

2. 自动配置机制

Spring Boot 的自动配置是 “约定优于配置” 的核心体现。通过大量的条件化配置类(@Conditional 注解实现),Spring Boot 能够根据项目的依赖情况自动配置许多常见的组件。例如,如果项目依赖了 spring-boot-starter-web,Spring Boot 会自动配置好 Web 开发所需的 Servlet 容器(如 Tomcat)、Spring MVC 等相关组件,无需开发人员手动编写大量的 XML 配置或 Java 配置类来进行初始化。

收起

java

@Configuration
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class,ValidationAutoConfiguration.class })
public class WebMvcAutoConfiguration {// 配置相关代码
}

上述代码展示了 WebMvcAutoConfiguration 类,它通过 @ConditionalOnClass 等注解判断相关类是否存在于类路径中,从而决定是否自动配置 Spring MVC 相关功能。

3. 配置文件约定

Spring Boot 使用 application.properties 或 application.yml 作为默认的配置文件。在这些文件中,开发人员可以对应用的各种属性进行配置,而且配置属性遵循一定的命名约定。例如,配置数据源时,使用 spring.datasource.urlspring.datasource.username 和 spring.datasource.password 等属性。这种统一的命名约定使得配置清晰易懂,并且与 Spring Boot 的自动配置机制紧密结合。

收起

properties

# application.properties 示例
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

yaml

# application.yml 示例
spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: rootpassword: passwordjpa:database-platform: org.hibernate.dialect.MySQL5InnoDBDialect

4. 依赖管理约定

Spring Boot 提供了一系列的 Starter POMs,这些 Starter 定义了项目所需的一组相关依赖。开发人员只需引入相应的 Starter,Spring Boot 就能确保这些依赖的版本兼容性。例如,spring-boot-starter-data-jpa Starter 包含了使用 Spring Data JPA 进行数据库操作所需的依赖,如 Hibernate、JDBC 驱动等,并且会自动管理这些依赖的版本。

收起

xml

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

在 Gradle 中:

收起

groovy

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

三、优势

  1. 提高开发效率:减少了开发人员编写配置文件的工作量,使得开发人员能够更快地搭建项目并开始实现业务逻辑。例如,在开发一个简单的 Spring Boot Web 应用时,只需引入 spring-boot-starter-web 依赖,即可快速拥有一个可用的 Web 服务,无需手动配置 Servlet 容器、Spring MVC 等复杂组件。
  2. 项目结构清晰:统一的项目结构约定使得代码的组织和维护更加容易。不同开发人员接手项目时,能够迅速熟悉项目的架构和文件布局,降低了学习成本。
  3. 减少配置错误:由于遵循约定,配置的一致性得到保障,减少了因配置不当导致的错误。例如,在配置数据源时,按照 Spring Boot 的约定命名属性,避免了因属性名拼写错误而引发的连接失败等问题。
  4. 便于团队协作:团队成员遵循相同的约定进行开发,使得代码风格和项目结构保持一致,有利于代码的审查和维护,提高了团队协作的效率。

四、局限性

  1. 灵活性受限:对于一些特殊的业务需求或与约定不符的场景,可能需要花费额外的精力来打破约定进行定制化配置。例如,当项目需要使用非标准的项目结构或自定义的配置属性命名方式时,可能需要更多的配置和代码调整。
  2. 学习成本:虽然 Spring Boot 的约定本身并不复杂,但对于初学者来说,理解和掌握这些约定仍需要一定的时间。特别是在面对自动配置机制时,可能需要深入了解其原理才能更好地进行调试和定制化开发。
  3. 版本兼容性:尽管 Spring Boot 通过 Starter 管理依赖版本,但在引入一些第三方库时,可能会出现与 Spring Boot 自动配置的版本不兼容问题。这需要开发人员对依赖管理有更深入的了解,以解决潜在的版本冲突。

综上所述,Spring Boot 的 “约定优于配置” 原则极大地简化了 Spring 应用的开发过程,提高了开发效率和项目的可维护性。尽管存在一些局限性,但在大多数情况下,它为开发人员提供了一种高效、便捷的开发方式,尤其适用于快速迭代的项目开发场景。

http://www.dtcms.com/wzjs/505765.html

相关文章:

  • 重庆专业网站建设公司哪家好谷歌香港google搜索引擎入口
  • 家用电脑桌面做网站营业推广策略有哪些
  • 做app还是做网站合适6电子商务网络营销
  • 重庆h5网站建设模板商务软文写作范文200字
  • 怎么查网站的备案号谷歌搜索引擎大全
  • 做商城网站公司百度搜索引擎seo
  • 推广 高端网站建设郑州seo培训
  • 网站建设的功能都需要有哪些方面刷关键词排名seo软件软件
  • 上海网站建设免费推b站视频推广怎么买
  • wordpress msn spaceseo同行网站
  • 建筑做地图分析的网站优化网站的目的
  • 自助网站建设方法怎么开发一款app软件
  • 17做网店这个网站好不好手机关键词排名优化
  • 动态网页案例网站在线优化检测
  • 营销类网站建设需要注意的问题打开百度首页
  • 海南医院网站建设湘潭网络推广
  • 网站备案更换网站优化北京seo
  • 来推网站seo是什么意思知乎
  • 怎么制作网站建设营销型网站建设
  • 做网站和做公众号seo管理软件
  • 自己做的网站如何百度能搜索搜索引擎优化的方法和技巧
  • 公司做网站多下载班级优化大师app
  • php做的网站seo智能优化公司
  • vs怎么添加图片做网站中小企业管理培训班
  • 网站建设服务费增值税多少提升网站权重的方法
  • 梅州做网站多少钱360免费建站网页链接
  • 做网站有费用吗百度下载安装到桌面
  • 无锡江阴做网站公司厦门seo搜索引擎优化
  • 北京网站制作收费标准市场调研
  • 如何建立公司网站?新闻头条今日要闻10条