通过Spring的IoC和DI思想创建一个小项目便于理解spring

  • 题目:
    1、使用Spring IOC/DI 模拟某超市管理功能,程序设计涉及:
    (1)Product类(商品类):含id(商品编号)、proName(商品名称)、price(价格),并为所有属性生成get和set方法。
    (2)Market类(超市类):含marketName(超市名称)、productArr(仓库,List集合)
    (3)MarketDao类:模拟数据库访问,包含属性对象 Market m,和方法Product findByid(String id)来实现根据商品编号查找商品,方法List findAll()来实现返回仓库(商品集合),方法void addpro(Product p)来实现添加商品功能;方法void delproByid(String id)来实现根据商品编号删除仓库当中的商品。
    (4)MarketService 类:模拟业务逻辑层,包含属性对象MarketDao dao,通过调用MarketDao类中的方法来实现对商品仓库的查询、添加、删除等功能,并为属性生成set方法。
    (5)MarketController:模拟控制层,包含属性对象MarketService service通过调用MarketService类中的方法来实现对商品仓库的查询、添加、删除等功能,并为属性生成set方法。
    (6)对以上(2)、(3)、(4)、(5)的类使用IOC容器实例化,对(1)的类使用new实例化;并使用DI将MarketDao类对象注入进MarketService类中,将MarketService类对象注入进MarketController类中,将Market类对象注入进MarketDao类中。
    (7)Test类测试,分别创建(new)五个商品对象例如:(1001,电视机,3500)、(1002,洗衣机,10500)、(1003,空调,3200)、(1004,吊灯,1000)、(1005,破壁机,210);将这5个商品对象保存在集合List对象中,将集合对象赋值给由IOC容器创建Market类对象里的productArr属性然后测试MarketController中的方法,完成对超市仓库的查询等操作。

1. 创建项目

2. 创建lib文件夹导入需要的jar包

3. 代码

  1. Market类代码
package com.ioc.market;import java.util.List;import com.ioc.product.Product;public class Market {String name;List<Product> proarry;public String getname() {return name;}public void setname(String name) {this.name = name;}public List<Product> getProarry() {return proarry;}public void setProarry(List<Product> proarry) {this.proarry = proarry;}}
  1. Product类代码
package com.ioc.product;public class Product {String name;String id;String price;public Product(String i,String n,String p) {id=i;name=n;price=p;} 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;}public String getPrice() {return price;}public void setPrice(String price) {this.price = price;}}
  1. MarketDao类代码
package com.ioc.dao;import java.util.List;
import com.ioc.market.Market;
import com.ioc.product.Product;public class MarketDao {Market m;public Market getM() {return m;}public void setM(Market m) {this.m = m;}public void findByid (String id) {for(Product p:m.getProarry()) {if(id==p.getId()){System.out.println(p.getId()+" "+p.getName()+" "+p.getPrice());}}}public void findAll(){for(Product p:m.getProarry()) {System.out.println(p.getId()+" "+p.getName()+" "+p.getPrice());}}public void addpro(Product p) {m.getProarry().add(p);}public void delproByid(String id) {Product p1=null;for(Product p:m.getProarry()) {if(id==p.getId()) {//                  m.getProarry().remove(p.getId());p1=p;}}   m.getProarry().remove(p1);}
}
  1. MaeketService类代码
package com.ioc.service;import com.ioc.dao.MarketDao;
import com.ioc.product.Product;public class MarketService {MarketDao dao;public MarketDao getDao() {return dao;}public void setDao(MarketDao dao) {this.dao = dao;}public void findAll() {dao.findAll();}public void addpro(Product p) {dao.addpro(p);}public void delpro(String id) {dao.delproByid(id);}public void findByid (String id) {dao.findByid(id);}
}
  1. MaerketController类代码
package com.ioc.controller;import com.ioc.product.Product;
import com.ioc.service.MarketService;public class MarketController {MarketService service;public MarketService getService() {return service;}public void setService(MarketService service) {this.service = service;}public void findAll() {service.findAll();}public void addpro(Product p) {service.addpro(p);}public void delproByid(String id) {service.delpro(id);}public void findByid (String id) {service.findByid(id);}}
  1. test类代码
package com.ioc.test;import java.util.ArrayList;
import java.util.List;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;import com.ioc.controller.MarketController;
import com.ioc.market.Market;
import com.ioc.product.Product;public class tets {public static void main(String [] args) {ApplicationContext context =new FileSystemXmlApplicationContext("applicationContext.xml");Product p1=new Product("1","电视机","2000");Product p2=new Product("2","洗衣机","3000");Product p3=new Product("3","空调","4000");List<Product> list=new ArrayList<Product>();list.add(p1);list.add(p2);list.add(p3);Market m=(Market)context.getBean("m1");m.setProarry(list);MarketController c=(MarketController)context.getBean("c1");c.findAll();System.out.println("添加一个项目");Product p4=new Product("4","飞机","5000");c.addpro(p4);c.findAll();System.out.println("删除一个项目");c.delproByid("1");c.findAll();System.out.println("查找一个项目");c.findByid("3");}}
  1. application Context.xml代码
<?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="m1" class="com.ioc.market.Market"><property name="name" value="大润发"/>
</bean>
<bean id="d1" class="com.ioc.dao.MarketDao"><property name="m" ref="m1"></property>
</bean>
<bean name="s1" class="com.ioc.service.MarketService"><property name="dao" ref="d1"></property>
</bean>
<bean id="c1" class="com.ioc.controller.MarketController"><property name="service" ref="s1"></property>
</bean>
</beans>

4. 结果

笔记

  • 由于是List proarry的类型是Product,所以其不能像String类型一样的来赋值,其要先建立一个Product类然后在其内自建一个有参构造方法,以便在test类实例化时一并赋值,在test中赋值后还要将其添加进List列表当中,然后将List赋值给market的对象。
  • 在test执行时是先得到xml文件的对象然后再从xml文件中获取Market Controller类的对象,依次执行增、删、改、查。

Java EE---使用Spring框架创建Market小项目相关推荐

  1. Java EE---使用Spring框架创建Department小项目

    Department 1.项目清单 2.代码 2.1. Department类代码 2.2. departmentfactory类代码 2.3. Project类代码 2.4. Employee类代码 ...

  2. Java EE---Spring框架创建Account小项目

    使用Spring建立项目Account(初识dao.service.controller三者关系) 题目 1.使用Spring IOC/DI 模拟添加账户功能,程序设计涉及: (1)Account类: ...

  3. java ee架构_与Java EE和Spring的集成架构

    java ee架构 本周在纽约举行的O'Reilly软件体系结构大会将举行 . 我很高兴与Josh Long一起提供有关如何集成Java EE和Spring的教程. 一段时间以来,我们一直在开玩笑. ...

  4. 与Java EE和Spring的集成架构

    本周在纽约举行的O'Reilly软件体系结构大会将举行 . 我很高兴与Josh Long一起提供了有关如何集成Java EE和Spring的教程. 一段时间以来,我们一直在开玩笑. 某些人想到的对两种 ...

  5. 深圳Java培训:Spring框架之动态代理

    深圳Java培训:Spring框架之动态代理 前言 动态代理是一种常用的设计模式,广泛应用于框架中,Spring框架的AOP特性就是应用动态代理实现的,想要理解AOP的实现原理我们就必须先理解动态代理 ...

  6. Java SE、Java EE 与 Spring

    JavaSE.JavaEE 与Spring的概念 在Java世界中,很多人都对Java SE.J2EE.Java EE.Spring.EJB等这些术语感到困惑. 什么是Java SE 可以说这是Jav ...

  7. java集成hibernate_JavaWeb_(Spring框架)Spring整合Hibernate

    Dao层类要继承HibernateDaoSupport.java父类 原先使用Hibernate框架hibernate.cfg.xml配置数据库 com.mysql.jdbc.Driver jdbc: ...

  8. java毕业设计基于spring框架的论坛网站项目设计和源码

    一.主题 榴莲社区--java开发基于spring框架的论坛网站,基于spring框架的论坛网站项目设计和项目 源 码 免 费下 载 链 接 如 下:  毕业设计项目基于spring框架的论坛网站源码 ...

  9. java ee ssh三大框架知识点_详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)...

    详解JAVAEE--SSH三大框架整合(spring+struts2+hibernate) 发布时间:2020-09-17 13:34:05 来源:脚本之家 阅读:64 作者:kent鹏 一.整合原理 ...

最新文章

  1. (cljs/run-at (JSVM. :all) Metadata就这样哦)
  2. 《JavaScript高级程序设计》阅读笔记(二):ECMAScript中的原始类型
  3. 在Ubuntu虚拟机中安装VMware tools异常中断
  4. CentOS 6.5安全加固及性能优化
  5. extjs用iframe的问题
  6. [翻译]IE8下VML的变化
  7. Web服务技术协议:REST与SOAP
  8. 对我影响最大的三个老师
  9. Socket编程模式理解与对比
  10. 利用深度学习从单个损伤和斑点中识别植物病害
  11. p语言是python吗-Python 这语言真是混乱和原始
  12. android base64 字符串,Android 文件转base64字符串
  13. GJB5000A与DO178B/C简介及对比
  14. [转载]《澄明之境》:投资是一种信仰
  15. java 不生成文件下载_java – 浏览器不生成文件下载对话框
  16. docker镜像迁移mysql启动报错_README.md
  17. mysql无法生成备份产生读锁_mydumper 备份原理和使用方法(备份mysql)
  18. 第九批车船税减免名单公示 新能源汽车共计444款
  19. 微信小程序复制对象json
  20. python numpy中setdiff1d的用法

热门文章

  1. 数据处理程序语言中的基本数据类型
  2. (转)面向对象的 JavaScript 编程:dojo.declare 详解
  3. SQL 的Over 子句
  4. sulime text 3
  5. 用Leangoo敏捷看板工具管理 产品线路图
  6. 看了眼大厂程序员的工资单,我酸了!
  7. 【高并发】面试官:说说缓存最关心的问题?有哪些类型?回收策略和算法?...
  8. 一个小需求,能够做到月活跃用户5000万,就是真牛逼!
  9. 谷歌员工论坛自述引程序员羡慕,只招募最优秀的人,薪资福利超棒
  10. JVM 与 Linux 的内存关系详解