Spring 是什么
Spring 是分层的 JAVA SE/EE 应用 full-stack 轻量级开源框架以 Ioc(Inverse Of Control:反转控制)和AOP(Aspect OrientedProgramming:面向切面编程)为内核提供了展现层 SpringMVC 和持久层 Spring JDBCTemplate 以及业务事务管理等众多的企业级应用技术还能整合开源世界众多著名的第三方框架和类库逐渐成为使用最多的JavaEE 企业应用开源框架。Spring 发展历程1997年IBM提出了EJB的思想1998年, SUN 制定开发标志规范 EJB1.01999年 EJB1.1发布2001年,EJB2.0发布2003年,EJB2.1发布2006年,EJB3.0发布Rod Johnson(Spring之父)Expert One-to-One J2EE Design and Development(2002)阐述了 J2EE 使用EJB 开发设计的优点及解决方案Expert One-to-One J2EE Development without EJB(2004)阐述了 J2EE 开发不使用EJB的解决方案(Spring 雏形)2017 年9月发布了Spring的最新版本 Spring5.0通用版(GA)1.3.Spring的优势1)方便解耦简化开发通过Spring提供了 IOC 容器可以将对象间的依赖关系交由 Spring进行控制避免硬编码所造成的过度耦合。用户也不必再为单例模式类属性文件解析等这些很底层的需求编写代码可以更专注于上层应用。2)AOP编程的支持通过Spring的AOP功能方便进行切面编程许多不容易传统OOP实现的功能可以通过AOP轻松实现。3)声明式事务的支持可以将我们从单调烦闷的事务管理代码种解脱出来通过声明式方式灵活的进行事务管理提高开发效率和质量。4)方便程序的测试可以用非容器的编程方式进行几乎所有的测试工作测试不再是昂贵的操作而是随手可做的事情。5)方便集成各种优秀框架Spring对各种优秀框架(Struts,Hibernate,Hessian,Quartz等)的支持6)降低JAVAEE API 的使用难度Spring对 JAVAEE API(如 JDBC,JAVAMAIL,远程调用等)进行了薄薄的封装曾使这些API的使用难度大为降低。7)Java 源码是经典学习范例Spring的源代码设计精妙结构清晰匠心独用处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。它的源码无意是Java技术最佳的范例。1.4Spring的体现结构 (1)DataAccess/Integration: JDBC/ORM/OXM/JMS/Transactions (2)WEB: WebSocket/Servlet/Web/Portlet (3)AOP (4)Aspect (5)Instrumentation (6)Messaging (7)CoreContainer :核心容器 Beans Core Context:上下文 SpEL:spring的表达式语言。 (8)Test 2.1Spring程序开发步骤 com.ycl.service.UserServiceImpl //UserDao userDao new UserDaoImpl() 有了xml的配置就不需要这个了。 UserDao userDao Spring客户端.getBean(id标识); ↓ ↓ Spring框架 读取xml配置文件 根据id标识获取Bean全限定名 ↑ ↓ xml配置文件 id标识com.ycl.dao.UserDaoImp ↑ ↑ com.ycl.dao.UserDaoImpl save()方法 update()方法 (1)导入 Spring开发的基本包坐标 (2)编写Dao接口和实现类 (3)创建Spring核心配置文件 (4)在Spring配置文件中配置 UserDaoImpl (5)使用Spring的API 获得Bean实例 pom.xml project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd modelVersion4.0.0/modelVersion groupIdcom.ycl/groupId artifactIdspring_04/artifactId packagingwar/packaging version1.0-SNAPSHOT/version namespring_04 Maven Webapp/name dependencies dependency groupIdorg.springframework/groupId artifactIdspring-context/artifactId version5.0.5.RELEASE/version /dependency /dependencies /project #接口定义 package com.ycl.dao; public interface UserDao { public void save(); } #接口的实现类定义; package com.ycl.dao.impl; import com.ycl.dao.UserDao; public class UserDaoImpl implements UserDao { public void save(){ System.out.println(save running...); } } #applicationContext.xml 定义 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd bean iduserDao classcom.ycl.dao.impl.UserDaoImpl/bean /beans #demo实现及调用 package com.ycl.demo; import com.ycl.dao.UserDao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class UserDaoDemo { public static void main(String[] args) { ApplicationContext app new ClassPathXmlApplicationContext(applicationContext.xml); UserDao userDao (UserDao) app.getBean(userDao); userDao.save(); } }Spring的开发步骤;(1)导入坐标(2)创建Bean (类)(3)创建applicationContext.xml(4)在配置文件中进行配置(5)创建 ApplicationContext 对象 getBean

相关新闻

XUnity.AutoTranslator深度技术解析:构建高效游戏本地化解决方案

XUnity.AutoTranslator深度技术解析:构建高效游戏本地化解决方案

XUnity.AutoTranslator深度技术解析:构建高效游戏本地化解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏自动翻译的核心引擎,为开发者…

2026/7/21 5:12:38阅读更多 →
AI工具落地难题与零风险承诺解决方案

AI工具落地难题与零风险承诺解决方案

1. 项目背景与痛点分析 "降AI工具花了钱没效果"这个现象在2023年已经成为普遍痛点。根据行业调研数据显示,超过65%的企业在采购AI工具后6个月内未能达到预期效果,其中约40%最终沦为"数字摆设"。这种情况主要源于三个核心矛盾&#x…

2026/7/21 5:12:38阅读更多 →
Claude Code三明治架构与AI编程助手核心技术解析

Claude Code三明治架构与AI编程助手核心技术解析

1. Claude Code的技术架构解析从泄漏的源码来看,Claude Code采用了独特的"三明治架构"设计,这与主流AI编码助手有着本质区别。底层是基于Anthropic自研的Constitutional AI框架,中间层是专门针对代码理解优化的神经网络&#xff0c…

2026/7/21 5:10:38阅读更多 →
085、Gamma校正与色调映射:从CRT曲线到感知量化

085、Gamma校正与色调映射:从CRT曲线到感知量化

085、Gamma校正与色调映射:从CRT曲线到感知量化 那年我在车载项目上栽了个跟头。夜视摄像头输出图像,在HUD上显示时,暗部细节全糊成一团,亮部却过曝得像探照灯。硬件团队说是ISP参数问题,算法团队咬定是显示驱动没调好。我拿着示波器量了三天信号,最后发现——Gamma曲线压…

2026/7/21 15:31:29阅读更多 →
终极指南:3步将Amlogic电视盒子变身高性能Armbian服务器

终极指南:3步将Amlogic电视盒子变身高性能Armbian服务器

终极指南:3步将Amlogic电视盒子变身高性能Armbian服务器 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588…

2026/7/21 15:31:29阅读更多 →
HDMI矩阵与EDID管理在无纸化会议中的应用

HDMI矩阵与EDID管理在无纸化会议中的应用

1. 无纸化会议与HDMI矩阵的核心需求 在珠海这类现代化城市中,无纸化会议系统已成为政府机关、企业总部和高端酒店的标配方案。这种系统通过数字化手段替代传统纸质文件,实现会议材料的电子化分发、批注和存档。而HDMI矩阵作为其中的关键设备,…

2026/7/21 15:31:29阅读更多 →
GIMP批量导出图层插件:高效管理设计资源的实用指南

GIMP批量导出图层插件:高效管理设计资源的实用指南

GIMP批量导出图层插件:高效管理设计资源的实用指南 【免费下载链接】gimp-export-layers Batch layer export and editing for GIMP 2.8/2.10 项目地址: https://gitcode.com/gh_mirrors/gi/gimp-export-layers GIMP Export Layers是一款专为GIMP 2.8和2.10版…

2026/7/21 15:31:29阅读更多 →
Subclipse:Eclipse开发者的终极SVN版本控制解决方案

Subclipse:Eclipse开发者的终极SVN版本控制解决方案

Subclipse:Eclipse开发者的终极SVN版本控制解决方案 【免费下载链接】subclipse Subclipse - Eclipse SVN Provider 项目地址: https://gitcode.com/gh_mirrors/su/subclipse 还在为Eclipse中管理Subversion版本控制而烦恼吗?Subclipse插件为你提…

2026/7/21 15:31:29阅读更多 →
终极指南:如何用AI神经网络将设计稿一键转换为网页代码

终极指南:如何用AI神经网络将设计稿一键转换为网页代码

终极指南:如何用AI神经网络将设计稿一键转换为网页代码 【免费下载链接】Screenshot-to-code A neural network that transforms a design mock-up into a static website. 项目地址: https://gitcode.com/gh_mirrors/scr/Screenshot-to-code Screenshot-to-…

2026/7/21 15:29:29阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 0:51:49阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 0:51:49阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 0:51:49阅读更多 →
Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

📌教程适配:OpenClaw v2.7.9 | 兼容 Windows10/11、macOS 双系统 📖前言 当下各类本地 AI 工具层出不穷,多数产品仅能完成文字问答交互,很难直接操控电脑执行实际操作。OpenClaw,业内常称小龙虾 AI&#…

2026/7/21 0:01:46阅读更多 →
Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

聊《一次Codex项目复盘,问题最后出在流程而不是模型》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做&…

2026/7/21 0:01:46阅读更多 →
手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

大家好,还是我。前几期带大家做了心情日记本和可视化大屏,后台有朋友留言:“能不能教点好玩的?我想做游戏,但一行代码都不会。”行,这期就安排。今天的目标:从零做一个五子棋游戏。 带AI对战、三…

2026/7/21 0:03:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/20 22:51:39阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/20 18:51:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/20 18:51:18阅读更多 →