您的位置:首页 > 编程语言 > Java开发

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

requestWEB项目中Spring创建一个Bean的对象,将对象存入到request作用域中
sessionWEB项目中,Spring创建一个Bean的对象,将对象存入到session域中
globalSessionWEB项目中,应用在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学习第一天