Spring核心容器功能

Spring框架是个粘合剂类型的框架,它管理着项目中所有的对象
core container 核心容器 它是spring框架的基石 任意一个spring项目运行的时候都会生成一个容器,把项目运行时需要的对象全部管理起来。
Spring核心有两个概念:IOC:控制反转也叫DI,依赖注入。

控制反转:就是以前的对象都是由程序员管理创建的,现在由Spring框架的容器来管理所有的对象
依赖注入:Spring框架的容器会自动完成依赖注入

Spring框架中管理的对象叫做bean
Spring核心容器有三种创建bean的方式

构造方法创建bean

<bean id="student"  class="com.youzhong.entity.Student"/>

静态工厂创建bean

<!-- factory-method配置工厂里面的静态方法 -->
    <bean id="computer"  class="com.youzhong.factory.ComputerFactory"  factory-method="createComputer"/>

实例工厂创建bean

<!-- 1、创建工厂bean -->
    <bean id="factory"  class="com.youzhong.factory.ComputerFactory"/>
    
    <!-- 2、创建computer -->
    <!-- factory-bean引用工厂对象 -->
    <bean id="computer" factory-bean="factory"  factory-method="createComputer"/>

pring核心容器可以给属性注入,有3种方式

构造方法注入

<!-- class属性用来配置类的全限定名,id是bean的唯一标识 -->
    <bean id="student"  class="com.youzhong.entity.Student"/>

set方法注入

<bean id="student"  class="com.youzhong.entity.Student">
        <!-- property标签使用set方法注入,name需要和set方法名匹配 -->
        <property name="dd" value="1"/>
        <property name="name" value="豆腐坊"/>
        <property name="sex" value="男"/>
    </bean>

注解注入

<!-- 注解开关:扫描@Autowired等注解  -->
    <context:annotation-config/>
    
    <bean id="player"  class="com.youzhong.entity.Player"/>
    
    <bean id="team"  class="com.youzhong.entity.Team"/>

容器中bean的作用域

singleton:单例模式,在整个Spring IoC容器中,singleton作用域的Bean将只生成一个实例。
单例:保证只有一个实例。
单例有两种方式,一种是饿汉使单例,一种是懒汉式单例
饿汉式单例,创建实例比较早,类一加载就立即创建了实例,不会等到调方法获取。
还有一种懒汉式单例,创建实例比较晚,类加载时不会创建实例,当调方法获取时才会创建。
饿汉式单例是线程安全的,懒汉式单例是线程不安全的。
使用synchronize同步锁可以保证线程安全
使用双重锁(双重判定锁)可以只锁几行代码,提升性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值