当前位置: 首页 > news >正文

【自学笔记】Spring基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Spring 基础知识点总览
    • 1. Spring 框架简介
    • 2. IoC(控制反转)与 DI(依赖注入)
      • 2.1 IoC 容器
      • 2.2 依赖注入方式
      • 示例代码(构造器注入)
    • 3. Spring MVC
      • 3.1 核心组件
      • 示例代码(Spring MVC 控制器)
    • 4. AOP(面向切面编程)
      • 4.1 示例代码(使用注解的 AOP)
    • 5. Spring Boot
      • 5.1 示例代码(Spring Boot 主类)
  • 总结


Spring 基础知识点总览

1. Spring 框架简介

Spring 是一个开源的 Java/Java EE 全功能栈(full-stack)的应用程序框架,它提供了广泛的企业级功能,包括数据访问、事务管理、Web 框架、AOP(面向切面编程)、测试等。Spring 框架的核心特性之一是 IoC(控制反转)和 DI(依赖注入)。

2. IoC(控制反转)与 DI(依赖注入)

2.1 IoC 容器

IoC 容器是 Spring 框架的核心,它负责创建、配置和管理应用中的对象及其依赖关系。

2.2 依赖注入方式

  • 构造器注入
  • Setter 注入
  • 接口注入(较少使用)

示例代码(构造器注入)

// 定义一个简单的服务类
public class UserService {
    private UserRepository userRepository;

    // 构造器注入
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public void printUserInfo() {
        User user = userRepository.getUserById(1);
        System.out.println("User: " + user.getName());
    }
}

// 定义一个简单的仓库接口和实现类
public interface UserRepository {
    User getUserById(int id);
}

public class UserRepositoryImpl implements UserRepository {
    @Override
    public User getUserById(int id) {
        // 模拟从数据库获取用户
        return new User(id, "John Doe");
    }
}

// 配置类
@Configuration
public class AppConfig {
    @Bean
    public UserRepository userRepository() {
        return new UserRepositoryImpl();
    }

    @Bean
    public UserService userService(UserRepository userRepository) {
        return new UserService(userRepository);
    }
}

// 主类
public class MainApplication {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = context.getBean(UserService.class);
        userService.printUserInfo();
        context.close();
    }
}

3. Spring MVC

Spring MVC 是一种基于 Java 的实现 MVC(Model-View-Controller)设计模式的 Web 框架。

3.1 核心组件

  • DispatcherServlet:前端控制器,负责接收请求并分发给相应的处理器。
  • HandlerMapping:负责根据请求 URL 找到对应的处理器。
  • HandlerAdapter:负责调用处理器的方法并处理返回值。
  • ViewResolver:负责解析视图名并生成视图对象。

示例代码(Spring MVC 控制器)

@Controller
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public String getUser(@PathVariable int id, Model model) {
        User user = userService.getUserById(id);
        model.addAttribute("user", user);
        return "userView";
    }
}

4. AOP(面向切面编程)

AOP 是一种编程范式,它允许你将横切关注点(如日志、事务管理等)从业务逻辑中分离出来,以提高代码的可维护性和可读性。

4.1 示例代码(使用注解的 AOP)

@Aspect
@Component
public class LoggingAspect {

    @Before("execution(* com.example.service.*.*(..))")
    public void logBefore() {
        System.out.println("Method execution started");
    }

    @After("execution(* com.example.service.*.*(..))")
    public void logAfter() {
        System.out.println("Method execution finished");
    }
}

5. Spring Boot

Spring Boot 是基于 Spring 框架的一个快速开发工具包,它简化了基于 Spring 的应用的创建和开发过程。

5.1 示例代码(Spring Boot 主类)

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

这个模板只是一个起点,你可以根据自己的学习进度和需要添加更多的知识点和代码示例。希望这个模板能帮助你有效地分享你的 Spring 学习成果!

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录Spring基础知识点总览。

相关文章:

  • Java的异常体系中的Error
  • 如何在网页上显示3D CAD PMI
  • Grok 3能否打破大模型的魔咒?
  • 【四.RAG技术与应用】【1.RAG技术揭秘:大模型与检索增强生成】
  • Error Density-dependent Empirical Risk Minimization
  • 基于IMM算法的目标跟踪,四模型IMM|三维环境|4个模型分别是:CV、左转CT、右转CT、CA(基于EKF,订阅专栏后可获得完整源代码)
  • 计算机视觉之dlib人脸关键点绘制及微笑测试
  • VMware虚拟机IP配置
  • GCC RISCV 后端 -- GCC 构建系统简介
  • 《2025软件测试工程师面试》功能测试篇
  • 6.人工智能与机器学习
  • 通过多线程分别获取高分辨率和低分辨率的H264码流
  • C与C++的区别
  • 大型语言模型中微调和提炼的详细技术比较
  • 【C++】可变模板参数和完美转发
  • 蓝桥杯 之 图形规律
  • rollup是什么?以及它和webpack 和vite的区别
  • 【Web安全方向编程语言学习顺序推荐】
  • 基于 Vue 和 SSM 的前后端分离项目实战:登录与注册功能实现
  • 安卓基础组件Looper - 01 通讯机制简介
  • 女冰队长于柏巍,拒绝被年龄定义
  • 美国务院宣布新一轮与伊朗相关的制裁
  • 神舟十九号载人飞行任务取得圆满成功
  • 五一假期上海地铁部分线路将延时运营,这些调整请查收
  • 张元济和百日维新
  • 长三角议事厅·周报|长三角游戏出海,关键在“生态输出”