spring是开源的轻量级框架,它的核心公共有两大部分,分别是aop和ioc,其中aop是面向切面编程,即扩展功能不修改源代码,ioc是控制反转,即不通过new关键字创建
对象,而是通过spring配置创建文件。
ioc的操作为两种方式,第一种是通过配置文件方式,第二种是通过ioc的注解方式
ioc底层原理使用的技术:xml配置文件,dom4j解析xml,工厂设计模式,反射
使用ioc之前,需要先导入相应的jar包,其中spring最核心的jar包就是Beans,Core,Context,expression这四个jar包,另外还有两个配套的jar包,是用来日志管理的
分别是commons-logging-1.2.jar和log4j.jar,将相应的jar包导入以后,并添加相应的引用以后,接下来就是进行第二步,就是创建类,并在类里面创建方法,
然后是创建spring配置文件,名称和位置都不固定。建议直接放到src文件夹下,然后就是在配置文件中引入相应的schema约束,
然后是配置对象创建,
接下来就是写代码测试对象创建
Bean标签常用属性
|
(1)id属性:起名称,id属性值名称任意命名 - id属性值,不能包含特殊符号 - 根据id值得到配置对象 (2)class属性:创建对象所在类的全路径 (3)name属性:功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值里面可以包含特殊符号 (4)scope属性 - singleton:默认值,单例 - prototype:多例 - request:创建对象把对象放到request域里面 - session:创建对象把对象放到session域里面 - globalSession:创建对象把对象放到globalSession里面 |
使用有参构造函数注入:
使用set方法注入属性:
注入对象类型属性:
1 创建service类和dao类
(1)在service得到dao对象
2 具体实现过程
(1)在service里面把dao作为类型属性
(2)生成dao类型属性的set方法
注入复杂类型属性:
1 数组
2 list集合
3 map集合
4properties类型
<!--注入复杂类型属性值 -->
<beanid="person"class="cn.itcast.property.Person">
<!-- 数组 -->
<propertyname="arrs">
<list>
<value>小王</value>
<value>小马</value>
<value>小宋</value>
</list>
</property>
<!-- list -->
<propertyname="list">
<list>
<value>小奥</value>
<value>小金</value>
<value>小普</value>
</list>
</property>
<!-- map -->
<propertyname="map">
<map>
<entrykey="aa"value="lucy"></entry>
<entrykey="bb"value="mary"></entry>
<entrykey="cc"value="tom"></entry>
</map>
</property>
<!-- properties -->
<propertyname="properties">
<props>
<propkey="driverclass">com.mysql.jdbc.Driver</prop>
<propkey="username">root</prop>
</props>
</property>
</bean>Spring整合Web项目原理
|
1 加载spring核心配置文件,
(1)new对象,功能可以实现,效率很低 2 实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成 3 实现原理 (1)ServletContext对象 (2)监听器 (3)具体使用: - 在服务器启动时候,为每个项目创建一个ServletContext对象 - 在ServletContext对象创建时候,使用监听器可以具体到ServletContext对象在什么时候创建 - 使用监听器监听到ServletContext对象创建时候, -- 加载spring配置文件,把配置文件配置对象创建 -- 把创建出来的对象放到ServletContext域对象里面(setAttribute方法) - 获取对象时候,到ServletContext域得到(getAttribute方法) |

本文深入讲解了Spring框架的核心特性之一——IOC(控制反转),包括其基本概念、配置方式及使用方法。介绍了如何通过配置文件创建对象,以及如何利用Bean标签的各种属性进行对象注入。


被折叠的 条评论
为什么被折叠?



