hualinux spring 4.6:@Scope设置组件作用域

 目录

一、@Scope说明

二、例子2


本章将说一下使用@Scope设置组件作用域

一、@Scope说明

    /**
     * 1.prototype: 多实例:ioc容器启动并不会去调用方法创建对象放在容器吕。
     *                    每次获取的时候才会调用方法创建对象
     * 2.singleton: 单实例(默认值),ioc容器启动会调用方法创建对象放到ioc容器中。
     *             以后每次获取就是直接从容器(map.get())中拿。
     * 3.request: 同一次请求创建一个实例
     * 4.session:同一个session创建一个实例
     *
     * */
    @Scope("prototype")

PS:最后2个不常用 

 

二、例子2

废话小少说了,直接上例子,我这里使用的是《hualinux spring 4.3:idea 2020创建简单的spring注解式》 建立的项目为基础的

我直接就是使用了其中的com.hualinux.spring.HelloMain.java修改一下

package com.hualinux.spring;

import conf.HelloConf;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class HelloMain {
    public static void main(String[] args) {
        //1. 创建 Spring 的IOC容器对象
        //这次使用的不是ClassPathXmlApplicationContext类了,而是注解类
        AnnotationConfigApplicationContext ctx= new AnnotationConfigApplicationContext(HelloConf.class);

        //2. 从 IOC 容器中获取 Bean 实例,填写Bean的ID就是java配置文件的方法名
        //Hello hello= (Hello) ctx.getBean("hello");
        Object hello = ctx.getBean("hello");
        Object hello2 = ctx.getBean("hello");
        System.out.println(hello==hello2);

    }
}

运行结果为:true

 

我在配置文件conf.HelloConf.java添加上@Scope

package conf;

import com.hualinux.spring.Hello;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Scope;

//告诉spring 这是一个配置文件,这个注解是一定要有的
@Configuration
public class HelloConf {

    /**
     * prototype: 多实例:ioc容器启动并不会去调用方法创建对象放在容器吕。
     *                    每次获取的时候才会调用方法创建对象
     * singleton: 单实例(默认值),ioc容器启动会调用方法创建对象放到ioc容器中。
     *             以后每次获取就是直接从容器(map.get())中拿。
     * request: 同一次请求创建一个实例
     * session:同一个session创建一个实例
     *
     * */
    @Scope("prototype")
    //@Bean相当于<bean ...></bean>标签
    @Bean
    //返回类型相当于XML配置的class类属性,方法名相当于id
    public Hello hello(){
        //这里使用new交给spring Ioc容器管理
        Hello hello =new Hello();
        hello.setName("阿华");
        return hello;
    }
    
}

再次运行结果为:false

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值