IT评测·应用市场-qidao123.com

标题: Spring boot从0到1 - day01 [打印本页]

作者: 用户国营    时间: 2024-9-22 14:58
标题: Spring boot从0到1 - day01
媒介

Spring 框架作为 Java 领域中最受欢迎的开辟框架之一,提供了强大的支持来资助开辟者构建高性能、可维护的 Web 应用。
学习目标

Spring 基础

Spring Boot 的快速构建
Spring 基础

学习Spring Boot 之前了解Spring。
为什么要了解Spring?
Spring Boot 是基于 Spring 框架之上构建的,它利用了 Spring 框架的许多焦点功能,如依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)等。
当你在使用 Spring Boot 开辟应用步调时,大概会遇到各种问题。了解 Spring 框架的根本原理可以资助你更快地定位和办理问题。例如,如果你了解 Spring 的依赖注入机制,就可以更容易地排查 Bean 的创建和烧毁过程中的问题。
Spring框架是什么?

Spring 框架是一个轻量级的开源 Java 框架,用于构建企业级应用步调。它最初由 Rod Johnson 创建,并首次出如今他的书《Expert One-On-One J2EE Development and Design》中。Spring 的设计目的是简化 Java 应用步调的开辟,尤其是企业级应用的复杂性。
Spring 框架的特点

为什么 Spring 是轻量级的?

固然 Spring 提供了大量的功能,但它仍然被以为是轻量级的,缘故原由如下:


Spring IoC与Aop怎么理解?

Spring IoC(Inversion of Control,控制反转)和 AOP(Aspect-Oriented Programming,面向切面编程)是 Spring 框架中的两个焦点概念,它们分别办理了对象管理和跨切关注点的代码重用问题。下面我们分别表明这两个概念及其在 Spring 中的应用。
Spring IoC (Inversion of Control, 控制反转)

让我们用喝水的例子来更好地阐明 IoC 的概念:
想象一下,在传统的编程模式中,如果你想喝一杯热水,你需要自己去找电水壶,然后加水,再插电加热,末了才气喝到热水。这个过程中,你主动控制了全部步骤,即你自己管理了“依赖”。
而在 IoC 的情景下,就像是你有一个智能家庭体系,当你告诉它你想喝热水时,它会为你准备好统统——找到电水壶、加水、加热,末了把准备好的热水送到你面前。在这个过程中,你不需要关心热水是如何准备的,你只需要关心终极的结果——热水。
控制反转是一种设计模式,其重要目的是减少对象之间的依赖关系。在 Spring 框架中,IoC 是通过依赖注入(Dependency Injection, DI)来实现的。
IoC 示例

起首,我们定义一个 WaterHeaterService 类,它依赖于 WaterHeaterRepository:
  1. public class WaterHeaterService {
  2.     private WaterHeaterRepository waterHeaterRepository;
  3.     public WaterHeaterService(WaterHeaterRepository waterHeaterRepository) {
  4.         this.waterHeaterRepository = waterHeaterRepository;
  5.     }
  6.     public HotWater getHotWater() {
  7.         return waterHeaterRepository.prepareHotWater();
  8.     }
  9. }
复制代码
接着,我们定义 WaterHeaterRepository 接口及实在现:
  1. public interface WaterHeaterRepository {
  2.     HotWater prepareHotWater();
  3. }
  4. public class WaterHeaterRepositoryImpl implements WaterHeaterRepository {
  5.     @Override
  6.     public HotWater prepareHotWater() {
  7.         // 假设这里是一个复杂的加热逻辑
  8.         return new HotWater();
  9.     }
  10. }
  11. public class HotWater {
  12.     // HotWater 类的具体实现
  13. }
复制代码
在 Spring 框架中,我们将使用注解来定义和注入依赖:
  1. @Service
  2. public class WaterHeaterServiceImpl implements WaterHeaterService {
  3.     private final WaterHeaterRepository waterHeaterRepository;
  4.     @Autowired
  5.     public WaterHeaterServiceImpl(WaterHeaterRepository waterHeaterRepository) {
  6.         this.waterHeaterRepository = waterHeaterRepository;
  7.     }
  8.     public HotWater getHotWater() {
  9.         return waterHeaterRepository.prepareHotWater();
  10.     }
  11. }
  12. @Repository
  13. public class WaterHeaterRepositoryImpl implements WaterHeaterRepository {
  14.     @Override
  15.     public HotWater prepareHotWater() {
  16.         // 假设这里是一个复杂的加热逻辑
  17.         return new HotWater();
  18.     }
  19. }
  20. public class HotWater {
  21.     // HotWater 类的具体实现
  22. }
复制代码
Spring AOP (Aspect-Oriented Programming, 面向切面编程)

面向切面编程是一种编程范式,它允许开辟者将横切关注点(cross-cutting concerns)从业务逻辑中分离出来。横切关注点是指那些跨越多个类的功能,如日志记录、事件管理、权限验证等。
AOP 示例

接下来,我们可以定义一个切面来记录加热前后的时间:
  1. @Aspect
  2. @Component
  3. public class HeatingLogAspect {
  4.     @Before("execution(* com.example.service.WaterHeaterServiceImpl.getHotWater())")
  5.     public void logBefore(JoinPoint joinPoint) {
  6.         System.out.println("Starting heating process: " + joinPoint.getSignature());
  7.     }
  8.     @After("execution(* com.example.service.WaterHeaterServiceImpl.getHotWater())")
  9.     public void logAfter(JoinPoint joinPoint) {
  10.         System.out.println("Heating process finished: " + joinPoint.getSignature());
  11.     }
  12. }
复制代码
在这个例子中,HeatingLogAspect 类定义了两个通知,分别在加热过程开始和结束时记录日志。
Spring Boot 的快速构建

1.打开网址:https://start.spring.io/

如果您想要设置 Spring Boot 3.3 项目来使用正确的 JDK 版本,您需要:
确认 JDK 版本:确保您的开辟情况中安装了 Java 17 或更高版本的 JDK。
IDEA 设置:如果您使用的是 IntelliJ IDEA,需要在项目设置中指定正确的 JDK 版本。
2.

3.点击生成,导入idea
点击file -> Open->找到demo,导入。等待下载好依赖

个人建议还是用jdk1.8,等网上出了教程在看jdk17,springboot 3需要注意点有不少。
总结


打卡学习Spring boot 第一天。
AOP不是OOP的替代品,而是OOP的补充

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4