Spring入门程序的编写(实验一+第一章知识总结)
这是一个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入门程序的编写(实验一+第一章知识总结)相关推荐
- spring入门程序
Spring入门程序 步骤 1. 创建web项目,把sprng基础包和依赖包放入lib目录中 注意"[eclipse引入jar包的方法](https://blog.csdn.net/qq_2 ...
- IDEA下——Spring入门程序
创建一个Maven的项目,我的项目结构如下: 在pom文件里写下需要导入的依赖: <?xml version="1.0" encoding="UTF-8" ...
- 《深入理解 Spring Cloud 与微服务构建》第一章 微服务简介
<深入理解 Spring Cloud 与微服务构建>第一章 微服务简介 文章目录 <深入理解 Spring Cloud 与微服务构建>第一章 微服务简介 一.单体架构及其存在的 ...
- Python入门到精通【精品】第一章 - Python概述
Python入门到精通[精品]第一章 - Python概述 1. Python语言历史 2. Python语言特点 3. Python的下载和安装 3.1. Python的下载 3.2. Python ...
- 计算机基础实验测试题第一章(悄悄变强秘籍)
计算机基础实验测试题第一章 一.单项选择题(每题2分,共10题,共20分) 1(2分)关于微型计算机体系结构,下列说法正确的是() A.微处理器由运算器.控制器和存储器组成. B.微机的CPU.内存等 ...
- 程序员视角的计算机系统 第一章 计算机系统 之旅
程序员视角的计算机系统 第一章 计算机系统 之旅 一个计算机系统由硬件和系统软件组成,硬件和软件一起工作来运行应用程序. 系统的特定的实现随时间的流逝而改变,但是它的本质性的概念不会改变. 所有的计算 ...
- Spring实战第五版观后感之第一章
spring所做的一切都是在简化开发,所以今天我们就来说说我所了解到的第一章的内容 一.什么是Spring? Spring的核心是提供了一个容器,通常称为Spring应用上下文,它们会创建和管理应用组 ...
- 《金文女神解说VB基础入门系列视频教程》300集 第一章笔记
第一章 Visual Basic 程序开发环境 第一节 Visual Basic 的启动与退出 一.启动VB的四种方法: 1.使用"开始"菜单中的"程序"命令. ...
- 自然语言处理入门(何晗):第一章
第一章 新手上路 **自然语言处理(NLP)**是一门融合了计算机科学.人工智能以 及语言学的交叉学科, 这门学科研究的是如何通过机器学习等技术, 让计算机学会处理人类语言,乃至实现终极目标--理解人 ...
最新文章
- 请问大侠maven怎么添加ms的jdbc驱动啊,1.6jdk
- Docker + Jenkins 快速打造 PHP 持续集成服务器
- asp.net core程序在k8s中基于rabbitmq队列消息数的HPA实践!
- Leetcode 771. Jewels and Stones
- 同样一句代码,在类内调用,跟类外调用结果不同?
- C语言--《C专家编程》C语言申明的优先级规则
- 在html中加入中文字体,html中中文字体的代码
- python编程大赛队名_阿尔托莉雅队?编程大赛冠军队伍名字亮了
- input file 选择图片并显示
- c语言斗兽棋源代码,智能斗兽棋-智能斗兽棋下载-医源世界
- 浅谈云原生的“前世今生”
- 英语口语练习四十三之7种方式说“温柔”
- 正则表达式和re模块
- 领导说“辛苦了”该怎么回?低情商说不辛苦,怎么回才显情商高?
- Redis:集合SADD、SISMEMBER、SPOP、SRANDMEMBER、SREM、SMOVE、SCARD、SMEMBERS、SSCAN命令介绍
- JAVA实训8:期末总结
- 三行代码爬取京东数据
- Selenium原理探秘
- 数据库SQL语句UPDATE能否修改主码
- 阿里云EasyExcel读写excel表数据