Spring支持JSON配置吗?
有人知道Spring是否有允许通过JSON(或任何其他格式)而不是XML配置其ApplicationContext的扩展吗?我在官方文档中找不到任何东西,但我想知道是否有其他开源扩展可以支持这一点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定义的一种方法
明确地说,我不是说配置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");
}
}