使用Spring建立项目Account(初识dao、service、controller三者关系)

  • 题目
    1、使用Spring IOC/DI 模拟添加账户功能,程序设计涉及:
    (1)Account类:账户类,包括属性name、id,并为所有属性生成get和set方法。
    (2)AccountDao类:模拟数据库访问,方法void save(Account a)实现打印输出“添加的用户信息为:name=***,id=***”。
    (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=’”1999”的账户添加。

1. 创建项目

2. 导入jar包并应用

  • 选中工程右键如图
  • 点击Add JARs
  • 选择你放入lib文件夹下的jar包(需自己下载jar包并放入lib文件夹下)导入并应用即可

3. 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;}}

4. Account Dao类代码

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());}
}

5.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);}}

6.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);}}

7.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 context = new FileSystemXmlApplicationContext("src/applicationContext.xml") ;AccountController c=(AccountController) context.getBean("c1");Account a =new Account();a.setName("刘");a.setId("1999");c.save(a);}
}

8.applicationContext.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">
<!-- 使用spring来创建对象,在spring中这些都会成为Bean
bean相当于new了一个对象=========Hello h2 =new hello();
id=变量名
class=new的对象
property标签相当于给对象中的属性设置一个值=======h2.set("****");--><bean id="d1" class="com.ioc.dao.AccountDao"></bean>
<bean id="s1" class="com.ioc.service.AccountService">
<!-- 将AccountDao类对象注入进AccountService类中 --><property name="dao" ref="d1"/>
</bean>
<bean id="c1" class="com.ioc.controller.AccountController">
<!-- 将AccountService类对象注入AccountController类中 --><property name="service" ref="s1"/>
</bean>
</beans>

9.输出结果

笔记

  • Spring ioc的核心思想是将所有类的控制权转交到xml文件中,减少各个类之间的耦合度,使程序更加健壮。
  • xml文件的作用是它可以为每一个在xml文件登记过(bean过)的类初始化对象并赋值,也就是实例化和装配。然后根据各个类的需要给予其他类的对象然后销毁。
  • 关于Account、AccountDao、AccountService、AccountController之间的关系:Account类是负责最基础的创建基本的类属性;而dao层则是逻辑层,其中大部分代码都在这里实现;Service层是服务层,它会定义一个dao的属性并继承dao的属性;而Controller层是控制层,在xml文件中基本上是获取Controller层的一个对象再逐层控制service、dao层。
  • 且每一个类定义一个属性都要为其设置getter和setter方法。
  • xml文件是配置文件,它主要的属性是beans,其子属性bean的作用是实例化对象,其子子属性value是为bean实例化的类赋值。
  • 个人认为控制反转(IoC)就是将各个类创建实例化的权限交给xml文件来使类被动创建对象。依赖注入(DI)就是资源注入,通俗来讲就是赋值。

Java EE---Spring框架创建Account小项目相关推荐

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

    通过Spring的IoC和DI思想创建一个小项目便于理解spring 题目: 1.使用Spring IOC/DI 模拟某超市管理功能,程序设计涉及: (1)Product类(商品类):含id(商品编号 ...

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

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

  3. 《Java EE 轻量级框架应用与开发——S2SH》笔记

    嗯,那本书看完了,但是还没有整理完笔记,不太愿意在电脑旁太久,总会看到她,嗯,所以大部分时间在图书馆,只能刷这本书,哎,这些时日,大概是我一生中仅有的阴霾吧,我希望如此,不知道,希望早些赚钱,以此偿还 ...

  4. 《Java EE核心框架实战》—— 2.3 resultMap 标签

    本节书摘来异步社区<Java EE核心框架实战>一书中的第2章,第2.3节,作者: 高洪岩,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.3 < re ...

  5. java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...

    详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...

  6. java ee核心框架实战 pdf_Java EE核心框架实战 高洪岩 中文PDF

    资源名称:Java EE核心框架实战 高洪岩 中文PDF 第1章 MyBatis 3操作数据库 第2章 MyBatis 3常用技能 第3章 Struts 2必备开发技能 第4章 Struts 2文件的 ...

  7. executor线程池框架_如何使用Java 5 Executor框架创建线程池

    executor线程池框架 Java 5以Executor框架的形式在Java中引入了线程池,它允许Java程序员将任务提交与任务执行分离. 如果要使用Java进行服务器端编程,则线程池是维护系统可伸 ...

  8. 如何使用Java 5 Executor框架创建线程池

    Java 5以Executor框架的形式在Java中引入了线程池,它允许Java程序员将任务提交与任务执行分离. 如果要使用Java进行服务器端编程,则线程池是维护系统可伸缩性,鲁棒性和稳定性的重要概 ...

  9. Java EE之idea创建和运行jsp项目

    1.点击打开Inteliij点击Create New Project 2.点击java,再左侧Project SDK选择安装的jdk路径,勾选WebApplication和Create web.xml ...

最新文章

  1. 如何修改Linux主机名
  2. 网络推广外包没有效果?很可能是在网络推广外包基础上出现问题!
  3. TouTiao开源项目 分析笔记7 加载数据的过程
  4. java function获取参数_「Java容器」ArrayList源码,大厂面试必问
  5. 捞人宝估值数亿,已捞出数位大佬,商业模式已验证!
  6. android获取手机的IMSI码
  7. HttpClient工具类 HttpClientUtils.java
  8. 二叉树的常用操作(节点的后继节点)
  9. 微软总裁呼吁:AI刷脸,美国政府该管一管了
  10. DataSet之间的赋值
  11. 用swing开发 震撼的CSDN用户关系图(转)和基于JMF的java rpg入门游戏
  12. 坦克大战之声音处理类(四)
  13. 未来不迎,当下不杂,过往不恋
  14. 三星S9微信和服务器怎么连接,三星s9 微信在后台为什么收不到消息 | 手游网游页游攻略大全...
  15. HTTP/3 ,它来了。
  16. SV学习(8)——随机约束和分布、约束块控制
  17. python爬取贝壳找房之北京二手房源信息
  18. CentOS设置开机自动执行指定命令
  19. 堆栈溢出:Stack overflow (参数: 0x0000000000000001, 0x0000005410A03FF8)
  20. GitHub标星23K!Java 实战博客项目分享

热门文章

  1. 了解你所不知道的SMON功能(十二):Shrink UNDO(rollback) SEGMENT
  2. Tomcat组成与工作原理
  3. 微博并发这么牛逼!看他架构如何设计的?
  4. 银行选型和排坑实战:用开源软件自建分布式数据服务平台
  5. 漫画:腾讯面试题(盛最多水的容器)
  6. 有人说:穷学IT富搞金融!程序员究竟是不是一帮苦孩子在做?
  7. Docker 最初的2小时(Docker从入门到入门)
  8. 团队成员怎样进行工作汇报?
  9. ajax 服务器怎么响应,发出请求对象(AJAX)后如何从服务器获取响应
  10. 怎么用Leangoo管理Bug