介绍
@Scope 注解相当于 bean 标签中的 scope 属性,用于指定作用范围
使用
搭配 @Controller、@Service、@Repository、@Component 、@Bean 使用,修饰类
属性
value:取值如下:singleton:单例,(默认)prototype:多例requestsessionglobalsession
解释见:
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个对象