学习Spring第一天
Spring是什么
.spring是一个开源框架,为了解决企业应用的复杂性而创建的,在现在不止以用于企业在一些个人网站上使用了,
.是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
- 从大小与开销两方面而言Spring都是轻量级的
- 通过控制反转(IoC)的技术达到松耦合的目的
- 包含并管理应用对象的配置和生命周期,这个意义上是一种容器
- 将简单的组件配置,组合成为复杂的应用,这个意义上是框架
使用Spring的目的是一下三种
。在Spring上开发应用简单
。在Spring上开发应用方便
。在Spring上开发应用快捷
Spring里面的对象其实多是Bean类
Spring的作用
。容器
。提供了对多种技术的支持
--JMS
--MQ支持
--UnitTest
-。。。等等..
。AOP(事务管理,日志等)
。提供了众多方便应用的辅助类(JDBC Template等)
。对主流应用框架(Hibernate等)提供了良好的支持
适用范围
。构建企业应用(SpringMVC+Spring+Hibernate/Mybatis)
。单独适用Bean容器(Bean管理)
。单独使用AOP进行切面处理
。其他的Spring功能 ,如:对消息的支持等
。在互联网中的应用。。。
什么是IOC
。IOC:控制反转,控制权的转移,应用程序本身不负者依赖对象的创建和维护,而是有外部容器
负者创建和维护
。DI(依赖注入)是其一种实现方式
。目的:创建对象并且组装对象之间的关系
解释: 比如有一个类里面有一个方法(不是静态的方法),调用类里面的方法,要创建类的对象,使用对象的调用方法,创建类的对象
使用对象调用方法,创建类对象的过程,需要 new 出来对象 有了Spring的话 吧对象的创建不是通过new的方式实现,而是
交给Spring配置创建类对象
IOC操作
1.吧对象的创建交给spring进行管理
2.ioc操作有两部分操作
(1)通过注解的方式调用
(2)通过xml配置文件调用
IOC的底层原理和技术
1. xml配置文件
2. dom4j解决xml
3. 工厂设计模式
4. 反射
底层原理:
IOC入门案例步骤
第一步 导入 jar 包
第二步 创建类,在类里面创建方法
古老的方式
有了Spring
配置文件
第三步 创建一个spring配置文件 , 配置创建类
位置不是固定的
第四步 写代码测试对象创建
配置文件的约束
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
</beans>
复制即可
配置文件没有提示的问题
1.Spring引入schema约束,把约束文件引入到eclips中
(1).复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
Bean实例化三种方式实现
第一种 使用类的无参数构造创建 一般是使用这个
]
注意:如果学了反射应该知道里面一定要有一个无参构造器
第二种 使用静态工厂创建
(1)创建静态的方法,返回类对象
第三种 使用实例工厂创建
(1).
创建方法,返回类对象
Bean标签里面的属性介绍
表示 :起名称 ,id属性值名称任意命名 id值属性值不能包含特殊符号
根据id值得到配置对象
表示 :创建对象所在类的全路径
--name属性 表示 :功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值
现在一般不用了
表示 :scope单词的意思是范围,
scope属性:Bean的作用范围
singleton | 默认值,单例的 ,单例的意思是对象只创建一次 地址内容一样 ,掌握 输出的对象是一样 User ban=(User)context.getBean("user"); User ban2=(User)context.getBean("user"); System.out.println(ban); System.out.println(ban2);输出的是一样的对象地址 ban == ban2 true 地址一样因为是singleton |
prototype | 多例的,多例的意思是每次创建一个对象的时候都是新的对象 User ban=(User)context.getBean("user"); User ban2=(User)context.getBean("user"); System.out.println(ban); System.out.println(ban2);输出的是不样的对象地址 ban == ban2 false 地址一样因为是prototype |
request | WEB项目中Spring创建一个Bean的对象,将对象存入到request作用域中 |
session | WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中 |
globalSession | WEB项目中,应用在porlet环境,如果没有prolet环境那么glbalSession相当于Session |
属性的注
2.在spring框架里面,支持前面两种方式注入
(1)set方式注入 (用的最多的)
(2)有参数构造注入
使用有参数的注入属性 掌握
使用set方法注入属性掌握 重点掌握Set 方法注入 在开发中一般使用set注入
。注入对象类型属性 (重点)
1.创建service类和dao类
(1)在service中得到dao对象
2.具体实现过程
(1)在service里面吧dao作为类型属性
(2)生成dao类型属性的set方法
(3)在配置文件里面进行注入
(4)测试
全部
P名称空间注入
全部
复杂类型注入属性
1.数组
2.list集合
3.map集合
4.properties类型
IOC和DI区别
(1)IOC:控制反转,吧对象创建交给spring进行配置
(2)DI:依赖注入,向类里面的属性中设置值
(3)关系:依赖注入不能单独存在,需要在ioc的基础之上完成操作
Spring整合web项目原理
1 . 加载spring核心配置文件,
(1)new 对象,功能可以实现,效率很低
2 . 实现思想,把加载配置文件和创建对象过程,在服务器启动 时 完成
3.实现原理
使用技术
(1),ServletContext对象
(2),监听器
(3),具体使用
-在服务器启动时候,为每个项目创建一个ServletContext()对象
-在ServletContext对象创建时候,使用监听器可以具体监听到ServletCntext对象在什么时候创建
-使用监听器监听到ServletContext对象创建时候
-加载spring配置文件,把配置文件配置对象创建
-创建出来的对象放到ServletContext域对象里面(setAttribute方法)
-获取对象时使用到,ServletContext域得到(getAttribute方法)
标签:www,第一天,对象,Spring,学习,创建,org,schema From: https://blog.51cto.com/u_13355654/6173773