1:Spring框架核心-Java Spring

简介: 1:Spring框架核心-Java Spring

1.1 软件模块化

把一个程序分割成一些不同的部分,可以在某种程度上减少它的复杂性,多层体系结构的优点有:

  • 结构简单,便于不同技能的程序员分工负责不同的层
  • 便于测试,每一层都可以独立测试
  • 变更可控,可以把代码的变更控制在一层之内,不会影响其他的层

Model-View-Controller将软件用户界面和业务逻辑分离

Model-View-Controller将软件用户界面和业务逻辑分离

1.2 Spring框架介绍

Spring 是一款目前主流的 Java EE 轻量级开源框架 ,是由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期,成为了构建 Java EE 应用的事实标准


两大核心IOC 与 AOP有效的管理了开发中对象的生命周期问题,也提供了与很多框架整合的工具

1.3 Spring框架的配置

1.4 Servlet

Servlet是运行在 Web 服务器或应用服务器上的Java程序,它可以收集来自前端的用户输入数据,以动态生成网页的方式呈现来自数据库的记录,其作用包括:

  • 通讯功能
  • Servlet对象的生命周期管理
  • 多线程支持
  • 安全性支持

1.5 Spring容器

Spring容器来负责创建对象并把对象关联起来提供服务,容器提供了公共服务,容器依赖于配置信息,Spring拥有两种类型的容器

  • BeanFactory负责读取bean配置信息,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的生命周期,每次获取对象时才会创建对象
  • ApplicationContextt由BeanFactory派生而来,同时也继承了容器的高级功能,提供了更多面向实际应用的功能。在容器启动时就会创建所有的对象
    Spring Bean的生命周期从创建容器开始,到容器销毁Bean为止

1.6 Spring Bean对象的注解

Spring中的常用的注解通常分为两类,一类是用来注册Bean,一类是用来使用Bean,简单的来说bean就是一个被实例化的对象,Spring Bean的生命周期从创建容器开始,到容器销毁Bean为止

1.注册Bean

注册Bean时,@Controller, @Service, @Repository与@Component含义相同,分别用于标识Controller层,Service层,DAO层的Bean对象,这些注解都是把你要实例化的对象转化成一个Bean,放在IOC容器中,把对象交给Spring去管理

2.使用Bean

  • 使用Bean时,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装,当我们需要使用时直接去IOC容器中去取,而不是new一个新的对象,比如@Autowired,@Resource注解,就是从IOC容器中取Bean

1.7 控制反转

控制反转(Inversion of Control,缩写为IoC),是指Bean对象之间的依赖不由它们自己管理,而是由Spring容器负责管理对象之间的依赖,采用叫依赖注入(Dependency Injection,简称DI)的方式实现控制反转

当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例

但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入

1.常见的管理对象方式有

  • XML:显式定义在XML文件中
  • Java:用Java代码显式的定义
  • 注解:@用注解定义属性, 支持自动绑定

2.Spring注解方式

  • @Autowired时,首先在容器中查询对应类型的bean
  • 如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据
  • 如果查询的结果不止一个,那么@Autowired会根据变量的名称来查找。
目录
相关文章
|
26天前
|
缓存 Java 开发工具
Spring是如何解决循环依赖的?从底层源码入手,详细解读Spring框架的三级缓存
三级缓存是Spring框架里,一个经典的技术点,它很好地解决了循环依赖的问题,也是很多面试中会被问到的问题,本文从源码入手,详细剖析Spring三级缓存的来龙去脉。
Spring是如何解决循环依赖的?从底层源码入手,详细解读Spring框架的三级缓存
|
17天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
727 10
|
6天前
|
存储 算法 安全
深入理解Java中的集合框架
【9月更文挑战第34天】本文将带你走进Java的集合框架,探索其背后的设计哲学和实现细节。我们将从集合的基本概念出发,逐步深入到具体的接口和类的实现,最后通过一个实际的例子来展示如何在Java程序中高效地使用集合。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深度理解。
12 1
|
14天前
|
XML 前端开发 Java
控制spring框架注解介绍
控制spring框架注解介绍
|
15天前
|
算法 Java
Java项目不使用框架如何实现限流?
Java项目不使用框架如何实现限流?
23 2
|
14天前
|
存储 NoSQL Java
Spring Session框架
Spring Session 是一个用于在分布式环境中管理会话的框架,旨在解决传统基于 Servlet 容器的会话管理在集群和云环境中的局限性。它通过将用户会话数据存储在外部介质(如数据库或 Redis)中,实现了会话数据的跨服务器共享,提高了应用的可扩展性和性能。Spring Session 提供了无缝集成 Spring 框架的 API,支持会话过期策略、并发控制等功能,使开发者能够轻松实现高可用的会话管理。
Spring Session框架
|
21天前
|
Kubernetes Java Android开发
用 Quarkus 框架优化 Java 微服务架构的设计与实现
Quarkus 是专为 GraalVM 和 OpenJDK HotSpot 设计的 Kubernetes Native Java 框架,提供快速启动、低内存占用及高效开发体验,显著优化了 Java 在微服务架构中的表现。它采用提前编译和懒加载技术实现毫秒级启动,通过优化类加载机制降低内存消耗,并支持多种技术和框架集成,如 Kubernetes、Docker 及 Eclipse MicroProfile,助力开发者轻松构建强大微服务应用。例如,在电商场景中,可利用 Quarkus 快速搭建商品管理和订单管理等微服务,提升系统响应速度与稳定性。
34 5
|
22天前
|
Java 应用服务中间件 开发者
深入探索并实践Spring Boot框架
深入探索并实践Spring Boot框架
28 2
|
21天前
|
机器学习/深度学习 数据采集 JavaScript
ADR智能监测系统源码,系统采用Java开发,基于SpringBoot框架,前端使用Vue,可自动预警药品不良反应
ADR药品不良反应监测系统是一款智能化工具,用于监测和分析药品不良反应。该系统通过收集和分析病历、处方及实验室数据,快速识别潜在不良反应,提升用药安全性。系统采用Java开发,基于SpringBoot框架,前端使用Vue,具备数据采集、清洗、分析等功能模块,并能生成监测报告辅助医务人员决策。通过集成多种数据源并运用机器学习算法,系统可自动预警药品不良反应,有效减少药害事故,保障公众健康。
ADR智能监测系统源码,系统采用Java开发,基于SpringBoot框架,前端使用Vue,可自动预警药品不良反应
|
2天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
详细介绍实现Java Spring Boot FCM推送教程
12 0