这是一个Spring入门程序:

main()方法中并没有通过New关键字来创建UserDao接口的实现类对象,而是通过Spring容器来获取实现类对象,这就是Spring IoC容器 的工作机制。
它的流程:

1号、

package com.csdn1.entity;public interface UserDao {public void say();
}

2号、

package com.csdn1.entity;public class UserDaoImplement implements UserDao{@Overridepublic void say() {// TODO Auto-generated method stubSystem.out.println("你已经成功创建了一个java类。。");}}

3号:

<?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/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="userDao" class="com.csdn1.entity.UserDaoImplement">  </bean><!-- more bean definitions go here --></beans>

4号

package com.csdn1.entity;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class test {public static void main(String[] args) {// TODO Auto-generated method stubApplicationContext applicationContext=new ClassPathXmlApplicationContext("beans.xml");UserDao userDao=(UserDao)applicationContext.getBean("userDao");userDao.say();}}

依赖注入与控制反转

在传统模式下,调用者会采用“new 被调用者”的代码方式来创建被调用者这个需要使用的对象。使用Spring框架,被调用者只需要让spring容器来创建,从spring的角度看来,只是进行了依赖注入;从项目的角度看来,控制权从应用代码转移到了spring容器,发生了控制反转,所以说依赖注入和控制反转只是从两个角度描述了同一个概念。IOC的概念更广,使用了DI的程序一定使用了IOC,但是使用了IOC的程序不一定使用了DI。

set注入方法:

package com.csdn1.entity;public interface UserService {public  void say();
}
package com.csdn1.entity;public class UserServiceImplement implements UserService{UserDao beServicedUser;public void setBeServicedUser(UserDao beServicedUser) {this.beServicedUser = beServicedUser;}@Overridepublic void say() {// TODO Auto-generated method stubSystem.out.println("com.csdn1.entity.UserServiceImplement:你创建了一个UserService类");beServicedUser.say();     }}
<?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/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="userDao" class="com.csdn1.entity.UserDaoImplement">  </bean><bean id="userService" class="com.csdn1.entity.UserServiceImplement">  <property name="beServicedUser" ref="userDao"></property></bean></beans>

< property >是< bean >元素的子元素,它用于调用Bean实例中的setXXX()方法完成属性赋值,从而实现依赖注入,其name属性表示Bean实例中的相应属性名,ref属性用于表示指定其属性值。

package com.csdn1.entity;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class test {public static void main(String[] args) {// TODO Auto-generated method stubApplicationContext applicationContext=new ClassPathXmlApplicationContext("beans.xml");UserService userService=(UserService)applicationContext.getBean("userService");userService.say();}}

使用spring容器通过实现类调用另一个实用类的方法并输出结果,是实际开发中最为常用的一种方法。
引jar包:

在项目的WEB-INF/lib目录下引入spring框架的四个核心包和第三方依赖包common-logging.jar包(四个核心包在spring框架的libs目录下)

点击这个网址下载最新版本的Spring框架spring-framework-X.X.X.release-dist.zip

点击这个网址下载最新版本的commons-logging-1.2.jar,截止博主写这篇博客为止,commons-logging这个框架包就一直停留在的2014年

添加Spring的约束配置信息:

对于5.2.9版本在:spring框架包/docs/spring-framework-reference/index.html/Core里面能找到约束信息

实验一:
利用Spring框架为自己的校园卡充值。
在Dao层建立CardDao类,编写充值方法,实现充值(在控制台显示充值金额),在Biz层建立CardBiz类,编写充值方法,调用Dao层中的充值方法,完成充值。充值金额在配置文件中输入。实现过程中不能利用new 操作来完成类的实例化。
实验2:根据自己的理解,解释IoC、DI(上面有)

四、上机操作的基本步骤(每个题目的关键代码及注释)
CardDao.java

CardDao_Implement.java

Main.java

CardBiz_Implement.java

Spring入门程序的编写(实验一+第一章知识总结)相关推荐

  1. spring入门程序

    Spring入门程序 步骤 1. 创建web项目,把sprng基础包和依赖包放入lib目录中 注意"[eclipse引入jar包的方法](https://blog.csdn.net/qq_2 ...

  2. IDEA下——Spring入门程序

    创建一个Maven的项目,我的项目结构如下: 在pom文件里写下需要导入的依赖: <?xml version="1.0" encoding="UTF-8" ...

  3. 《深入理解 Spring Cloud 与微服务构建》第一章 微服务简介

    <深入理解 Spring Cloud 与微服务构建>第一章 微服务简介 文章目录 <深入理解 Spring Cloud 与微服务构建>第一章 微服务简介 一.单体架构及其存在的 ...

  4. Python入门到精通【精品】第一章 - Python概述

    Python入门到精通[精品]第一章 - Python概述 1. Python语言历史 2. Python语言特点 3. Python的下载和安装 3.1. Python的下载 3.2. Python ...

  5. 计算机基础实验测试题第一章(悄悄变强秘籍)

    计算机基础实验测试题第一章 一.单项选择题(每题2分,共10题,共20分) 1(2分)关于微型计算机体系结构,下列说法正确的是() A.微处理器由运算器.控制器和存储器组成. B.微机的CPU.内存等 ...

  6. 程序员视角的计算机系统 第一章 计算机系统 之旅

    程序员视角的计算机系统 第一章 计算机系统 之旅 一个计算机系统由硬件和系统软件组成,硬件和软件一起工作来运行应用程序. 系统的特定的实现随时间的流逝而改变,但是它的本质性的概念不会改变. 所有的计算 ...

  7. Spring实战第五版观后感之第一章

    spring所做的一切都是在简化开发,所以今天我们就来说说我所了解到的第一章的内容 一.什么是Spring? Spring的核心是提供了一个容器,通常称为Spring应用上下文,它们会创建和管理应用组 ...

  8. 《金文女神解说VB基础入门系列视频教程》300集 第一章笔记

    第一章 Visual Basic 程序开发环境 第一节 Visual Basic 的启动与退出 一.启动VB的四种方法: 1.使用"开始"菜单中的"程序"命令. ...

  9. 自然语言处理入门(何晗):第一章

    第一章 新手上路 **自然语言处理(NLP)**是一门融合了计算机科学.人工智能以 及语言学的交叉学科, 这门学科研究的是如何通过机器学习等技术, 让计算机学会处理人类语言,乃至实现终极目标--理解人 ...

最新文章

  1. 请问大侠maven怎么添加ms的jdbc驱动啊,1.6jdk
  2. Docker + Jenkins 快速打造 PHP 持续集成服务器
  3. asp.net core程序在k8s中基于rabbitmq队列消息数的HPA实践!
  4. Leetcode 771. Jewels and Stones
  5. 同样一句代码,在类内调用,跟类外调用结果不同?
  6. C语言--《C专家编程》C语言申明的优先级规则
  7. 在html中加入中文字体,html中中文字体的代码
  8. python编程大赛队名_阿尔托莉雅队?编程大赛冠军队伍名字亮了
  9. input file 选择图片并显示
  10. c语言斗兽棋源代码,智能斗兽棋-智能斗兽棋下载-医源世界
  11. 浅谈云原生的“前世今生”
  12. 英语口语练习四十三之7种方式说“温柔”
  13. 正则表达式和re模块
  14. 领导说“辛苦了”该怎么回?低情商说不辛苦,怎么回才显情商高?
  15. Redis:集合SADD、SISMEMBER、SPOP、SRANDMEMBER、SREM、SMOVE、SCARD、SMEMBERS、SSCAN命令介绍
  16. JAVA实训8:期末总结
  17. 三行代码爬取京东数据
  18. Selenium原理探秘
  19. 数据库SQL语句UPDATE能否修改主码
  20. 阿里云EasyExcel读写excel表数据

热门文章

  1. 教程 | 零基础学画禅绕画——陨落的花朵
  2. 【XingleiGao的日常】我的学习生活的一天 | 以我的一天启迪大家对时间的安排
  3. php smtp 安装,服务器_个人SMTP邮件服务器简单配置,一、安装POP3和SMTP服务组件- phpStudy...
  4. 用正则表达式提取SQL
  5. 《基于图像识别的垃圾分类应用》 软件项目组织与管理 课程设计
  6. vue实现显示10条数据点击查询看更多
  7. Python的作者及简介
  8. Procrastination
  9. PHP图像基本操作绘制圣诞雪花图
  10. 社群运营的11个小技巧