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})

 

posted @ 2019-07-29 22:13  A阿饭  阅读(255)  评论(0编辑  收藏  举报