Java Spring 框架技术从入门到放弃:Spring生态之Spring 框架概述学习笔记,Spring 框架是什么,Spring 核心功能与模块,Spring 框架的优势

第一章:Java Spring生态之Spring 框架概述学习笔记

第一节、Spring 框架是什么?

概念

Spring 是一个开源的轻量级Java 开发框架,核心目标是简化企业级应用开发。它通过控制反转(IoC)和面向切面编程(AOP)两大核心特性,将复杂的系统解耦,提升代码的可维护性和扩展性。

Java Spring 框架技术从入门到放弃:Spring生态之Spring 框架概述学习笔记,Spring 框架是什么,Spring 核心功能与模块,Spring 框架的优势_第1张图片

生活案例

想象你要建造一座房子:

  • 传统方式:自己购买所有建材(如砖、水泥),自己设计结构,自己施工。
  • Spring 方式:雇佣一个总承包商(Spring 框架),由总承包商协调建筑师、施工队、装修公司等团队(对应 Spring 的各个模块),你只需提出需求即可。

第二节、Spring 核心功能与模块

1. 核心容器(Core Container)

  • 功能:管理 Bean 的创建、依赖注入和生命周期。
  • 案例:类似 “房屋中介”,负责管理房源(Bean)的登记、分配和维护。
  • 具体应用
    // 使用注解配置 Bean
    @Component
    public class HouseBuilder {
        public void build() {
            System.out.println("建造房屋");
        }
    }
    
    // 依赖注入
    @Component
    public class ProjectManager {
        private HouseBuilder builder;
    
        @Autowired
        public ProjectManager(HouseBuilder builder) {
            this.builder = builder;
        }
    }
    

2. AOP(面向切面编程)

  • 功能:将通用功能(如日志、事务)与业务逻辑分离。
  • 案例:交通规则(如红灯停)独立于具体车辆行驶路线,统一管理。
  • 具体应用
    // 日志切面
    @Aspect
    @Component
    public class LoggingAspect {
        @Around("execution(* com.example.service.*.*(..))")
        public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
            System.out.println("开始执行方法:" + joinPoint.getSignature().getName());
            return joinPoint.proceed();
        }
    }
    

3. 数据访问(Data Access)

  • 功能:简化数据库操作,支持 JDBC、ORM 框架(如 MyBatis、Hibernate)。
  • 案例:自动取款机(ATM)统一处理不同银行账户的存取款操作。
  • 具体应用
    // 使用 Spring JDBC
    @Repository
    public class UserDao {
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public void save(User user) {
            jdbcTemplate.update("INSERT INTO users VALUES (?, ?)", user.getId(), user.getName());
        }
    }
    

4. Web 支持(Web)

  • 功能:构建MVC 架构的Web 应用,处理请求和响应。
  • 案例:餐厅点餐系统,服务员(DispatcherServlet)接收订单,厨师(Controller)处理业务,最终返回菜品(View)。
  • 具体应用
    // Spring MVC 控制器
    @RestController
    @RequestMapping("/users")
    public class UserController {
        @Autowired
        private UserService userService;
    
        @GetMapping("/{id}")
        public User getUser(@PathVariable Long id) {
            return userService.findById(id);
        }
    }
    

第三节、Spring 框架的优势

Java Spring 框架技术从入门到放弃:Spring生态之Spring 框架概述学习笔记,Spring 框架是什么,Spring 核心功能与模块,Spring 框架的优势_第2张图片

1. 解耦与模块化

  • 案例:乐高积木,不同模块可自由组合,更换零件不影响整体结构。
  • 应用:通过 IoC 容器管理 Bean 依赖,修改服务实现时只需替换 Bean 配置。

2. 降低开发复杂度

  • 案例:手机应用开发平台(如 Android Studio)提供大量现成组件,减少重复编码。
  • 应用:Spring Security 自动处理权限认证,无需手动编写登录逻辑。

3. 强大的扩展性

  • 案例:电脑主板支持多种外接设备(如显卡、硬盘)。
  • 应用:Spring Boot Starter 机制,通过添加依赖即可集成新功能(如 Redis、RabbitMQ)。

第四节、Spring 与其他技术的集成

1. Spring + MyBatis

  • 场景:电商平台的订单管理系统,使用 MyBatis 操作数据库,Spring 管理事务。
  • 配置示例
    
    
        
    
    
        
    
    

2. Spring + Redis

  • 场景:秒杀活动中使用 Redis 缓存商品库存,减少数据库压力。
  • 代码示例
    @Service
    public class ProductService {
        @Autowired
        private RedisTemplate redisTemplate;
    
        public void decrementStock(String productId) {
            redisTemplate.boundValueOps(productId).increment(-1);
        }
    }
    

第五节、总结

Spring 框架通过 IoC 解耦对象依赖,AOP 分离通用功能,结合丰富的模块和生态,成为企业级 Java 开发的 “瑞士军刀”。掌握 Spring 不仅能提升开发效率,还能培养面向对象设计的思维。

学习心得

  1. 从简单案例入手(如 IoC 管理一个计算器类),逐步构建复杂系统。
  2. 结合 Spring Boot 实践,体验 “开箱即用” 的开发模式。
  3. 阅读开源项目(如 Spring PetClinic),学习实际应用中的最佳实践。

你可能感兴趣的:(#,Spring生态,java自学指南,Spring生态,Java笔记,java,spring,Spring,框架)