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

spring知识点梳理

Spring 框架全知识点梳理

文章目录

      • 1. Spring Core
      • 2. 数据访问与事务
      • 3. Spring MVC
      • 4. Spring Boot
      • 5. Spring Security
      • 6. 微服务与Spring Cloud
      • 7. 响应式编程(WebFlux)
      • 8. 测试
      • 9. 其他模块
      • 10. 最佳实践
      • 11.版本与生态

1. Spring Core

  • IoC(控制反转)容器

    • BeanFactory:基础容器,提供配置框架和基本功能。

    • ApplicationContext:扩展BeanFactory,支持国际化、事件传播等。

    • Bean的作用域:Singleton(默认)、Prototype、Request、Session、Application。

    • 依赖注入(DI)

      • 构造器注入 vs Setter注入。

      • 注解:@Autowired(按类型)、@Qualifier(按名称)、@Resource(JSR-250)、@Value(注入值)。

      • 自动装配模式:byType、byName、constructor。

      • 条件化配置:@Conditional、@Profile。

    • Bean生命周期:@PostConstruct、@PreDestroy、InitializingBean、DisposableBean。

    • SpEL(Spring表达式语言):#{…} 动态赋值。

  • AOP(面向切面编程)

    • 核心概念:切面(Aspect)、连接点(Join Point)、通知(Advice)、切点(Pointcut)。

    • 通知类型:@Before、@After、@AfterReturning、@AfterThrowing、@Around。

    • 实现方式:基于注解(@Aspect)或XML配置。

    • 代理机制:JDK动态代理(接口) vs CGLIB(类)。

2. 数据访问与事务

  • Spring JDBC

JdbcTemplate:简化CRUD,处理异常转换。

NamedParameterJdbcTemplate:命名参数支持。

  • 事务管理

    • 声明式事务:@Transactional(类/方法级)。

    • 传播行为:REQUIRED(默认)、REQUIRES_NEW、NESTED等。

    • 隔离级别:READ_COMMITTED(默认)、SERIALIZABLE等。

    • 回滚规则:rollbackFor、noRollbackFor。

    • 编程式事务:TransactionTemplate。

  • ORM集成

    • Hibernate:配置LocalSessionFactoryBean。

    • JPA:@Entity、EntityManager,Spring Data JPA的Repository接口。

    • Spring Data:支持MongoDB、Redis等,提供CrudRepository、PagingAndSortingRepository。

3. Spring MVC

  • 核心组件

    • DispatcherServlet:前端控制器,处理请求分发。

    • HandlerMapping:映射请求到处理器(Controller)。

    • ViewResolver:解析逻辑视图名到具体视图(JSP、Thymeleaf)。

  • 注解驱动

    • @Controller、@RestController(REST专用,组合@ResponseBody)。

    • @RequestMapping、@GetMapping、@PostMapping等。

    • @PathVariable、@RequestParam、@RequestBody、@ResponseBody。

  • 数据绑定与验证

    • @Valid、BindingResult、自定义验证注解。
  • REST支持

    • HTTP状态码:@ResponseStatus。

    • 内容协商:JSON(Jackson)、XML配置。

    • HATEOAS:ResourceSupport、ResourceAssembler。

4. Spring Boot

  • 核心特性

    • 自动配置:@EnableAutoConfiguration,条件化Bean加载。

    • 起步依赖:简化Maven/Gradle配置(如spring-boot-starter-web)。

    • Actuator:监控端点(/health、/metrics)。

  • 配置管理

    • 多环境配置:application-{profile}.properties。

    • 外部化配置:命令行参数、环境变量、@ConfigurationProperties。

  • 部署

    • 内嵌Tomcat/Jetty,打包为可执行JAR。

5. Spring Security

  • 核心功能

    • 认证:表单登录、HTTP Basic、OAuth2、JWT。

    • 授权:@PreAuthorize、@Secured、方法级安全。

    • CSRF防护、CORS配置。

  • 配置

    • WebSecurityConfigurerAdapter(已弃用,推荐组件化配置)。

    • 密码编码器:BCryptPasswordEncoder。

  • OAuth2

    • 授权服务器:@EnableAuthorizationServer。

    • 资源服务器:@EnableResourceServer。

    • 客户端:@EnableOAuth2Client。

6. 微服务与Spring Cloud

  • 服务发现:Eureka客户端/服务器。

  • 配置中心:Spring Cloud Config Server。

  • 负载均衡:Ribbon、@LoadBalanced。

  • 断路器:Hystrix(已进入维护,推荐Resilience4j)。

  • API网关:Spring Cloud Gateway(替代Zuul)。

  • 分布式追踪:Sleuth + Zipkin。

7. 响应式编程(WebFlux)

  • 核心概念

    • Reactive Streams:Publisher(Flux/Mono)、Subscriber。

    • 非阻塞I/O:Netty、Undertow支持。

  • WebFlux

    • 注解驱动:类似MVC(@RestController)。

    • 函数式端点:RouterFunction、HandlerFunction。

  • 数据访问

    • Reactive Repositories(MongoDB、Cassandra)。

8. 测试

  • 单元测试:Mockito、@Mock、@InjectMocks。

  • 集成测试:@SpringBootTest、Testcontainers。

  • Web测试:MockMvc(模拟HTTP请求)。

  • 切片测试:@WebMvcTest、@DataJpaTest。

9. 其他模块

  • Batch:JobLauncher、Step、ItemReader/Writer。

  • Integration:消息通道、网关、适配器。

  • WebSocket:@MessageMapping、SimpMessagingTemplate。

  • GraphQL:Spring for GraphQL(查询、变更、订阅)。

10. 最佳实践

  • 分层架构:Controller → Service → DAO。

  • 异常处理:全局@ControllerAdvice + @ExceptionHandler。

  • 性能优化:缓存(@Cacheable)、连接池(HikariCP)。

  • 代码规范:统一日志(SLF4J)、AOP记录日志/性能监控。

11.版本与生态

Spring 6:基于Java 17+,Jakarta EE 9+(包名jakarta)。

  • Spring Boot 3:最低Java 17,支持GraalVM原生镜像。

http://www.kler.cn/a/538308.html

相关文章:

  • Nutz Dao与Spring集成
  • 【C++】 STL -- 算法(二)
  • 1.2 变革里程碑:Transformer 的崛起
  • 操作系统—进程与线程
  • 灵巧手技术全景解析:从仿生设计到智能控制
  • android apk反编译
  • MySQL性能优化MySQL索引失效的13种隐蔽场景排查及解决方法
  • 响应式编程库(三) -r2dbc
  • 差分算法解析
  • w196Spring Boot高校教师科研管理系统设计与实现
  • 高速网络的未来:零拷贝Zero-Copy架构
  • 国产AI大模型DeepSeek的本地化部署
  • 数据留痕的方法
  • WordPress wp-recall插件存在SQL注入漏洞(CVE-2024-32709)
  • 响应式编程_04Spring 5 中的响应式编程技术栈_WebFlux 和 Spring Data Reactive
  • 【异常解决】在idea中提示 hutool 提示 HttpResponse used withoud try-with-resources statement
  • 线程安全面试题
  • 【C语言标准库函数】指数与对数函数:exp(), log(), log10()
  • google 多模态aistudio Stream Realtime体验
  • cursor指令工具
  • flask开发的网站,后端服务关闭后,可以找回之前的数据的吗
  • Vue全流程--Vue2路由
  • 【Leetcode 每日一题】63. 不同路径 II
  • 计算机组成原理(3)
  • Tengine配置负载均衡加健康检查
  • 【AI】人工智能与搜索引擎知识了解