为了账号安全,请及时绑定邮箱和手机立即绑定

Spring框架小白的蜕变

难度初级
时长 3小时50分
学习人数
综合评分9.77
78人评价 查看评价
9.7 内容实用
9.8 简洁易懂
9.8 逻辑清晰
  • spring通过xml实现自定义作用域(自定义双例模式作用域)

    SimpleThreadScope:Spring内置作用域。

    编写自定义作用域:

    步骤1:实现Scope接口(org.springframework.beans.factory.config),主要关注实现的get方法和remove方法。

    get方法:按照name参数,按照我们自己定义的规则,去返回一个Bean,如果我们定义的规则里,Bean不存在,那么将通过objectFactory去创建一个Bean。

    双例模式:一个bean的Id对应两个实例,实现双例模式,需要两个Map集合,Map<String,Object> map1=new HashMap<String,Object>();Map<String,Object> map2=new HashMap<String,Object>();。

    查看全部
    0 采集 收起 来源: 自定义作用域

    2022-06-05

  • springweb上下文环境

    request作用域:每次执行request请求调用到bean时会重新实例化bean对象

    session作用域:请求session重置后会重新实例化

    application作用域:应用重启后会重新实例化

    查看全部
    0 采集 收起 来源:web相关作用域

    2022-06-05

  • 通过Spring的xml文件配置Bean作用域:(Spring默认作用域是Singleton)

    1、Singleton作用域(单例模式:通过Spring容器实现单例模式,具有局限性:保证在一个Spring上下文(ApplicationContext)是单例模式,多个AppliactionContext单例模式就失效了。

    定义:如果一个<bean>的作用域为Singleton,则该<bean>只会被实例化一次,只有一个Bean会被创建。(每次向Spring上下文(ApplicationContext生命周期存活)请求这个实例时,Spring都会返回同一个实例)。

    2、prototype作用域(多例模式)

    定义:如果一个<bean>的作用域为prototype,则该<bean>会被实例化多次,有多个Bean会被创建(每次向Spring上下文请求该Bean都会new一个新的实例)。

    查看全部
  • 第一种:通过构造方法注入Bean

    #<bean>标签管理class对象。

    #bean的构造方法参数标签 constructor-arg。

    #index 表示构造方法的第几个参数。

    #name 表示构造方法的参数名。

    #type 表示对应的参数类型。

    #value 表示为参数提供赋值,一般用于String等简单常用对象。

    #ref 表示为参数提供赋值,一般是复杂点的依赖其它 class的对象(取bean的id)。

    注意:只要通过index、name、type的组合明确表示出构造函数的那一个参数即可,

    不一定全用,只用index也可以。

    <bean class="com.imooc.spring.ioc.class06.Bean">

    <constructor-arg  index="0" name="anotherBean"

    type="com.imooc.spring.ioc.class06.AnotherBean">

    </constructor-arg> 

    </bean>

    通过构造方法注入Bean,输出结果:

    成功的给属性赋值。 

    查看全部
  • 1、通过构造方法实例化Bean。

    步骤1:创建要实例化的类,并提供无参构造方法。

    public class Bean {

    public Bean(){

    System.out.println("Bean被创建了");

    }

    步骤2:spring.xml中配置

    <bean id="bean的唯一标识" class="要实例化bean的路径"></bean>

    测试:ApplicationContext context=new ClassPathXmlApplicationContext(spring.xml的路径);

    Bean bean=context.getBean("bean",Bean.class);

    System.out.println(bean);


    2、通过静态方法实例化Bean。(通过Bean2的工厂的静态方法实例化Bean)

    步骤1:创建Bean2的工厂Bean2Factory类以及Bean2类,并且提供一个静态、返回值类型为Bean2的方法,返回new Bean2()。

    public class Bean2Factory {

    public static Bean2 getBean2(){

    return new Bean2();

    }

    }

    public class Bean2 {

    public Bean2(){

    System.out.println("Bean2被创建了。");

    }

    步骤2:配置Spring.xml

    <bean class="Bean2工厂的路径" factory-method="Bean2工厂的静态方法名" id="Bean2工厂的唯一标识"></bean>

    测试:

    ApplicationContext context=new ClassPathXmlApplicationContext("spring-ioc2.xml");

    Bean2 bean=context.getBean("bean2factoryId",Bean2.class);

    System.out.println(bean);

    3、通过实例方法实例化Bean。(通过Bean2的工厂的实例方法实例化Bean)

    步骤1:创建Bean3的工厂Bean3Factory类以及Bean3类,并且提供一个返回值类型为Bean3的方法,方法返回new Bean3()。

    public class Bean3Factory {

    public  Bean3 getBean3(){

    return new Bean3();

    }

    }

    public class Bean3 {

    public Bean3(){

    System.out.println("Bean3被创建了。");

    }

    }

    步骤2:配置Spring.xml

    <bean class="main.java.com.imooc2.Bean3Factory" id="bean3Factory"></bean>

    <bean class="main.java.com.imooc2.Bean3" factory-bean="bean3Factory" factory-method="getBean3" id="bean3"></bean>

    给bean取别名:有类Bean1,并且通过bean标签实例化Bean1,给Bean1的实例取多个名字。

    例如:方式一:bean标签里添加name属性

    <bean id="bean" class="main.java.com.imooc1.Bean" name="bean1_1,bean1_2"></bean>

               方式二:添加<alias>标签

    <bean id="bean" class="main.java.com.imooc2.Bean1" name="bean1_1,bean1_2"></bean>

    <alias name="bean" alias="bean1_3"/><!-- alias只支持一个别名 -->

    查看全部
  • org.springframework.beans.factory.config

    查看全部
    0 采集 收起 来源: 自定义作用域

    2022-05-10

  • 自定义的IoC容器测试代码:

    IoC创造类和功能约定:

     

    2. 反射方法实例化bean.

     


    测试:


    回顾总结:

    好处:

    查看全部

  • 第一种:通过构造方法注入Bean

    #<bean>标签管理class对象。

    #bean的构造方法参数标签 constructor-arg。

    #index 表示构造方法的第几个参数。

    #name 表示构造方法的参数名。

    #type 表示对应的参数类型。

    #value 表示为参数提供赋值,一般用于String等简单常用对象。

    #ref 表示为参数提供赋值,一般是复杂点的依赖其它 class的对象(取bean的id)。

    注意:只要通过index、name、type的组合明确表示出构造函数的那一个参数即可,

    不一定全用,只用index也可以。

    <bean class="com.imooc.spring.ioc.class06.Bean">

    <constructor-arg  index="0" name="anotherBean"

    type="com.imooc.spring.ioc.class06.AnotherBean">

    </constructor-arg> 

    </bean>

    通过构造方法注入Bean,输出结果:

    成功的给属性赋值。 

     

    总结:

    第一种:构造方法注入bean

    第二种:通过set方法注入Bean

    第三种:集合类型Bean注入

    List和Set 

    Map和Propertyes

    第四种:注入null值

      

    第五点:注入内部Bean

    查看全部
  • 实例化Bean的方法总结:

    Spring 实例化Bean的方法:

    Bean的别名

    别名输出的都是同一个Bean实例

    查看全部
  • 什么是IoC

    英文全程:Inversion of Control 

    为什么要使用IoC

    查看全部
    0 采集 收起 来源:IoC概念介绍

    2022-04-07

  • 课程内容:IoC部分

    了解xml配置的繁琐,才能体会使用注解的方便。

    课程目的:

    查看全部
    0 采集 收起 来源:课程概述

    2022-04-07

  • Spring入门课程目录,分三大部分

    查看全部
    0 采集 收起 来源:课程概述

    2022-04-07

  • Java Web发展的六个阶段

    查看全部
    0 采集 收起 来源:课程概述

    2022-04-07

  • Java Web发展史(一)

    查看全部
    0 采集 收起 来源:课程概述

    2022-03-02

  • Java Web发展史

    查看全部
    0 采集 收起 来源:课程概述

    2022-03-02

举报

0/150
提交
取消
课程须知
需要具备Java语法基础,了解Java Web基础知识。
老师告诉你能学到什么?
1、什么是IoC 2、Spring Bean的管理 3、什么是懒加载

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!