Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring支持JSON配置吗?_Json_Spring_Applicationcontext_Xml Schema_Spring Integration_Mule Esb - Fatal编程技术网

Spring支持JSON配置吗?

Spring支持JSON配置吗?,json,spring,applicationcontext,xml-schema,spring-integration,mule-esb,Json,Spring,Applicationcontext,Xml Schema,Spring Integration,Mule Esb,有人知道Spring是否有允许通过JSON(或任何其他格式)而不是XML配置其ApplicationContext的扩展吗?我在官方文档中找不到任何东西,但我想知道是否有其他开源扩展可以支持这一点 明确地说,我不是说配置SpringMVC来建立一个基于JSON的RESTful web服务或诸如此类的东西,只要有可能通过JSON而不是XML进行Spring应用程序配置。据我所知,没有支持JSON作为配置源的项目。启动起来应该相对容易(Spring容器不依赖于XML,它只是构造bean定义的一种方法

有人知道Spring是否有允许通过JSON(或任何其他格式)而不是XML配置其ApplicationContext的扩展吗?我在官方文档中找不到任何东西,但我想知道是否有其他开源扩展可以支持这一点


明确地说,我不是说配置SpringMVC来建立一个基于JSON的RESTful web服务或诸如此类的东西,只要有可能通过JSON而不是XML进行Spring应用程序配置。

据我所知,没有支持JSON作为配置源的项目。启动起来应该相对容易(Spring容器不依赖于XML,它只是构造bean定义的一种方法)。然而,这比你想象的要多得多

请注意,Spring提供了帮助您编写正确的XML。在JSON中你不会得到那么多。还有许多DSL是在SpringXML和自定义名称空间支持的基础上构建的(,和其他人使用它)

如果您讨厌XML(很多人都讨厌),请尝试Java配置,该配置从3.0开始提供,并在3.1中得到改进:

@Configuration
public class MyBeans {

    @Bean
    public Foo foo() {
        return new Foo();
    }

    @Bean
    public Bar bar() {
        return new Bar(foo());
    }

    @Bean
    public Buzz buzz() {
        Buzz buzz = new Buzz();
        buzz.setFoo(foo());
        return buzz;
    }

}
有趣的事实:由于一些奇特的代理,这里只调用了一次
foo()
,即使引用了两次。

试试maven central上提供的库,它支持属性、HOCON和JSON格式

您可以将外部文件中的值注入到您的服务中,等等

JavaConfig的示例用法:

您可以将数据存储在app.conf文件中

必须在其中插入配置的服务

@Service("service")
public class Service {
    @Autowired
    private ConfigBean configBean;
}
声明一个接口以从服务访问配置值

@ConfigurationProperties("root/simpleConf")
public interface ConfigBean {
    String getUrl();
    int getPort();
    Map getAMap();
    List getAList();
}
以及您的Spring配置bean:

@Configuration
public class ContextConfiguration {
    @Bean
    public static ConfigurationFactory configurationFactory() {
        return new ConfigurationFactory().withResourceName("app.conf") //
                .withScanPackage("org.jsconf.core.sample.bean");
    }
}

谢谢我想我会尽量坚持注释。我并不真的讨厌XML本身,但我希望有一些替代品。
@Configuration
public class ContextConfiguration {
    @Bean
    public static ConfigurationFactory configurationFactory() {
        return new ConfigurationFactory().withResourceName("app.conf") //
                .withScanPackage("org.jsconf.core.sample.bean");
    }
}