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{

	@Override
	public void say() {
		// TODO Auto-generated method stub
		System.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/beans
    https://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 stub

		ApplicationContext 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;
	}
	@Override
	public void say() {
		// TODO Auto-generated method stub
		System.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/beans
        https://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 stub
		ApplicationContext 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

在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值