栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring Boot中的策略

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot中的策略

前面所有的答案都是使用Spring
DI的直接方法。但是,也可以使用ServiceLocatorFactoryBean来创建工厂,而不必在工厂中指定任何bean。首先为您的工厂定义一个接口:

public interface MyFactory {    Strategy get(String type);}// Could be an abstract classpublic interface Strategy {    void doStuff();}

然后在您的应用程序中:

@Configurationpublic class AppConfiguration {    @Autowired    private BeanFactory beanFactory;    public ServiceLocatorFactoryBean myFactoryLocator() {        final ServiceLocatorFactoryBean locator = new ServiceLocatorFactoryBean();        locator.setServiceLocatorInterface(MyFactory.class);        locator.setBeanFactory(beanFactory);        return locator;    }    @Bean    public MyFactory myFactory() {        final ServiceLocatorFactoryBean locator = myFactoryLocator();        locator.afterPropertiesSet();        return (MyFactory) locator.getObject();    }}

现在,您可以定义实现/扩展的bean(使用注释@ Service,@ Component或@Bean),它们将自动注册到MyFactory
bean中,并可以使用以下方法创建:

myFactory.get("beanName");

最好的部分是您可以将Strategy Bean注册为惰性的并具有不同的作用域。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/365140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号