首页 课程 师资 教程 报名

创建Spring单例的例子

  • 2021-12-10 10:24:10
  • 938次 星辉

1.概述

通常在我们的项目中,有必要使用单例模式,它在整个应用程序中只定义一个对象的实例。当我们使用 spring 时,可以定义一个单例范围的 Bean,如下所示。

2.定义 Bean

例如,您可以使用注释@Service 编写一个服务类,然后使用带有“singleton”参数的注释@Scope 将其范围设置为单例。

在这个例子中,我将实现一个简单的循环算法,返回给定列表的下一个 IP,假设我想在 3 个 IP 之间建立一个平衡器。

@Service
@Scope("singleton")
public class RoundRobin {
    String[] ips = {"192.168.0.1", "192.168.0.2", "192.168.0.3"};    
    int currentIndex = 0;     
    public String nextIP() {         
        String ip = ips[currentIndex];         
        if(currentIndex < (ips.length -1)) {
            currentIndex++;
        } else {
            currentIndex = 0;
        }         
        return ip;         
    }     
}

在这种情况下,我们在这个 Bean 中使用两个 Spring 注释,@Service 将其设置为服务,并使用带有“singleton”参数的注释 @Scope 为其分配一个单例范围。

3.使用 Bean

现在我们可以将它注入到我们的 Spring-Boot 应用程序中

@RestController
@RequestMapping("/auth")
public class PersonController {
    @Autowired
    RoundRobin rr; 
    @GetMapping
    public void doAuth() {
        System.out.println("Next IP: " + rr.nextIP());
    }
}

通过上述介绍相信大家对创建Spring单例已经有所了解,如果您想了解更多相关知识,可以关注一下星辉的Java星辉在线学习,里面的课程内容丰富,通俗易懂,适合没有基础的小白学习,希望对大家能够有所帮助。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交