SpringBoot学习(一)

SpringBoot学习(一)

1、什么是 Spring Boot?

Spring Boot 是一个开源的Java开发框架,由Pivotal团队开发,其核心目标是简化新Spring应用的初始搭建和开发流程。它以Spring框架为基础,通过自动配置和约定优于配置的原则,极大程度地减少了手动配置的工作量,使开发者能够快速构建独立、生产级别的应用程序。

Spring Boot的主要特性包括:

  1. 快速启动:内嵌了如Tomcat、Jetty或Undertow等Servlet容器,使得Spring应用可以作为一个独立的可执行JAR文件运行,无需单独部署到外部的应用服务器。

  2. 自动配置:基于类路径分析、 beans定义以及各种属性值来智能地决定需要为应用开启哪些Spring特性,避免了大量的XML或Java配置。

  3. 起步依赖(Starter Dependencies):提供了一系列便捷的依赖管理模块,只需要在项目中声明使用对应的“起步器”,即可引入相关的依赖集合,简化Maven和Gradle构建配置。

  4. 命令行界面(CLI)工具:提供了Spring Boot CLI,允许快速创建和运行Groovy应用。

  5. 健康检查与监控:内置了Actuator模块用于应用状态管理和监控。

  6. 生产就绪:包含许多用于日志记录、安全、性能指标收集等功能,确保构建的应用可以直接应用于生产环境。

通过这些特性,Spring Boot不仅降低了Spring应用的入门门槛,也提高了开发效率和维护性,成为了现代微服务架构中广泛采用的技术栈之一。

2、Springboot的优点

  1. 内置servlet容器,不需要在服务器部署 tomcat。只需要将项目打成 jar 包,使用 java -jar xxx.jar一键式启动项目
  2. SpringBoot提供了starter,把常用库聚合在一起,简化复杂的环境配置,快速搭建spring应用环境
  3. 可以快速创建独立运行的spring项目,集成主流框架
  4. 准生产环境的运行应用监控

3、SpringBoot常用注解有哪些

Spring Boot 应用启动类注解:

@SpringBootApplication:这是Spring Boot应用的主入口类上的注解,它组合了@Configuration(配置类)、@EnableAutoConfiguration(自动配置)和@ComponentScan(组件扫描)的功能。

Spring MVC 控制器相关注解:

@RestController :表示这是一个RESTful风格的控制器,自动将返回的对象转换为JSON响应
@RequestMapping("/api/users") :绑定URL路径到控制器类级别
@GetMapping("/{id}") :处理GET请求,根据用户ID获取用户信息
@PostMapping :处理POST请求,创建新用户

Spring Data JPA 相关注解:

@Entity :在实体类上标注,表示该类是一个JPA实体
@Id:这是一个标记注解,表示该字段(这里是id字段)是实体类的主键。在数据库表中,主键是唯一标识每条记录的字段。
@GeneratedValue(strategy = GenerationType.IDENTITY):这个注解用于主键字段,表明主键值由数据库自动生成。参数strategy指定了生成策略,此处为GenerationType.IDENTITY,意味着主键值在插入新记录时,会根据数据库支持的自增特性自动获取下一个可用的唯一值。
@Column(nullable = false):此注解用于描述持久化字段如何与数据库表中的列进行映射。参数nullable设置为false,意味着对应的数据库列不允许为NULL,即name字段在数据库中不能为空。

  1. 标识实体类:当一个类被 @Entity 注解时,表明这个类将映射到数据库中的一个表。ORM框架会基于这个实体类的属性和注解来创建或操作对应的数据库表。

  2. 表映射:默认情况下,实体类名会被转化为数据库表名(通常是驼峰命名法转下划线分隔),但也可以通过 @Table 注解明确指定表名、schema、catalog等信息。

  3. 属性映射:实体类中的字段对应数据库表中的列。可以通过如 @Id、@GeneratedValue、@Column 等注解进行详细的列映射配置,如主键生成策略、列名、是否可为空等。

  4. 关系映射:对于关联关系,可以使用如 @OneToOne、@OneToMany、@ManyToOne 和 @ManyToMany 等注解来表示实体之间的关系,并进行关联查询和维护。

Spring Framework 相关注解(部分):

@Configuration 是 Spring Framework 中的核心注解,用于标记一个类作为配置类。在Spring IoC容器中,它起到了定义和组装Bean的作用。通过在类上使用 @Configuration 注解,表明这个类可以包含一系列的 @Bean 注解的方法,这些方法将返回要添加到IoC容器中的对象(即Bean)。

详解:

  1. 声明配置类:标注了 @Configuration 的类会被Spring视为一个“配置类”,Spring会处理其中定义的所有带有 @Bean 注解的方法,并将它们所创建的对象注册为Spring容器中的Bean。

  2. 替代XML配置:在传统的Spring应用中,我们通常使用XML文件来定义Bean。而在Java配置风格中,我们可以用 @Configuration 和 @Bean 替代XML进行Bean的定义和配置,实现了代码层面的配置,增强了可读性和维护性。

  3. 支持依赖注入:配置类本身也可以被Spring容器管理,因此其内部可以引用其他的 @Bean 方法或者外部已存在的Bean,实现依赖注入。

@Bean使用@Bean注解的方法将返回的对象注册为Spring Bean

Spring Security 相关注解(部分):

@EnableWebSecurity // 启用Spring Security配置

4、SpringBoot支持哪几种配置文件的格式?默认使用哪一种格式的配置文件?

Spring Boot 支持以下几种配置文件格式:

  1. application.properties:这是传统的基于键值对的 properties 文件格式,以 .properties 为扩展名。

  2. application.yml 或 application.yaml:这两种是 YAML(YAML Ain’t Markup Language)格式的配置文件,.yml 和 .yaml 都可以使用。相比 properties 文件,YAML 更加灵活,支持更丰富的数据结构表示,如列表、映射等,并且具有更好的可读性和层次性。

默认情况下,Spring Boot 会自动查找类路径下的 application.properties 或 application.yml(如果存在的话),并根据这些文件中的属性来配置应用。
在 Spring Boot 应用中,无论哪种格式的配置文件,都可以通过 @Value 注解或@ConfigurationProperties 注解将配置信息注入到 Bean 中,或者通过 @ConfigurationProperties 绑定到一个实体类上

5、Spring Boot 支持哪些日志框架?默认的日志框架是哪个?

Spring Boot 支持多种日志框架,包括但不限于:

  1. Java Util Logging (JUL)
  2. Log4j
  3. Log4j 2
  4. Logback
    默认的日志框架是 Logback。Spring Boot 的选择依据通常是依赖库的加载顺序和版本兼容性,由于 Logback 是 SLF4J(Simple Logging Facade for Java)的一个实现,并且性能优秀、配置灵活,所以 Spring Boot 默认将其作为日志后端。
posted @ 2025-04-06 21:33  ArnoYi  阅读(93)  评论(0)    收藏  举报