专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 创建Spring单例的例子

创建Spring单例的例子

更新时间:2021-12-10 10:24:10 来源:赢咖4 浏览899次

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单例已经有所了解,如果您想了解更多相关知识,可以关注一下赢咖4的Java赢咖4在线学习,里面的课程内容丰富,通俗易懂,适合没有基础的小白学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>