本文共 2542 字,大约阅读时间需要 8 分钟。
代码不是看出来的,而是敲出来的,欢迎关注公众号【秃头程序员】,收藏教程
步骤一:框架概述
所谓的框架其实就是程序的架子,在这个程序的架子中,搭建起程序的基本的骨架,针对程序的通用问题给出了便捷的解决方案,可以使开发人员 基于框架快速开发具体的应用程序。
常见的框架:
-
SSH(Struts2+Spring+Hibernate)
-
SSM(SpringMVC+Spring+MyBatis)
Spring是一个Service层的框架,可以整合许多其它框架进行工作。Spring的主要技术是 IOC(DI) AOP。IOC - 控制反转(依赖注入)。AOP - 面向切面编程。
步骤二:为MyEclipse配置Spring的约束
Spring本身是基于xml配置来工作的,在使用Spring的过程中不可避免的要编写大量xml配置,Spring官方提供了这些xml文件的编写规范,这是通过提供xml的约束文件来实现的。
所谓的xml的约束其实是一种限定xml文件写法的技术,主要分为两种:
-
DTD,通常文件的后缀.dtd
-
Schema,通常文件的后缀为.xsd
Spring提供了Schema格式的约束,来限定Spring配置文件的写法。开发人员可以通过阅读Spring提供的约束文件来了解Sprinig的xml配置的写法。但是这个过程比较麻烦,通常我们会将约束文件交给开发工具管理,开发工具可以通过解析约束文件了解xml的写法,并在需要时为开发者提供标签提示。
a. 将Spring的约束文件交给MyEclipse管理:
1) 将spring的压缩包解压一份放置到到一个固定目录中,要注意的是路径中不可以有中文或空格。
2) 打开MyEclipse的/window/preferences,配置其中的XML Catalog
3) 点击Add按钮,在新弹出的选项卡中选择刚解压的Spring目录下schema目录中想要导入的.xsd文件,并且设定好名称空间,通常就是在自动识别的名称空间之加上/文件名,点击确定就可以使MyEclipse管理该约束文件了。
b. 通过xml约束文件自动生成符合约束格式的xml:
1) 新建xml文件,选择BasicTemplates方式
2) 设定模板
3) 选择通过schema文件创建一个xml
4) 选择之前导入的 schema文件
5) 指定根标签,及标签前缀,通常可以将前缀置为空,方便后续使用
6) 确定之后即可产生符合格式的xml
c. 配置xml模版,用来快速生成xml:
1) 在MyEclipse的window/preferences中配置新模版
2) 设定模版
3) 使用模版,在xml文件中输入模版名称,可以通过自动提示插入模版内容
步骤三:Spring IOC
1. IOC(DI) - 控制反转(依赖注入)
所谓的IOC称之为控制反转,简单来说就是将对象的创建的权利及对象的生命周期的管理过程交由Spring框架来处理,从此在开发过程中不再需要关注对象的创建和生命周期的管理,而是在需要时由Spring框架提供,这个由spring框架管理对象创建和生命周期的机制称之为控制反转。而在 创建对象的过程中Spring可以依据配置对对象的属性进行设置,这个过称之为依赖注入,也即DI。
2.IOC的入门案例
-
下载Spring
访问Spring官网,下载Spring相关的包
-
解压下载好的压缩包
其中包含着Spring的依赖包
-
创建一个java项目
spring并不是非要在javaweb环境下才可以使用,一个普通的java程序中也可以使用Spring。
-
导入Spring的libs目录下IOC相关的jar包
-
创建Spring的配置文件
Spring采用xml文件作为配置文件,xml文件名字任意,但通常都取名为applicationContext.xml,通常将该文件放置在类加载的目录里下(src目录),方便后续使用。
-
创建bean类,并在spring中进行配置交由spring来管理
-
在程序中通过Spring容器获取对象并使用
public class Person_Test { @Test /** * SpringIOC的入门案例 */ public void test1(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = (Person) context.getBean("person"); p.say(); }}
3.IOC的实现原理
在初始化一个Spring容器时,Spring会去解析指定的xml文件,当解析到其中的<bean>标签时,会根据该标签中的class属性指定的类的全路径名,通过反射创建该类的对象,并将该对象存入内置的Map中管理。其中键就是该标签的id值,值就是该对象。
之后,当通过getBean方法来从容器中获取对象时,其实就是根据传入的条件在内置的Map中寻找是否有匹配的键值,如果有则将该键值对中保存的对象返回,如果没有匹配到则抛出异常。
由此可以推测而知:
默认情况下,多次获取同一个id的bean,得到的将是同一个对象。
即使 是同一个类,如果配置过多个<bean>标签具有不同的id,每个id都会在内置Map中有一个键值对,其中的值是这个类创建的不同的对象
同一个<beans>标签下不允许配置多个同id的<bean>标签,如果配置则启动抛异常
关注公众号【秃头程序员】,不错过Spring框架自学之路(二)
(原创文章文字图片禁止转载,禁止用于商业用途,转载公众号请后台留言申请。图文部分来自网络,若有侵权,请联系删除)
转载地址:https://blog.csdn.net/zxyolo/article/details/105016902 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!