springboot1-2(1的补充)

Springboot复习2

spring boot概述及自动配置原理

SpringBoot的优缺点:

优点: 快速构建项目。 对主流开发框架的无配置集成。 项目可独立运行,无须外部依赖Servlet容器。 -提供运行时的应用监控。 极大的提高了开发、部署效率。 与云计算的天然集成。 缺点: 如果你不认同spring框架,也许这就是缺点。

微服务与单体应用的区别?

微服务需要部署N个应用,还需要其它外部应用支撑(注册中心、网关等),部署、运维成本较高。集群、高可用方案无需额外处理; 单体应用只需要部署一个应用即可,相对于微服务部署、运维成本较低。高可用、集群方案需要另外处理;

 

1.1 概述

Spring Boot 是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。习惯优于配置

 

1.2 为什么使用Spring boot

J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。

总结:因为它简单

 

1.3 Spring boot是什么

一站式整合所有应用框架的框架;并且完美整合Spring技术栈; https://spring.io/projects

Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用

Starters:场景启动器 (你只要导入对应的场景启动器,当前场景启动器依赖的一堆jar包,当前场景需要的jar包都给你导进去)

  @EnableAutoConfiguration //允许自动配置

 

 

1.4 Spring boot 优点

  • 快速创建独立运行的Spring项目以及与主流框架集成

  • 使用嵌入式的Servlet容器,应用无需打成WAR包

  • starters自动依赖与版本控制(场景启动器)

  • 大量的自动配置,简化开发,也可修改默认值

  • 无需配置XML,无代码生成,开箱即用

  • 准生产环境的运行时应用监控

  • 与云计算的天然集成

 

案例:

自定义配置文件时,需加入@PropertySource注解 value=配置文件名

  @Component
  @ConfigurationProperties(prefix = "person")
  @PropertySource(value = "person.properties")
  public class Person {
      @Value("${person.name}")
      private String name;
      private int age;
      private String sex;
      private Dog dog;
      private List pets;

 

 

数据效验

加入

  <!--效验的场景启动器-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
  </dependency>

效验email

  @Component
  @ConfigurationProperties(prefix = "person")
  //@PropertySource(value = "person.properties")
  @Validated
  public class Person {
      //@Value("${person.name}")
      @Email
      @NotNull
      private String name;
      /*@Value("${person.age}")*/
      private int age;
      private String sex;
      private Dog dog;
      private List pets;

image-20220727201520846

 

导入一个这个就相当于把Spring、SpringMVC,tomcat导入了

  //导入web场景启动器
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

 

image-20220727211925170

通过java代码来实现bean的注入,不再使用xml形式了

image-20220727211758582

 

@ConditionalOnMissingBean

^条件注解,如果有这个类型的bean就不再注入,没有就注入

要想测试,需要先把bean里交给sping容器管理的compent注解去掉

image-20220727213200026

程序入口注入两个加上条件注解

image-20220727213246610

控制层返回数据

image-20220727213325227

不管返回person1还是2 结果都是注入张三1

image-20220727213418138

两个条件注解去掉的话,都会注入,控制层返回谁前台就显示谁

image-20220727213606638

image-20220727213638674

image-20220727213649652

条件注解作用:由此可以看出自动配置就是根据条件注解来辅助实现的

 

posted @ 2022-07-27 21:40  为了她  阅读(27)  评论(0编辑  收藏  举报