Spring 6 简介
什么是Spring框架?
Spring是一个轻量级的Java开发框架,旨在简化企业级应用开发。Spring框架的核心特性包括依赖注入(DI)和面向切面编程(AOP)。
Spring 6 新特性
Spring 6是Spring框架的最新主要版本,于2022年11月发布。主要特性包括:
基线要求
- Java 17+:要求Java 17或更高版本
- Jakarta EE 9+:从javax.迁移到jakarta.命名空间
- 支持Java 21:完全支持最新的Java长期支持版本
核心改进
- 原生编译支持:通过GraalVM实现原生镜像编译
- 可观测性增强:改进的Micrometer集成
- HTTP接口客户端:声明式HTTP接口的新特性
- 性能优化:启动时间和内存占用的优化
核心概念
1. 控制反转 (IoC)
IoC是Spring框架的核心,它将对象的创建和依赖关系的管理交给Spring容器。
java
// 传统方式
public class UserService {
private UserRepository userRepository = new UserRepository();
}
// Spring IoC方式
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}2. 依赖注入 (DI)
DI是IoC的一种实现方式,Spring通过构造器注入、Setter注入或字段注入来提供依赖。
java
@Service
public class UserService {
private final UserRepository userRepository;
// 构造器注入(推荐)
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}3. 面向切面编程 (AOP)
AOP允许我们将横切关注点(如日志、事务、安全)从业务逻辑中分离出来。
java
@Aspect
@Component
public class LoggingAspect {
@Before("execution(* com.example.service.*.*(..))")
public void logBefore(JoinPoint joinPoint) {
System.out.println("方法执行前: " + joinPoint.getSignature().getName());
}
}Spring 6 架构
Spring框架由多个模块组成:
- Spring Core:核心容器,提供IoC和DI功能
- Spring AOP:面向切面编程
- Spring Data Access:数据访问/集成
- Spring Web:Web应用支持
- Spring Test:测试支持
快速开始
添加依赖
Maven:
xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.1.3</version>
</dependency>创建第一个Spring应用
java
@Configuration
@ComponentScan("com.example")
public class AppConfig {
}
@Component
public class HelloWorld {
public void sayHello() {
System.out.println("Hello, Spring 6!");
}
}
public class Main {
public static void main(String[] args) {
ApplicationContext context =
new AnnotationConfigApplicationContext(AppConfig.class);
HelloWorld helloWorld = context.getBean(HelloWorld.class);
helloWorld.sayHello();
}
}