我正在开发一个REST API与Spring引导v2.0.0。RELEASE与mongoDB耦合。使用sping-boot-starter-data-mongob连接MongoDB im。
正在申请中。属性我可以更改与mongodb相关的基本配置,但我的问题是,当涉及高级属性时,管理这些配置的最佳方式应该是什么。例如,不能通过应用程序更改每个主机的连接属性。财产。
因此,我使用了AbstractMongoConfigance并扩展了它,以便提供上面提到的配置,例如每个主机的连接。这是正确的方法吗?
我过去常常创建外部属性文件,可以尽可能多地添加这些文件。我把属性读入地图
@PostConstruct
public void properties() throws Exception{
// read properties and put them into map
crmPropertiesMap.put(key, properties);
}
@Bean(name = "crmPropertiesMap")
public Map<String, CRMProperties> getCrmPropertiesMap() {
return crmPropertiesMap;
}
并为每个属性文件创建新的数据源,然后将它们放入另一个map
Map
@Bean
public Map<String, DataSource> dataSourceMap() {
Map<String, DataSource> dataSourceMap = new HashMap<>();
for( CRMProperties crmProperties : crmPropertiesMap.values())
{
// create DataSource
dataSourceMap.put(crmProperties.getHotelName(),
DataSourceBuilder.create()
.url(crmProperties.getSpringDatasourcePrimaryUrl())
.driverClassName(crmProperties.getSpringDatasourcePrimaryDriverClassName())
.username(crmProperties.getSpringDatasourcePrimaryUsername())
.password(crmProperties.getSpringDatasourcePrimaryPassword())
.build());
然后创建SQL会话
private SqlSession createSqlSession(String id) {
TransactionFactory transactionFactory = new JdbcTransactionFactory();
Environment environment = new Environment(id, transactionFactory, dataSourceMap.get(id));
Configuration configuration = new Configuration(environment);
configuration.addMapper(SaleInfoMapper.class);
return new SqlSessionTemplate(sqlSessionFactoryBuilder.build(configuration));
}
@Bean
public Map<String, SqlSession> sqlSessionMap() {
Map<String, SqlSession> sqlSessionMap = new HashMap<>();
for ( String id : dataSourceMap.keySet() )
{
sqlSessionMap.put(id, createSqlSession(id));
}
return sqlSessionMap;
}
然后动态获取SqlSession。
SqlSession sqlSession = sqlSessionMap.get(key);
希望这对你有帮助。
在我们的软件,我们使用spring Java配置。我们有一个设置,其中一个配置扩展了一个抽象配置。请看一下这个测试案例: 其思想是,覆盖了并且在创建的ApplicationContext中只有一个类型的bean位于名称之下。 结果是: 所以它说,有两个bean(两个实例--每个名称一个)--甚至更令人吃惊的是:创建这两个bean都使用了相同的方法()。 这种行为在我们看来很奇怪:我们希望sprin
我有一个通用映射器: 在编译时,它会生成以下错误:无法将属性“objects”映射到“dto”。考虑声明/实现一个映射方法:“”。 当我实现map方法时,如错误中所示,我有以下错误:不能为泛型类型变量源生成映射方法。
我将使用Ehcache和Springboot。我只是想知道在处理大量请求时,什么会是最佳配置。 在直播期间,我们可能会收到超过30000 req/h。虽然在开发中,我们无法生成此方案。 你能帮我如何计算内存,以创建一个最佳配置,应在Prod中完美工作。 我检查了Postman中的响应大小,在Dev中为3-5 kb,因此我保留了以下配置,但不确定它会有多好。我们的内存大小为2GB(在prod中,我们
我们可以使用AbstractMongoConfiguration(http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/config/AbstractMongoConfiguration.html)进行mongob配置。此外,我们可以使用application.prop
我有一个关于春豆的问题。 有父类parent和构造函数(没有任何setter)。 Object1 obj1-对于任何子实例,它都是相同的对象。Object2 obj2、Object3 obj3-对于任何实例都可以是不同的 若我为父对象使用setter(我不能更改它),我可以声明抽象bean,为它设置object1obj1,然后我可以将它用作抽象bean(只设置obj2和obj3引用/值)。 是否有
我正在为一个CS项目做一个游戏,其中一个要求是只有一个扫描仪为人类输入。如果我创建一个抽象类“Player”,它有一个扫描器对象,并创建两个扩展“Player”的“人类”类,它们是各自有自己的扫描器,还是共享“Player”扫描器?另外,当我结束游戏时如何关闭扫描仪?