SpringBoot-基于spring的约定优于配置

springBoot和spring的关系

首先明确SpringBoot是基于Spring的。在我们实际使用Spring Boot进行项目开发的过程中,往往只需要几个很简单的注解配置就能够将应用启动运行了,相比于传统的Spring项目而已,这种提升大大地提高了我们的研发效率。然而,这种便捷性则是通过高度地上层封装来实现的。那么这种高度的生成封装是怎么来的呢?

JDk1.5推出注解功能以后,spring框架实现了大量的注解来替代原有的基于xml的配置,主要用于配置管理、Bean的注入以及AOP等相关功能的实现。然而,随着Spring注解的数量越来越多,并且被大量的使用,尤其是相同的多个注解会被大量重复地用到各个类或者方法中。这样就导致了繁琐的配置及大量冗余的代码

如何解决冗余呢?springBoot就是为此而生,通过定义一些新的注解对已有注解进行组合,这样对于大部分通用场景,只需要引入一个新的注解,就自动包含了与之相关的其他spring注解。

而且关于JDK的注解如果想要注解到别的注解上,就需要将其定义为元注解,所谓的元注解,就是可以注解到其他注解上的注解,被注解的注解就是我们上面说到的组合注解。而Spring框架的很多注解都是可以作为元注解的,并且Spring框架本身也实现了很多组合注解,例如我们常用的注解@Configuration就是一个这样的组合注解。因此,有了这样一个条件Spring Boot的实现才有了基础条件!

所以springBoot框架的本质上就是通过组合注解的方式实现了诸多spring注解的组合,从而极大地简化了spring框架本身的繁琐配置,实现快速的集成和开发。

约定大于配置

这是形容springBoot最常用的描述,也有人解读为:约定大于配置,约定好于配置,习惯大于配置等。

用springBoot框架开发程序时,框架提供的默认值会让我们的项目开发起来效率更快,如果默认值满足不了我们的需求,我们可以使用Properties配置文件和YAML配置文件来重写默认值来满足我们的需求,所以约定大于配置,是说通过约定来较少配置,从而提升开发效率。

而且约定大于配置,并不是一种新的思想,在JDK5.0发布,采用元数据 ,引入注解的概念(也称之为标注),就代表简化配置的开始,就是初期的一种 “约定优于配置” 的体现;所以约定优于配置这一设计理念,从 Spring 的注解版本就已经开始了。引入注解就是为了减少一些默认配置,引入注解也就代表着简化配置的开始,官方说基于 spring 的基础就是这个事实。

那么SpringBoot中有哪些约定呢?

1、Maven的目录结构。默认有resources文件夹,存放资源配置文件。src-main-resources,src-main-java。默认的编译生成的类都在targe文件夹下面

2、spring boot默认的配置文件必须是,也只能是application.命名的yml文件或者properties文件,且唯一

3、application.yml中默认属性。数据库连接信息必须是以spring: datasource: 为前缀;多环境配置。该属性可以根据运行环境自动读取不同的配置文件;端口号、请求路径等

4、SpringBoot 约定,当你导入 spring-boot-starter-web 后,就约定了你是一个 web 开发环境。就约定了你会使用 SpringMVC。至于其它的也约定你会需要,都给你默认导入进来。当你觉得不合适的时候,可以用更少的改动,满足你的需要。

5、当我们导入spring-boot-starter-web后,就会自动帮我们导入springMVC的相关依赖和一个内置的tomcat容器,以及spring-boot-starter-logging依赖。这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。

6、SpringBoot 约定以 starter 的形式减少依赖,于是相继推出了不少常用的 starter。

 

还有什么约定,感谢各位予以补充。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子松的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值