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会根据变量的名称来查找。
目录
相关文章
|
27天前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
172 3
|
27天前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
161 2
|
1月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
932 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
27天前
|
人工智能 Java API
构建基于Java的AI智能体:使用LangChain4j与Spring AI实现RAG应用
当大模型需要处理私有、实时的数据时,检索增强生成(RAG)技术成为了核心解决方案。本文深入探讨如何在Java生态中构建具备RAG能力的AI智能体。我们将介绍新兴的Spring AI项目与成熟的LangChain4j框架,详细演示如何从零开始构建一个能够查询私有知识库的智能问答系统。内容涵盖文档加载与分块、向量数据库集成、语义检索以及与大模型的最终合成,并提供完整的代码实现,为Java开发者开启构建复杂AI智能体的大门。
762 58
|
15天前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
74 8
|
15天前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
47 7
|
1月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
134 2
|
1月前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
114 12
|
1月前
|
监控 Kubernetes Cloud Native
Spring Batch 批处理框架技术详解与实践指南
本文档全面介绍 Spring Batch 批处理框架的核心架构、关键组件和实际应用场景。作为 Spring 生态系统中专门处理大规模数据批处理的框架,Spring Batch 为企业级批处理作业提供了可靠的解决方案。本文将深入探讨其作业流程、组件模型、错误处理机制、性能优化策略以及与现代云原生环境的集成方式,帮助开发者构建高效、稳定的批处理系统。
251 1
|
2月前
|
存储 缓存 安全
Java集合框架(三):Map体系与ConcurrentHashMap
本文深入解析Java中Map接口体系及其实现类,包括HashMap、ConcurrentHashMap等的工作原理与线程安全机制。内容涵盖哈希冲突解决、扩容策略、并发优化,以及不同Map实现的适用场景,助你掌握高并发编程核心技巧。