Day1. Spring
创始人
2024-05-07 10:32:00
0

1 课程描述

  • IoC基础容器,主要涉及Bean对象的管理。

  • AOP面向切面编程,主要涉及切面配置,声明式事务控制

  • Spring整合Web环境。

  • Web层解决方案-SpringMVC.

1.1 IoC、DI和AOP思想的提出

由于传统的JavaWeb出现的问题:

问题1:层与层之间紧密耦合在一起,接口与具体实现紧密耦合在一起。

问题2:通用的事务功能和日志功能耦合在代码中。

基于上述问题提出IoC、DI和AOP思想

IoC:Inversion of Control,程序创建Bean的权利反转给第三方。

DI:Dependency Injection 依赖注入,强调Bean之间的关系,Bean2是Bean1的属性

AoP:面向切面编程,主要实现方式是代理。

2 Spring 框架的诞生

spring是一个开源的轻量级Java开发应用框架,可以简化企业级应用开发。Spring解决了开发者在JavaEE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。是当前企业中Java开发几乎不能缺少的框架之一。Spring的生态及其完善,不管是Spring哪个领域的解决方案都是依附于在SpringFramework基础框架的。

2.1 Spring 快速入门

  1. 导入坐标

  1. 编写UserService接口与其实现,只建立java文件,不用写代码。

  1. 配置到XML文件

  1. 写测试代码。

Bean文件




测试代码1:基于BeanFactory的bean管理

package cn.msf.test;import cn.msf.service.UserSerice;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;/*** @author : msf* @date : 2023/1/6*/
public class BeanFactoryTest {public static void main(String[] args) {// 1. 创建工厂对象DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();// 2. 创建读取器,读取xml文件XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);// 3. 读取器配置文件给工厂.reader.loadBeanDefinitions("beans.xml");// 4. 测试UserSerice userSerice = (UserSerice) beanFactory.getBean("userSerice");System.out.println("userSerice = " + userSerice);}
}

总结:这个也是很鸡肋啊,每次创建service文件都要使用getBean有没有简单的方式呢?可以使用注解形式进行简化。


我们都知道三层架构,dao层要注入到service中,service要注入到controller层中。spring如何进行依赖注入呢?


测试代码2:基于ApplicationContext的bean管理;

ApplicationContext 称为Spring容器,内部封装了BeanFactory,比BeanFactory功能更丰富更强大,使用ApplicationContext 进行开发时,xml配置文件的名称习惯写成applicationContext.xml。

package cn.msf.test;import cn.msf.service.UserSerice;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** @author : msf* @date : 2023/1/6*/
public class AppContextTest {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");UserSerice userSerice = (UserSerice) context.getBean("userSerice");}
}
因为内部集成了beanFactory,因此可以不用再创建beanFactory,而可以直接加载xml文件。然后对bean进行管理。
这里还有一个小点,ApplicationContext是接口,要通过子类创建,因此可以使用ctrl + H查看。

3 总结:

如何简单的理解IoC呢?我们可以把他简单抽象成Map+反射。map主键存入userService,值存入它的全限定名。然后知道全限定名以后利用反射思想进行创建。当然这一切都想要读取xml,然后通过反射生成对象存入到spring容器中。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...