2025年java基础 冯佳

java基础 冯佳Java web 2022 跟学尚硅谷五 后端基础 2 java 基础 冯佳 2MVC 优化 依赖注入和控制反转 类图 FruitControl FruitService FruitService BeanFactory ClassPathXml DispatcherSe applicationC xml 总结

大家好,我是讯享网,很高兴认识大家。



Java web 2022跟学尚硅谷五 后端基础

  • 2.java基础 冯佳2MVC优化.依赖注入和控制反转
  • 类图
  • FruitController
  • FruitServiceInterface
  • FruitServiceImpl
  • BeanFactory
  • ClassPathXmlApplicationContext
  • DispatcherServlet
  • applicationContext.xml
  • 总结

2.2MVC优化.依赖注入和控制反转

尚硅谷 java 笔试题_java

类图

尚硅谷 java 笔试题_sql_02

FruitController

FruitServiceInterface

讯享网

FruitServiceImpl

 

BeanFactory

讯享网

ClassPathXmlApplicationContext

 

DispatcherServlet

 

applicationContext.xml

 

总结

今日内容:

  1. 再次学习Servlet的初始化方法
  2. Servlet生命周期:实例化、初始化、服务、销毁
  3. Servlet中的初始化方法有两个:init() , init(config)
    其中带参数的方法代码如下:
 

另外一个无参的init方法如下:

 
  • 获取config对象:ServletConfig config = getServletConfig();
  • 获取初始化参数值: config.getInitParameter(key);
  1. 在web.xml文件中配置Servlet
 
  1. 也可以通过注解的方式进行配置:
 
  1. 学习Servlet中的ServletContext和
  1. 获取ServletContext,有很多方法
    在初始化方法中: ServletContxt servletContext = getServletContext();
    在服务方法中也可以通过request对象获取,也可以通过session获取:
 
 
 
  1. 什么是业务层
  1. Model1和Model2
    MVC : Model(模型)、View(视图)、Controller(控制器)
    视图层:用于做数据展示以及和用户交互的一个界面
    控制层:能够接受客户端的请求,具体的业务功能还是需要借助于模型组件来完成
    模型层:模型分为很多种:有比较简单的pojo/vo(value object),有业务模型组件,有数据访问层组件
  1. pojo/vo : 值对象
  2. DAO : 数据访问对象
  3. BO : 业务对象
  1. 区分业务对象和数据访问对象:
    1) DAO中的方法都是单精度方法或者称之为细粒度方法。什么叫单精度?一个方法只考虑一个操作,比如添加,那就是insert操作、查询那就是select操作…
    2) BO中的方法属于业务方法,也实际的业务是比较复杂的,因此业务方法的粒度是比较粗的
    注册这个功能属于业务功能,也就是说注册这个方法属于业务方法。
    那么这个业务方法中包含了多个DAO方法。也就是说注册这个业务功能需要通过多个DAO方法的组合调用,从而完成注册功能的开发。
    注册:
    1. 检查用户名是否已经被注册 - DAO中的select操作
    2. 向用户表新增一条新用户记录 - DAO中的insert操作
    3. 向用户积分表新增一条记录(新用户默认初始化积分100分) - DAO中的insert操作
    4. 向系统消息表新增一条记录(某某某新用户注册了,需要根据通讯录信息向他的联系人推送消息) - DAO中的insert操作
    5. 向系统日志表新增一条记录(某用户在某IP在某年某月某日某时某分某秒某毫秒注册) - DAO中的insert操作
    6. …
  2. 在库存系统中添加业务层组件

4.IOC
1) 耦合/依赖
依赖指的是某某某离不开某某某
在软件系统中,层与层之间是存在依赖的。我们也称之为耦合。
我们系统架构或者是设计的一个原则是: 高内聚低耦合。
层内部的组成应该是高度聚合的,而层与层之间的关系应该是低耦合的,最理想的情况0耦合(就是没有耦合)
2) IOC - 控制反转 / DI - 依赖注入
IOC - 控制反转 / DI - 依赖注入
控制反转:
1) 之前在Servlet中,我们创建service对象 , FruitService fruitService = new FruitServiceImpl();
这句话如果出现在servlet中的某个方法内部,那么这个fruitService的作用域(生命周期)应该就是这个方法级别;
如果这句话出现在servlet的类中,也就是说fruitService是一个成员变量,那么这个fruitService的作用域(生命周期)应该就是这个servlet实例级别
2) 之后我们在applicationContext.xml中定义了这个fruitService。然后通过解析XML,产生fruitService实例,存放在beanMap中,这个beanMap在一个BeanFactory中
因此,我们转移(改变)了之前的service实例、dao实例等等他们的生命周期。控制权从程序员转移到BeanFactory。这个现象我们称之为控制反转

依赖注入:
1) 之前我们在控制层出现代码:FruitService fruitService = new FruitServiceImpl();
那么,控制层和service层存在耦合。
2) 之后,我们将代码修改成FruitService fruitService = null ;
然后,在配置文件中配置:

 
小讯
上一篇 2024-12-27 17:23
下一篇 2024-12-27 22:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5128.html