Spring学习第一天
2018-01-23 21:51
218 查看
学习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配置文件 , 配置创建类
(1) . Spring核心配置文件名称和位置不是固定的 官方介意放到src下面,官方建议名字取applicationContext.xml
第四步 写代码测试对象创建
配置文件的约束<?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.xsd http://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.xsd http://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值属性值不能包含特殊符号 根据id值得到配置对象
--class属性 表示 :创建对象所在类的全路径
--name属性 表示 :功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值 里面可以包含特殊符号现在一般不用了
--scope属性 表示 :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 |
属性的注 1.创建对象的时候,向类里面属性里面设置值就叫属性注入
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方法)
相关文章推荐
- spring学习第一天--AOP
- Spring第一天学习总结
- Spring学习第一天: Hello World
- 学习Spring Boot第一天之Spring注解式声明和注入Bean
- SpringAOP学习第一天 @Pointcut注解
- Spring 学习第一天
- springioc容器学习第一天第二篇
- Spring学习第一天
- Spring学习第一天(下)
- Spring 学习笔记——第一天
- Spring学习第一天---Spring是什么
- Spring第一天の代码学习(Spring底层依赖注入和控制反转的小例子)
- Spring 学习第一天
- 学习spring in action 第一天
- 【Java EE 学习 49 下】【Spring学习第一天】【MVC】【注解回顾】
- 【Java EE 学习 49 上】【Spring学习第一天】【基本配置】
- 09月08日学习杂记(Spring第一天)
- springboot 学习笔记【3】Spring Boot中使用Spring-data-jpa
- JavaEE进阶知识学习-----SpringBootWeb进阶-6-表单验证知识
- Spring cloud学习笔记