首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个SimpleJDBCCall bean在Java中引起声纳问题

多个SimpleJDBCCall bean在Java中引起声纳问题
EN

Stack Overflow用户
提问于 2021-03-23 16:44:02
回答 1查看 100关注 0票数 0

我的应用程序是springboot,我有DatabaseConfig,其中配置了多个SimpleJDBCCall bean来执行存储的proc,并且有DAO,其中使用构造函数注入bean。这是很好的工作,但这是失败的声纳,因为我有超过7个豆子。我们不能调整声纳设置,因为许多团队使用它。所以请在这里建议,下面是我的DatabaseConfig的样子

代码语言:javascript
复制
@Configuration
public class DatabaseConfig {

@Autowired
public JDBCTemplate jdbcT;

@Bean(spOne)
public SimpleJDBCCall spOne(){
   return new SimpleJDBCCall(jdbcT).withSchema(x).....;
}

@Bean(spTwo)
public SimpleJDBCCall spTwo(){
   return new SimpleJDBCCall(jdbcT).withSchema(x).....;
}

@Bean(spTen)
public SimpleJDBCCall spTen(){
   return new SimpleJDBCCall(jdbcT).withSchema(x).....;
}}

下面是我的DAO类的样子

代码语言:javascript
复制
@Repository
public class Dao{
private JDBCTemplate jdbcT;
private SimpleJDBCCall spOne; private SimpleJDBCCall spTwo; private SimpleJDBCCall spTen;

  public Dao(JDBCTemplate jdbcT, SimpleJDBCCall spOne; SimpleJDBCCall spTwo; SimpleJDBCCall spTen){
         this.jdbcT = jdbcT;
         this.spOne = spOne;
         this.spOne = spTwo; // More settings of storedProc beans.
         this.spOne = spTen;
}}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-23 16:55:48

可以将Map定义为构造函数参数,如下所示:

代码语言:javascript
复制
public Dao(JDBCTemplate template, Map<String, SimpleJDBCCall> jdbcCalls){
    
}

然后Spring将将SimpleJDBCCall类型的所有bean实例添加到映射中。映射的关键是bean名(在您的示例中是"spOne“、"spTwo”等),值是bean的实例。如果你仍然可以用这个做你的使用,这可能是最简单的解决方案。

如果您没有访问代码中的特定bean,但是只是迭代所有模板来执行调用,那么一个列表而不是映射也就足够了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66767512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档