zoukankan      html  css  js  c++  java
  • spring学习笔记(一)

     

    spring笔记

    1.spring介绍

    1.三层架构中spring位置

     

     

    2.spring一站式框架

    容器中装什么对象就有什么功能.所以可以一站式.

    不仅不排斥其他框架,还能帮其他框架管理对象.

    aop支持

    IOC思想

    spring jdbc

    aop事务

    Junit测试支持

    2.spring搭建

    1.导包(4+2)

    1. 基础包(4)

     

     

    1. 日志包(2)

                  

                    

    1. Junit和jdk

                  

                    

    2.创建一个对象

     

     

    3.书写配置注册对象到容器(spring配置文件)

    1. 位置

                   位置任意(建议放到src下)
    配置文件名任意(建议applicationContext.xml)

    1. 创建

                  

                    

    1. 代码测试

                  

          

              

    3.spring概念

    1.思想

    1.ioc

    IOC: Inverse Of Control 控制反转

     通俗的讲,即将我们创建对象的方式反转了

     以前对象的创建是由开发人员自己维护,包括依赖关系也是自己注入,

     使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,

     控制反转就是反转了对象创建方式,从我们自己创建反转给程序(spring)。

    2.DI

    DI:Dependency Injection 依赖注入

     实现IOC思想需要DI做支持

     注入方式:

     set方法注入

     构造方法注入

     字段注入

     注入类型:

     值类型注入——8大基本数据类型

     引用类型注入——将依赖对象注入

    有篇博客讲的比较易懂,关于IOC、DI、和AOP

    2.applicationContext&BeanFactory

    1.BeanFactory接口

    spring原始接口.针对原始接口的实现类功能较为单一;

    BeanFactory接口实现类的容器.特点是每次在获得对象时才会创建对象。

    2.ApplicationContext

    每次容器启动时就会创建容器中配置的所有对象.并提供更多功能

    从类路径下加载配置文件:ClassPathXmlApplicationContext

     

     

    从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx")

     

     

    3.结论

    web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory.

    4.spring配置详解

    1.Bean元素

     

     

    2.Bean元素进阶

    1.scope属性

    singleton(默认值):单例对象.被标识为单例的对象在spring容器中只会存在一个实例

     

     

    prototype:多例原型.被标识为多例的对象,每次再获得才会创建.每次创建都是新的对象.

     

     

     

     

    2.生命周期

    配置一个方法作为生命周期初始化方法.spring会在对象创建之后立即调用:init-method

    配置一个方法作为生命周期的销毁方法.spring容器在关闭并销毁所有容器中的对象之前调用:destory-method

     

     

     

     

     

     

    调用close方法是,用ClassPathXmlApplicationContext

     

     

    3.spring创建对象的方式

    1.空参构造方式

     

     

    2.静态工厂(了解)

     

    3.实例工厂(了解)

     

     

     

     

    4.spring的分模块配置

     

     

    5.spring属性注入

    1.注入方式

    1.set方法注入

     

     

    2.构造函数注入

     

     

    3.p名称空间注入

     

     

    4.spel注入

     

     

    2.复杂类型注入

     

     

    1.数组

     

     

    2.List

     

     

    3.Map

     

     

    4.Properties

     

     

    5.效果

    CollectionBean(arr=[tom, asjdkfdh, User(name=Tom, age=3423, car=Car(name=lafjdla汽车, color=red))],

     list=[gonchen, dfafadlkga, User(name=Tom, age=3423, car=Car(name=lafjdla汽车, color=red))],

    map={url=jdbc:mysql:////cadjskf, user=User(name=Tom, age=3423, car=Car(name=lafjdla汽车, color=red)), User(name=jadsfa, age=3423, car=Car(name=lafjdla汽车, color=red))=User(name=999, age=null, car=Car(name=lafjdla汽车, color=red))},

    prop={password=123144, driverClass=com.jdbc.mysql.Driver, userName=root})

  • 相关阅读:
    如何实现多个异步同步执行?
    Treap学习笔记
    实验
    bzoj2876 [NOI2012]骑行川藏(拉格朗日乘数法)
    [SCOI2007]最大土地面积(旋转卡壳)
    Splay学习笔记
    计算几何学习笔记
    [CQOI2006]凸多边形(半平面交)
    大数的乘法(C++)
    商人过河问题(DFS)
  • 原文地址:https://www.cnblogs.com/AFan-z/p/11266879.html
Copyright © 2011-2022 走看看