代码之家  ›  专栏  ›  技术社区  ›  Illarion Kovalchuk

如何用guice注入资源

  •  4
  • Illarion Kovalchuk  · 技术社区  · 14 年前

    @SuppressWarnings("serial")
    public class CleanAction extends AbstractAction {
    
        private final JTable table;
        private final PowderTableModel tableModel;
    
        @Inject
        public CleanAction(@Named("data") JTable table, PowderTableModel tableModel) {
            super("Clean", new ImageIcon(CleanAction.class.getResource("/icons/table.png")));
            this.table = table;
            this.tableModel = tableModel;
        }
    
    ...
    }
    

    它在测试中运行良好,但在guice初始化期间CleanAction.class.getResource(“图标/表格.png)为空,因此它将失败并返回NullPointerException。

    有什么方法可以注入资源吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   jfpoilpret    14 年前

    回答你的问题“有没有什么方法可以注入资源?”,我会说“不,不是现成的”。

    ResourceInjector 基于Guice的服务 Guts-GUI 框架(Apache许可证2.0)。请随意看一下,看看我是如何使用Guice特性来确保可以在Guice注入时注入资源的。

    这比您所描述的要普遍得多(在“参考资料”中,我为您提供了文本) JLabel JButton ...)

    但是,请注意,自动资源注入是一项复杂的业务(许多不同类型的资源…)

        2
  •  1
  •   amorfis    14 年前

    你在用maven吗?也许你有你的档案 src/test/resources src/main/resources