Spring

1.Spring是什么?

Spring是一个轻量级的企业框架由Rod johnson创建,目的是简化企业级开发的复杂程度,可测试,松耦合等一系列功能,任何java程序使用都受益

2.Spring的作用

松耦合,集中管理javaBean的生命周期,提供了可插拔式的切入编程

3.Spring的组成结构

1.test 集成单元测试

2.Bean javaBean的管理

3.Core 核心组件提供ioc 功能

4.Context:提供包的扫描,国际化,事件等功能

5.SPEL:sprign表达式

6.AOP:面向切面编程

7.MVC:SpringMVC框架

8.JDBC:集成jdbc开发

9.ORM:数据库开发

10.Cloud:微服务框架

11.Security 安全框架

4.Spring的两大核心

  • IOC (Inversion of Control)控制反转将对象的创建和销毁交给Spring容器管理的, 过程就叫控制反转

    控制的是对象的创建与销毁

    反转:对象的的创建与管理是由原来的开发者管理变为Spring容器管理

1.DI 依赖注入 将类与类之间的依赖关系,在容器内完成绑定

  • AOP 面向切面变成,AOP是对OOP的补充

5.IOC的概念

5.1什么是IOC

IOC 控制反转是一种程序设计思想

  • 控制

    控制的是JAVABean的创建与管理

  • 反转

    将控制权反转 由以前程序员自己创建对象反转成由Spring容器创建

5.2IOC作用

解耦,提高程序的可扩展与可维护性

解耦:降低程序中代码的依赖性

没有IOC的程序中,我们使用new来完成对象的创建,如果需要的对象的类型发生改变,就需要手动修改代码。

  • DI依赖注入是IOC的另外一种说法,将对象交给容器管理注入到我们需要的依赖中

5.3IOC容器

5.3.1IOC概念

IOC是Spring的核心容器将对象的创建销毁生命周期进行统一管理,Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件

5.3.2容器的分类

  • BeanFactory (父类接口) 最简单的容器,给DI提供了最基本的支持

  • ApplicationBeanFactory (子类接口)

5.3.3.ioc容器实例化的三种方式

1. ClassPathXmlApplicationContext 基于ClassPath路径中XML文件配置的应用程序上下文

2.FileSystemXmlApplicatioinContext 基于文件系统中XML文件配置的应用程序上下文

3.AnnotationConfigApplicationConext 基于注解配置的应用程序上下文

5.3.4 ioc容器实现创建JavaBean的案例步骤

1.创建maven项目

2.导入Spring依赖 Spring-context

3.创建测试类

4.配置Spring.xml配置文件

  <bean id="b" class="com.wcl.demo.B"></bean>

5.创建ioc容器并调用getBean方法

        //读取Spring.xml获取IOC容器 ApplicationContext  IOC的一种容器
        //ClassPathXmlApplicationContext 是ApplicationContext的实现类
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring.xml");
//        A a = (A) context.getBean("a");
        A a = context.getBean(A.class);

6.有关Bean的知识点

6.1beans节点

beans节点是Spring配置文件的根节点,所有Javabean都定义在beans内部

6.2bean 代表一个java对象

  • id 对象id,id不能重复

  • name 对象名称,name可以重复,如果重复将读取最后一个

  • class 对象的类型,包名+类名

  • scope 作用域

    singleton

    单例模式,在IOC容器中仅存在一个实例 在容器启动时创建bean

    prototype

    多例,每次从IOC容器调用Bean时,都会返回一个新的实例 在调用getBean时创建bean

    request

    每次Http请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境

    session

    同一个会话共享一个Bean,不同的会话使用不同的Bean,仅适用于WebApplicationContext环境

    application

    一般用于portlet应用环境,仅适用于WebApplicationContext环境

6.3bean的实例化的三种方式

1.通过构造函数

默认无参构造方法 :条件无参构造方法不被覆盖

2.静态工厂方法

3.实例化工厂方法

6.4属性依赖注入的三种方式

  • 构造方法

    ​
        <bean id="b" class="com.wcl.demo2.B"/>
        <bean id="a" class="com.wcl.demo2.A">
            <constructor-arg name="b" ref="b"/>
            <constructor-arg name="age" value="10"/>
    ​
        </bean>

  • set方法

   <bean id="b" class="com.wcl.demo3.B"/>
    <bean id="a" class="com.wcl.demo3.A">
        <property name="b" ref="b"/>
        <property name="age" value="10"/>
    </bean>

  • 自动装配

no 默认不开启

byName 根据名字 对应的id 自动装配 基于set方法

byType 根据类型 自动装配 基于set方法

constructor 通过构造方法装配

6.5bean的延迟加载

在默认情况下,spring的ApplicationContext容器在启动的时候,会自动实例化所有singleton的Bean并缓存在容器中 通过设置延迟加载 lazy-init =true 可以在bean在第一次从容器中获取中进行实例化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值