Spring是什么、spring容器、Spring三大核心思想DI(依赖注入)、IOC(控制反转)、AOP(面向切面编程)...

1.Spring

(1)Spring是什么?

是一个轻量级的、用来简化企业级应用开发的开发框架。

注:
    a.简化开发:
    Spring对常用的api做了简化,比如,使用Spring
    jdbc来访问数据库,就不用再考虑如何获取连接、关闭连接、处理异常等等。
    b.解耦:
    Spring容器(Spring框架的一个模块)帮我们管理
    对象(包括对象的创建及对象之间的依赖关系),
    这样一来,对象之间的耦合度会大大降低,提供高了
    系统的维护性。
    c.集成其它框架:
    Spring可以将其它一些常用的框架集成进来,比如
    可以将Quartz,MyBatis等集成进来。

(2)Spring容器

1)Spring容器是什么?

Spring框架的一个核心模块,用于管理对象。

注:
    管理对象指的是,spring容器会用我们创建对象,
并且建立对象之间的依赖关系。

2)如何启动Spring容器?

step1.导包。


    org.springframework
    spring-webmvc
    3.2.8.RELEASE

step2.添加配置文件(applicationContext.xml)。

将配置文件添加到main/resources下。

step3.启动Spring容器。

ApplicationContext ac = 
    new ClassPathXmlApplicationContext(
            "applicationContext.xml");

3)创建对象

a.方式一  使用无参构造器

step1. 给类添加无参构造器(缺省构造器)。
step2.  在配置文件当中,使用bean元素来进行配置。


    

step3. 启动容器,调用容器提供的getBean方法。

    //通过容器获得对象
    Apple ap1 = 
        ac.getBean("ap1",Apple.class);

b.方式二  使用静态工厂方法 (了解)



c.方式三  使用实例工厂方法 (了解)


 

4)作用域

a.默认情况下,对于某个bean,容器只会创建一个实例。

b.如果要让容器创建多个实例,需要设置bean的作用域。


     

5)生命周期

spring容器在创建好对象之后,会调用初始化方法, 在销毁该对象之前,会调用销毁方法。

        
     

6)延迟加载

a.默认情况下,容器启动之后,会将所有作用域为singleton的bean实例化。

b.延迟加载指的是,通过设置lazy-init="true"告诉容器, 启动之后不再创建其实例。

    
    

(3)IOC和DI

1)IOC是什么? (Inversion Of Controll 控制反转)

对象之间的依赖关系应该由容器来建立。

2)DI是什么? (Dependency Injection 依赖注入)

容器通过调用set方法或者构造器来建立对象之间的依赖关系。

注:
    IOC是目标,DI是手段。

3)set方法注入

step1. 为类添加set方法。

step2. 在配置文件当中,使用property元素来配置set 方法注入。

    
    
        
    

step3. 启动容器,调用getBean方法。

3)set方法注入

Spring是什么、spring容器、Spring三大核心思想DI(依赖注入)、IOC(控制反转)、AOP(面向切面编程)..._第1张图片

4)构造器注入

step1. 添加相应的带参的构造器。

step2. 使用元素来配置构造器注入。

 
    
    
        
    

step3. 启动容器,调用getBean方法。

4)自动装配 (了解)

a.什么是自动装配?

容器依据某些规则,自动查找符合要求的对象,
然后建立对象之间的依赖关系。
注: 容器仍然要调用set方法或者构造器。

b.如何自动装配?

使用autowire属性指定装配的规则:

    
 

5)注入基本类型的值


    
    

6)注入集合类型的值

a.支持四种集合类型的值的注入,分别是List,Set,Properties,Map。

b.注入方式如下:

    
            
                打猎
                看书
                编程
                编程
            
        
    
        
            洛阳
            金陵
            开封
        
    
    
        
            
                
        
    
    
        
            tom
            1234
        
    

7)引用的方式注入集合类型的值

    
    
        打猎
        看书
        编程
    
    
        北京
        南京
        东京
    
    
        
        
     
    
        John
        1234
    
    
        
        
        
        
    

8)读取properties文件的内容

    
     

9)spring表达式

a.spring表达式的作用?

可以用来读取其它bean的属性

b.用法如下图:

Spring是什么、spring容器、Spring三大核心思想DI(依赖注入)、IOC(控制反转)、AOP(面向切面编程)..._第2张图片

 
   

 

转载于:https://www.cnblogs.com/ahaijava/p/10064264.html

你可能感兴趣的:(Spring是什么、spring容器、Spring三大核心思想DI(依赖注入)、IOC(控制反转)、AOP(面向切面编程)...)