Spring第一天
Spring体系结构
包含核心容器,AOP springJDBCTemplate, springMVC,单元测试
先写一段最朴素的数据库查询代码
上面的代码是需要依赖mysql的jar包的,如果把mysql的依赖去掉,那程序在编译的时候,就会发生编译期错误,还没等到运行期,在编译期就会发生错误。这个代码的耦合性特别强,独立性特别差!!!在代码中直接用到了某个包,这样的代码依赖性特别强,没有这个包,那在编译期就会发生错误
换成上面的代码,如果没有MySQL的jar包,那么在编译期间就不会发生错误了,而是在运行期间发生错误
解耦的思路:第一步: 使用反射来创建对象,避免使用new关键字,因为new 关键字必须得需要一个类,必须得依赖这个类,而上面的代码中用了反射就只需要一个字符串了,只依赖这个字符串了,这样就会降低当前代码和new后面这个类的耦合性了
第二步:那个字符串在代码中写死了,所以我们就可以通过配置文件来获取要创建的对象的类名
依赖问题分析
先写一个业务层的实现类,写一个保存账户的实现类
这种new来new去肯定不行啊,耦合性太强了,独立性太差了,那该怎么办呢? 我们可以用工厂模式来解耦,我们可以创建一个生产bean对象的工厂类beanFactory
那啥是bean呢?bean就是可重用组件的意思,可重用就是可反复使用的意思,组件就是这个项目的组成部分
javabean是不等于实体类的,,,Javabean是用Java语言编写的可重用组件,而实体类只是其中一个组件而已
上面我们说了,要解耦,有两步:第一,反射 第二、配置文件
这里配置文件有xml和properties
这里我们先用properties,因为xml可以设计其他的一些知识点
分析工厂模式中的问题并改造
此时,这5个对象是多例的