spring(二)_ioc

一、ioc定义

  IoC对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。看过一个通俗易懂的比喻:创建对象的过程就像找女朋友,传统情况下,我们去偶遇符合自己要求的女孩,然后要联系方式,想办法认识她们,谈恋爱结婚…需要自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己New一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),管理对象的整个生命周期,对象始终会和其他的接口或类藕合起来
  IoC是如何实现的?我和女朋友之间引入第三方:婚姻介绍所。婚介管理了人的资料,我向婚介提出一个列表,告诉它什么样什么样的要求,婚介提供一个女孩,我们只需要谈恋爱结婚。如果婚介给我们的人选不符合要求,就会抛出异常。整个过程不再由我自己控制,而是有婚介这样一个类似容器的机构来控制。Spring所倡导的开发方式就是如此,所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以叫控制反转

二、ioc实现

2.1导入jar包

4个核心(beans,context,core,expression)+1个依赖 (commons-logging)
在这里插入图片描述

2.2目标类
2.2.1 接口类:
public void getUserId();
2.2.2 实现类:
@Override
	public void getUserId() {
		// TODO Auto-generated method stub
       System.out.println("print userid");
	}
2.3配置文件 applicationContext.xml
2.3.1 添加schema约束
<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">
</beans>
2.3.2 添加bean信息
<bean id="userServiceId" class="cn.itcast.spring.ioc.UserServiceImpl"></bean>
2.4测试

测试代码:

@Test
	public void UserIdtest() {
		//获取容器
		String xmlPath="cn/itcast/spring/ioc/applicationContext.xml"; 
		ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlPath);
		
		//实现方法
		UserService userService=(UserService)applicationContext.getBean("userServiceId");
		userService.getUserId();
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值