学习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. 反射

底层原理:

Spring学习第一天


IOC入门案例步骤

第一步 导入 jar 包

Spring学习第一天

第二步 创建类,在类里面创建方法

  古老的方式

        Spring学习第一天

  有了Spring

 Spring学习第一天

 配置文件

Spring学习第一天


第三步 创建一个spring配置文件 , 配置创建类


 (1) . Spring核心配置文件名称和位置不是固定的 官方介意放到src下面,官方建议名字取applicationContext.xml


第四步 写代码测试对象创建

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.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实例化三种方式实现

第一种 使用类的无参数构造创建 一般是使用这个

 Spring学习第一天]

 注意:如果学了反射应该知道里面一定要有一个无参构造器

第二种 使用静态工厂创建

 (1)创建静态的方法,返回类对象

Spring学习第一天

第三种 使用实例工厂创建

  (1).创建方法,返回类对象

  Spring学习第一天




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
Spring学习第一天
prototype 多例的,多例的意思是每次创建一个对象的时候都是新的对象  掌握  User ban=(User)context.getBean("user");
User ban2=(User)context.getBean("user");
System.out.println(ban);
System.out.println(ban2);输出的是不样的对象地址 ban == ban2 false 地址一样因为是prototypeSpring学习第一天
request WEB项目中Spring创建一个Bean的对象,将对象存入到request作用域中
session WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中
globalSession WEB项目中,应用在porlet环境,如果没有prolet环境那么glbalSession相当于Session
 






属性的注

  1.创建对象的时候,向类里面属性里面设置值就叫属性注入

Spring学习第一天

 2.在spring框架里面,支持前面两种方式注入

  (1)set方式注入 (用的最多的)

  (2)有参数构造注入




使用有参数的注入属性 掌握

Spring学习第一天

使用set方法注入属性掌握 重点掌握Set 方法注入 在开发中一般使用set注入

 Spring学习第一天


 。注入对象类型属性 (重点)

1.创建service类和dao类

 (1)在service中得到dao对象

2.具体实现过程

  (1)在service里面吧dao作为类型属性

Spring学习第一天

(2)生成dao类型属性的set方法

Spring学习第一天

(3)在配置文件里面进行注入

Spring学习第一天

  (4)测试

 Spring学习第一天



全部

Spring学习第一天



P名称空间注入

Spring学习第一天


全部

Spring学习第一天


复杂类型注入属性

1.数组

Spring学习第一天

2.list集合

Spring学习第一天

3.map集合

Spring学习第一天

4.properties类型

Spring学习第一天



IOC和DI区别

(1)IOC:控制反转,吧对象创建交给spring进行配置

(2)DI:依赖注入,向类里面的属性中设置值

(3)关系:依赖注入不能单独存在,需要在ioc的基础之上完成操作




Spring整合web项目原理

1 . 加载spring核心配置文件,

Spring学习第一天

 (1)new 对象,功能可以实现,效率很低



2 . 实现思想,把加载配置文件和创建对象过程,在服务器启动 时 完成

3.实现原理

使用技术

(1),ServletContext对象

(2),监听器

(3),具体使用

-在服务器启动时候,为每个项目创建一个ServletContext()对象

-在ServletContext对象创建时候,使用监听器可以具体监听到ServletCntext对象在什么时候创建

-使用监听器监听到ServletContext对象创建时候

-加载spring配置文件,把配置文件配置对象创建

-创建出来的对象放到ServletContext域对象里面(setAttribute方法)

-获取对象时使用到,ServletContext域得到(getAttribute方法)

相关文章: