0
点赞
收藏
分享

微信扫一扫

Spring学习第一天


学习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学习第一天_xml


IOC入门案例步骤

第一步 导入 jar 包

Spring学习第一天_配置文件_02

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

  古老的方式

        

Spring学习第一天_Spring学习第一天_03

  有了Spring

 

Spring学习第一天_spring_04

 配置文件

Spring学习第一天_配置文件_05


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


位置不是固定的


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

Spring学习第一天_配置文件_06


配置文件的约束

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

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

 

Spring学习第一天_Spring学习第一天_07

]

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

第二种 使用静态工厂创建

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

Spring学习第一天_Spring学习第一天_08

第三种 使用实例工厂创建

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


  

Spring学习第一天_配置文件_09




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


Spring学习第一天_xml_10

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

Spring学习第一天_配置文件_11

request

WEB项目中Spring创建一个Bean的对象,将对象存入到request作用域中

session

WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中

globalSession

WEB项目中,应用在porlet环境,如果没有prolet环境那么glbalSession相当于Session

 






属性的注

 

Spring学习第一天_xml_12

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

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

  (2)有参数构造注入




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

Spring学习第一天_spring_13

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

 

Spring学习第一天_xml_14


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

1.创建service类和dao类

 (1)在service中得到dao对象

2.具体实现过程

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

Spring学习第一天_配置文件_15

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

Spring学习第一天_xml_16

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

Spring学习第一天_Spring学习第一天_17

 (4)测试

 

Spring学习第一天_Spring学习第一天_18



全部

Spring学习第一天_配置文件_19



P名称空间注入

Spring学习第一天_xml_20


全部

Spring学习第一天_Spring学习第一天_21


复杂类型注入属性

1.数组

Spring学习第一天_配置文件_22

2.list集合

Spring学习第一天_配置文件_23

3.map集合

Spring学习第一天_xml_24

4.properties类型

Spring学习第一天_Spring学习第一天_25



IOC和DI区别

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

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

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




Spring整合web项目原理

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

Spring学习第一天_xml_26

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



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

3.实现原理

使用技术

(1),ServletContext对象

(2),监听器

(3),具体使用

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

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

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

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

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

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

举报

相关推荐

0 条评论