Spring安装和使用(Eclipse环境)
一、Spring框架概述
1、 什么是Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
2、 Spring的优点
1)方便解耦,简化开发 (高内聚低耦合)
Spring就是一个大工厂可以将所有对象创建和依赖关系维护,交给Spring管理spring工厂是用于生成bean。
2)AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
3)声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程
4)方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序
5)方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)
6)降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装.
二、Eclipse中安装Spring
1、查看eclipse版本(必须和Spring版本对应才行)
----->打开eclipse----->Help-------->About Eclipse IDE

2、安装Spring IDE插件:
1)Help->Install New Software
2)选择Add,添加Name(可以随便取)和Location:http://dist.springsource.com/release/TOOLS/update/e4.10/
3)勾选中下边四个和Spring相关的文件。Core/Spring IDE、Extensions/Spring IDE、Integrations/Spring IDE、Resources/Spring IDE四项

3、点Next直到选择I accpet the terms of the license agreements点Finish然后等待插件安装完成并提示重启。
**报错:**An error occurred while collecting items to be installed session context was:(profile=D__eclipse_java-2018-12_eclipse,phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).Unable to read repository at http://download.springsource.com/release/TOOLS/update/3.9.7.RELEASE/e4.10/plugins/org.springframework.ide.eclipse.boot.properties.editor.source_3.9.7.201812201020-RELEASE.jar.
Read timed out
解决办法:
打开Window->Preferences->Install/Update->Available software Sites,将Oracle Enterprise Pack For Eclipse改为disable
4、查看安装是否成功
点击菜单Help–>Welcome,如果找到Spring IDE项,恭喜你,安装成功了。
如果没有找到,怎么办呢?接着往下操作
5、安装失败了,你可以换一种方式安装了,先下载,下载地址:http://spring.io/tools3/sts/all
6、打开菜单Help–>Install New Software…
7、在弹出框install中点Add…按钮,Name栏输入localSpringIDE,在Location栏点击Archive…按钮,选择刚下载的springsource-tool-suite-x.x.x.RELEASE-e4.10.0-updatesite.zip,点OK按钮后依然在在列表框中勾选带Spring IDE的项,点下一步,然后根据提示直到安装完成,然后重启Eclipse即可。
8、查看安装是否成功
三、Spring使用
1、环境条件:
1)windows 10系统
2)eclipse(开发环境)
3)Spring IDE(上面已经安装了) 地址:http://spring.io/tools3/sts/all
4)Spring framework(一会儿要用的jar包) 地址:http://repo.spring.io/release/org/springframework/spring/

5)commens-logging-x.x.x.jar地址:http://commons.apache.org/proper/commons-logging/download_logging.cgi

2、新建一个java工程,名字就叫first_spring,创建一个包名demo,创建两个类分别为HelloWorld和Main,导入4个spring核心jar包(分别是:spring-beans-5.1.0.RELEASE.jar、spring-context-5.1.0.RELEASE.jar、spring-core-5.1.0.RELEASE.jar、spring-expression-5.1.0.RELEASE.jar)和1个外部依赖包(spring-expression-5.1.0.RELEASE.jar)。

1)HelloWorld.java代码
package demo;public class HelloWorld {public void say(){System.out.println("|-----------------------|");System.out.println("| hello world |");System.out.println("|-----------------------|");}
}
2)Main.java测试代码
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubApplicationContext a = new ClassPathXmlApplicationContext("classpath:/application.xml");HelloWorld helloWorld = (HelloWorld) a.getBean("helloWorld");helloWorld.say();}}
3)application.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloWorld" class="demo.HelloWorld"></bean></beans>
4)结果

相关文章:
Spring安装和使用(Eclipse环境)
一、Spring框架概述 1、 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复…...
网络安全-攻击流程-传输层
传输层攻击主要针对OSI模型的第四层,涉及TCP和UDP协议的安全漏洞。以下是常见攻击类型及其流程,以及防御措施: 1. SYN洪水攻击(TCP半连接攻击) 攻击流程: 目标选择:确定目标服务器的IP地址和开…...
图论- Dijkstra算法
Dijkstra算法 前言概念BFS基础模版DijkstraDijkstra函数签名State类distTo 记录最短路径伪代码模版第一个问题解答第二个问题解答第三个问题解答 前言 学习这个算法之间,必须要对BFS遍历比较熟悉,它的本质就是一个特殊改造过的BFS算法. 概念 Dijkstra算法是一种计算图中单源…...
CAS单点登录(第7版)9.属性
如有疑问,请看视频:CAS单点登录(第7版) 属性 属性定义 概述 属性定义 从身份验证或属性存储库源获取和解析 CAS 中属性的定义时,往往使用其名称进行定义和引用,而无需任何其他元数据或修饰。例如&#…...
一些常用的Yum源
一些常用的Yum源 # CentOS-Stream-AppStream.repo [appstream] nameCentOS Stream $releasever - AppStream baseurlhttps://mirrors4.tuna.tsinghua.edu.cn/centos-vault/8-stream/AppStream/x86_64/os/ gpgcheck0 enabled1# CentOS-Stream-BaseOS.repo [baseos] nameCentOS …...
【电路笔记】-双向计数器
双向计数器 文章目录 双向计数器1、概述2、双向计数器双向计数器能够通过任何给定的计数序列向上或向下方向计数。 1、概述 双向计数器是同步向上/向下二进制计数器,能够在两个方向上向或从某个预设值以及零进行计数。 除了从零开始“向上”计数并增加或递增到某个预设值之外…...
Python PyCharm DeepSeek接入
Python PyCharm DeepSeek接入 创建API key 首先进入DeepSeek官网,https://www.deepseek.com/ 点击左侧“API Keys”,创建API key,输出名称为“AI” 点击“创建",将API key保存,复制在其它地方。 在PyCharm中下…...
LeetCode 232: 用栈实现队列
LeetCode 232: 用栈实现队列 题目描述 使用栈实现队列的操作。支持以下操作: MyQueue():初始化队列。push(x):将元素 x 推入队列。pop():从队列中移除元素。peek():返回队列头部的元素。empty():检查队列…...
P6792 [SNOI2020] 区间和 Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),有 m m m 个操作分两种: chmax ( l , r , v ) \operatorname{chmax}(l,r,v) chmax(l,r,v):对每个 i ∈ [ l , r ] i \in [l,r] i∈[l,…...
基于智能体和RWA的分布式商业生态商业模型架构设计
引言 在数字化和智能化的浪潮下,传统商业生态正经历着深刻的变革。如何通过技术的赋能推动商业模式的升级,成为各行各业的共识。**智能体(AI Agents)与现实世界资产(RWA)**的结合,为分布式商业生…...
从ARM官方获取自己想要的gcc交叉编译工具链接(Arm GNU Toolchain),并在Ubuntu系统中进行配置
前言 本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145547974 的分支博文。 在本博文中我们完成gcc交叉编译工具gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz的下载、配置、测试。 下载自己想要的gcc交叉编译工具的源码 目标文件的名字及说…...
Linux上Elasticsearch 集群部署指南
Es 集群部署 Es 集群部署 Es 集群部署 准备好三台服务器。示例使用:110.0.5.141/142/143 1、es用户和用户组创建,使用root账号 groupadd esuseradd -g es es2、将es安装包和ik分词器上传到:/home/es/目录下(任意目录都行&#…...
【系统架构设计师】虚拟机体系结构风格
目录 1. 说明2. 解释器体系结构风格3. 规则系统体系结构风格4. 例题4.1 例题1 1. 说明 1.p263。2.虚拟机体系结构风格的基本思想是人为构建一个运行环境,在这个环境之上,可以解析与运行自定义的一些语言,这样来增加架构的灵活性。3.虚拟机体…...
Python 字典思维导图
在本章中,你将学习能够将相关信息关联起来的Python字典。你将学习如何访问和修改字典中的信息。鉴于字典可存储的信息量几乎不受限制,因此我们会演示如何遍 历字典中的数据。另外,你还将学习存储字典的列表、存储列表的字典和存储字典的字典。…...
前台、后台、守护进程对比,进程组的相关函数
前台进程,后台进程,守护进程的对比 在前面我们已经了解了前台进程,后台进程,守护进程。 直接在终端中输入命令: 这是最常见的启动前台进程的方式。例如,在终端中输入 ./myprogram 就可以启动 myprogram 程…...
openAI最新o1模型 推理能力上表现出色 准确性方面提升 API如何接入?
OpenAI o1模型在回答问题前会进行深入思考,并生成一条内部推理链,使其在尝试解决问题时可以识别并纠正错误,将复杂的步骤分解为更简单的部分,并在当前方法无效时尝试不同的途径。据悉,o1不仅数学水平与美国奥林匹克竞赛…...
跨平台键鼠共享免费方案--Deskflow!流畅体验用MacBook高效控制Windows设备
在混合办公场景中,多设备协同已成为提升效率的关键需求。对于同时使用Mac与Windows设备的用户,如何通过一套键盘和触控板实现无缝切换,避免桌面空间浪费与操作冗余?本文将基于开源工具Deskflow,提供一套专业级解决方案…...
CAS单点登录(第7版)27.开发人员
如有疑问,请看视频:CAS单点登录(第7版) 开发人员 Javadocs文档 group org.apereo.cas has published 42 artifact(s) with total 8210 version(s) org.apereo.cas org apereo.cas 小组已出版 42 件作品,共 8210 个版…...
算法与数据结构(多数元素)
题目 思路 方法一:哈希表 因为要求出现次数最多的元素,所以我们可以使用哈希映射存储每个元素及其出现的次数。每次记录出现的次数若比最大次数大,则替换。 方法二:摩尔算法 摩尔的核心算法就是对抗,因为存在次数多…...
【2.10-2.16学习周报】
文章目录 摘要Abstract一、理论方法介绍1.模糊类增量学习2.Rainbow Memory(RM)2.1多样性感知内存更新2.2通过数据增强增强样本多样性(DA) 二、实验1.实验概况2.RM核心代码3.实验结果 总结 摘要 本博客概述了文章《Rainbow Memory: Continual Learning with a Memory of Divers…...
python包的管理
管理python包 python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包,诸如numpy,pandas,scikit-learn等等。 python的包都存放PyPI中,PyPI即Python Package Index,是python的软件仓库。所…...
我用 Cursor 开发了一款个人小记系统
https://note.iiter.cn 项目背景 在日常工作和学习中,我们经常需要快速记录一些想法、收藏一些有用的链接或者保存一些重要的文本、图片内容。虽然市面上已经有很多笔记软件,但我想要一个更轻量、更简单的工具,专注于快速记录和智能检索。于是我开发了这款个人小记系统。 系统…...
安全测试中的身份认证与访问控制深度解析
第一部分:基本概念与核心问题 1. 身份认证与访问控制基础 1.1 身份认证三要素 知识因素(密码、PIN码)持有因素(硬件令牌、手机)生物因素(指纹、面部识别)1.2 访问控制模型 DAC(自主访问控制)MAC(强制访问控制)RBAC(基于角色的访问控制)2. 关键安全机制 2.1 会话…...
代码随想录-训练营-day30
今天我们要进入动态规划的背包问题,背包问题也是一类经典问题了。总的来说可以分为: 今天让我们先来复习0-1背包的题目,这也是所有背包问题的基础。所谓的0-1背包问题一般来说就是给一个背包带有最大容量,然后给一个物体对应的需要…...
全平台搭载旭日5!科沃斯GOAT智能割草机器人全新系列正式开售
要闻 近日,科沃斯全新发布的GOAT A Series 和 GOAT O Series割草机器人,将在多国市场正式上市发售。作为业界最强的割草机器人产品之一,GOAT致力为割草机带来基于机器人视觉的专业定位解决方案。科沃斯GOAT全新系列产品全平台搭载地瓜机器人…...
Bob the Canadian
1:around the house Hi! Bob the Canadian here! Let’s learn English around the house. Come on in! Hi, Bob the Canadian here. Welcome to this video. If this is your first time here, don’t forget to click the subscribe button below, and give…...
RocketMQ与kafka如何解决消息积压问题?
前言 消息积压问题简单来说,就是MQ存在了大量没法快速消费完的数据,造成消息积压的原因主要在于“进入的多,消费的少”,或者生产的速度过快,而消费速度赶不上,基于这一问题,我们主要介绍如何通过…...
Node.js中Express框架使用指南:从入门到企业级实践
目录 一、Express快速入门 1. 项目初始化 2. 基础服务搭建 3. 添加热更新 二、核心功能详解 1. 路由系统 动态路由参数 路由模块化 2. 中间件机制 自定义中间件 常用官方中间件 3. 模板引擎集成 三、企业级最佳实践 1. 项目结构规范 2. 错误处理方案 3. 安全防护…...
自定义组件数据监听器案例,纯数据字段,自定义组件生命周期,页面的生命周期,插槽
1.自定义组件数据监听器案例 1.1基础案例模板 1.2定义button事件的处理函数 1.3监听对象中属性的变化,并且为fullColor赋值 使用通配符监听所有属性变化 2.自定义组件的纯数据字段 、 3.自定义组件的生命周期 4.组件所在页面的生命周期 5.自定义组件插槽 5.1单个插…...
mybatis-lombok工具包介绍
Lombok是一个实用的]ava类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。 使用前要加入Lombok依赖...
