Spring框架的介绍、工厂设计模式以及Spring环境的搭建
创始人
2024-03-21 09:20:36
0

spring崇尚:不重复的造轮子

二、工厂设计模式


工厂设计模式:工厂生产对象(配置文件properties+反射)

Spring创建对象的实现原理:

根据配置文件的id得到对应的class属性值,根据反射,通过类全路径创建对象;

通过配置文件,通过工厂设计模式,有反射动态创建对象

具体步骤为:

1 创建一个小配置文件a1.properties、放在src下

key=value

username=hr

password=hr

2 利用流读取小配置文件

InputStream is = Xxx.class.getResourceAsStream(“/a1.properties”);

3 创建Properties的对象,加载读取的输入流

Properties pro = new Properties();

pro.load(is)

1.4 根据key获取value

String value = pro.getProperty(“username”);

Spring 框架就利用工厂设计模式对Service和DAO进行解耦合

何为工厂:创建管理对象的容器

思路:将对象的创建交给工厂完成,工厂读取小配置文件,获取要创建对象的全限定名,利用反射创建类的对象并发返回给调用者

  1. 编写小配置文件,存放需要由工厂创建对象的全限定名

  2. 创建一个类BeanFactory (对象工厂,工厂设计模式的核心类)

bean(对象) Factory(工厂)

1.1 使用静态代码块加载读取小配置文件

1.2 创建一个方法创建开发者需要的对象

如下图所示:

工厂类的创建

  1. 在业务逻辑层中,将自己创建对象的代码删掉,交给工厂创建

在这里插入图片描述

如此,就把我们的Service和Dao进行了解耦合,使得Dao实现类的创建不再在程序中创建,而是通过读取配置文件来创建。这样的解耦合使得程序更灵活,

三、搭建Spring开发环境


1.1 添加jar包,

搭建一个基础的Spring环境所需要的最基础的jar包有以下几个:

搭建spring环境所需的jar包

1.2 添加配置文件applicationContext.xml,放在src下

1.3 配置applicationContext.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89JdcYon-1670239903517)(https://mmbiz.qpic.cn/mmbiz_png/nMicohCxH9r2BPjylgQTOxQFBMTBcucNMZpohd3FpUkGsDf2wzGZa3cjx7icEg6dCMg15vGibA9Q8C21s6CdL6K0g/0?wx_fmt=png)]

s"

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd">

1.4 创建spring工厂,获取对象

import com.macw.entity.Person;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test1 {

public static void main(String[] args) {

//需求:获取Person这个类的对象

//1.创建spring工厂 参数:写appliactionContext.xml文件的路径

//classpath(类路径): src就是classpath路径的根

ClassPathXmlApplicationContext ac =

new ClassPathXmlApplicationContext(“classpath:applicationContext.xml”);

//2.从spring工厂中获取Person类的对象

//参数:bean标签的id

Person person = (Person) ac.getBean(“p1”);

System.out.println(person);

}

四、spring创建对象的时机和次数


时机:什么时候创建这个类的对象?

次数:它是单例还是多例?

bean标签有一个属性:

System.out.println(person);

}

四、spring创建对象的时机和次数


时机:什么时候创建这个类的对象?

次数:它是单例还是多例?

bean标签有一个属性:

相关内容

热门资讯

金证股份(600446)披露拟... 截至2025年12月26日收盘,金证股份(600446)报收于15.75元,较前一交易日下跌0.19...
央行:进一步丰富维护金融市场稳... 每经AI快讯,央行网站12月26日消息,中国人民银行近日发布了《中国金融稳定报告(2025)》。下一...
新华鲜报丨利好跨国公司!这项跨... 新华社北京12月26日电(记者刘开雄、吴雨)中国人民银行、国家外汇管理局12月26日发布通知,在总结...
日元空头共识渐成:2026年或... 随着日本央行最新加息举措未能提振汇率,华尔街对日元的看空情绪再度升温,市场正逐渐形成日元将长期疲软的...
北平锋:民进党当局对所谓“两岸... 12月26日,台湾《中国时报》报道,陆委会近日推动所谓“两岸人民关系条例”四项修正,包含:公务员赴陆...
AI核心产业超万亿,工信部将完... 今年,工业经济顶压前行、向新向优发展,展现强大韧性和活力。 12月25日至26日,全国工业和信息化工...
神州泰岳(300002)披露全... 截至2025年12月26日收盘,神州泰岳(300002)报收于11.37元,较前一交易日上涨0.09...
车企起诉电池企业第一案!吉利旗... 出品 | 搜狐汽车·汽车咖啡馆 作者 | 胡耀丹 2024年底发出的回旋镖,在2025年底向欣旺达疾...
海南产经新观察:封关政策释红利... 中新网海南东方12月26日电 (陈英清)“海南自贸港封关运作顺利实施,政策红利持续释放,南繁水稻制种...