spring IoC-注解依赖注入(@Scope)

介绍

@Scope 注解相当于 bean 标签中的 scope 属性,用于指定作用范围

使用

搭配 @Controller、@Service、@Repository、@Component 、@Bean 使用,修饰类

属性

  • value:取值如下:

    • singleton:单例,(默认)
    • prototype:多例
    • request
    • session
    • globalsession

解释见:
https://www.malaoshi.top/show_1IX1mKQApo4.html

例子

UserSrvImpl

@Service
@Scope("prototype")
public class UserSrvImpl implements IUserService {

    public UserSrvImpl(){
        System.out.println("UserSrvImpl构造方法");
    }
    public void save(String username,String password){

    }
}

执行

public class Main {
    public static void main(String[] args) {
        ApplicationContext ac=new ClassPathXmlApplicationContext("spring.xml");

        IUserService srv=(IUserService)ac.getBean("userSrvImpl");
        IUserService srv2=(IUserService)ac.getBean("userSrvImpl");
        System.out.println(srv);
        System.out.println(srv2);
        System.out.println(srv==srv2);
    }
}

执行结果:

UserSrvImpl构造方法
UserSrvImpl构造方法
top.malaoshi.UserSrvImpl@8355dd
top.malaoshi.UserSrvImpl@10d9fe7
false

可以看出2个对象的内存地址不同,并且是false,说明创建了2个对象


原文出处:/show_1IX28slXTe0.html