Spring Boot的其它特性

2022-09-15 14:02:54 浏览数 (1)

1、 理解"外部化配置"

相同的应用代码可以根据所处的环境,差别化地使用外部的配置来源,可能通过Properties文件、YAML文件、环境变量或命令行参数实现。由于Spring Boot 内定PropertySource的读取顺序,命令行优先于application.propeties和YAML配置文件。

案例:读取配置文件中的属性值

修改HelloController,代码如下:

代码语言:javascript复制
@RestController
public class HelloController {

    @Value("${company}")
    private String company;

    @GetMapping("/hello")
    public String hello(){
        System.out.println(this.getClass());
        return company;
    }
}
代码语言:javascript复制
#在application.properties中添加
company=tyshcool

2、 理解"规约大于配置"

Spring Framework2.5时代开始,Spring Bean注册方式由Annotation驱动逐步替代XML文件驱动,通过@Componet及"派生"注解(如@Service)与XML元素content:componet-scanbase-package="..."/相互配合,将Spring @Component Bean扫描并注册至Spring Bean容器中。

到了Spring Framework3.0时代,新引入的Annotation @Configuration是XML配置文件的替代物。

Spring Framework4.0增加了条件化的Spring Bean装配注解@Conditional,其Value()属性可指定Condition的实现类,而Condition提供装配条件的实现逻辑。Spring Boot 在此基础之上,显著特性之一:条件化自动装配。

3、 Spring Boot作为微服务中间件

不少开发人员认为Java微服务开发的首先是Spring Boot,甚至是唯一选择。实际上微服务架构作为细粒度的SOA,并未限制实现的技术。因此,传统Java EE容器也能实现微服务。除上述框架外一个名为KummuluzEE的轻量级容器获得了Oracle大奖,可是在Java世界中Spring Boot在Java 微服务的世界里独占鳌头。

4、 Spring Boot作为Spring Cloud基础设施

尽管Spring Boot提供了丰富的功能特性。但Spring Boot 天然性地缺少快速构建分布式系统的能力.Spring官方在Spring Boot的基础之上研发出Spring Cloud,至力于为开发人员提供一些快速构建通用的分布式系统。

Spring Cloud提供的功能大多数被大型互联网公司实现。但是Spring 官方的最大优势在于其强大的API设计能力。Spring Cloud高度抽象的接口对于应用开发人员而言,不需要关心底层实现。当需要更替实现时,按需配置即可。

0 人点赞