实验一:关于使用Spring IOC/DI 模拟添加账户功能的练习
1、使用Spring IOC/DI 模拟添加账户功能,程序设计涉及:
(1)Account类:账户类,包括属性name、id,并为所有属性生成get和set方法。
(2)AccountDao类:模拟数据库访问,方法void save(Account a)实现打印输出“添加的用户信息为:name=XX,id=XX”。
(3)AccountService类:模拟业务逻辑访问,包含属性对象AccountDao dao方法void save(Account a)通过调用AccountDao类中的save方法模拟完成用户信息的添加,并为属性生成set方法。
(4)AccountController类:模拟控制层,包含属性对象AccountService service和方法void save(Account a)调用AccountService类中的save方法模拟完成用户信息的添加,并为属性生成set方法。
(5)对以上(2)、(3)、(4)类的使用IOC容器实例化,对(1)类使用new实例化;并使用DI将AccountDao类对象注入进AccountService类中,将AccountService类对象注入进AccountController类中。
(6)Test类测试,完成name=“张三” id=’”16699”的账户添加。
解答:
分别为每个类建立一个属于自己的包,再在包中新建类,如图所示
Account类中的源代码如下:
package com.ioc.entity;
public class Account {
String name;
String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
AccountDao类中的代码如下:
package com.ioc.dao;
import com.ioc.entity.Account;
public class AccountDao {
public void save(Account a) {
System.out.println("添加用户信息为:name="
+a.getName()+" "+"id="+a.getId());
}
}
AccountService类中的代码如下:
package com.ioc.service;
import com.ioc.dao.AccountDao;
import com.ioc.entity.Account;
public class AccountService {
AccountDao dao;
public AccountDao getDao() {
return dao;
}
public void setDao(AccountDao dao) {
this.dao = dao;
}
public void save(Account a) {
dao.save(a);
}
}
AccountController类中代码如下:
package com.ioc.controller;
import com.ioc.entity.Account;
import com.ioc.service.AccountService;
public class AccountController {
AccountService service;
public AccountService getService() {
return service;
}
public void setService(AccountService service) {
this.service = service;
}
public void save(Account a) {
service.save(a);
}
}
最后test测试类中代码:
package com.ioc.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.ioc.controller.AccountController;
import com.ioc.entity.Account;
public class test {
public static void main(String [] args) {
// 获取ApplicationContext.xml的对象,以前获取一个类的里面的属性,需要经过这个类的同意,也就是调取这个类,但是
// 它是将所有的类都交于ApplicationContext.xml来控制,所以需要经过他的同意,也就是先实例化一个对象(获取他的对象)
ApplicationContext context=new FileSystemXmlApplicationContext("src/applicationContext.xml");
// 因为AccountController已经在ApplicationContext.xml中可以控制其他的
//属性了,所以这里只需要从bean里面获取AccountController的对象就行了
AccountController c=(AccountController) context.getBean("c1");
Account a=new Account();
a.setName("张三");
a.setId("16699");
c.save(a);
}
}
测试结果
测试需要的相关包
java EE课堂练习的所有架包,无须积分,自行下载即可
总结:以上代码皆是由我用eclipse软件运行出来的,如果有错误的地方希望各位大佬指出,我会认真检查并努力改正,谢谢!!!