Java入门必备-Spring全家桶 - 教程

Spring 全家桶概述

Spring 全家桶是围绕 Spring Framework 构建的一系列开发工具的集合,用于简化企业级 Java 应用开发。以下是核心组件及其作用:


Spring Framework

  • 核心功能:依赖注入(DI)、面向切面编程(AOP)、事务管理。
  • 模块划分
    • Spring Core:提供 IOC 容器。
    • Spring MVC:基于 Servlet 的 Web 框架。
    • Spring JDBC:简化数据库访问。
  • 代码示例(依赖注入)
    @Service
    public class UserService {
    @Autowired
    private UserRepository repository;
    }

Spring Boot

  • 核心优势:约定优于配置,快速启动独立应用。
  • 关键特性
    • 内嵌 Tomcat/Jetty 服务器。
    • 自动配置(spring-boot-autoconfigure)。
    • 启动依赖(Starter POMs),如 spring-boot-starter-web
  • 示例配置
    # application.yml
    server:
    port: 8080

Spring Data

  • 目标:统一数据访问层,支持关系型与非关系型数据库。
  • 子项目
    • Spring Data JPA:基于 JPA 的 Repository 抽象。
    • Spring Data MongoDB:MongoDB 集成。
  • 代码示例
    public interface UserRepository extends JpaRepository<User, Long> {}

Spring Cloud

  • 用途:分布式系统微服务化解决方案。
  • 核心组件
    • 服务发现:Eureka、Nacos。
    • 配置中心:Spring Cloud Config。
    • 负载均衡:Ribbon。
  • 示例配置
    # bootstrap.yml
    spring:
    cloud:
    config:
    uri: http://config-server:8888

Spring Security

  • 功能:认证(Authentication)与授权(Authorization)。
  • 特性
    • 支持 OAuth2、JWT。
    • 防止 CSRF、XSS 攻击。
  • 代码示例
    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers("/admin").hasRole("ADMIN");
    }
    }

Spring Batch

  • 场景:大规模数据批处理(如报表生成)。
  • 核心概念:Job、Step、ItemReader/ItemWriter。
  • 示例配置
    <job id="importJob" xmlns="http://www.springframework.org/schema/batch">
        <step id="step1">
        <tasklet>
          <chunk reader="reader" writer="writer" commit-interval="10"/>
        </tasklet>
      </step>
    </job>

其他工具

  • Spring Session:分布式会话管理。
  • Spring AMQP:RabbitMQ 集成。
  • Spring Integration:企业集成模式(EIP)实现。

版本兼容性

建议通过 Spring Initializr 生成项目时选择匹配的版本组合,例如:

  • Spring Boot 2.7.x + Spring Cloud 2021.x。
  • Spring Boot 3.x + Jakarta EE 9+(需 JDK 17+)。
posted @ 2025-11-11 01:18  ycfenxi  阅读(15)  评论(0)    收藏  举报