小编why*_*yem的帖子

如何以编程方式获取资源目录路径

我有以下目录布局:

  • SRC
    • 主要
      • java的
      • 资源
        • sql(数据库脚本)
        • 弹簧(配置)
      • Web应用程序

在ServletContextListener类中,我想访问SQL目录下的文件并列出它们.基本上我的问题是路径,因为我知道简单地列出目录下的文件是:

File folder = new File(path);
File[] listOfFiles = folder.listFiles();
Run Code Online (Sandbox Code Playgroud)

也许我可以使用ServletContextEventObject来尝试构建路径resources/sql

public void contextInitialized(ServletContextEvent event) {
    event.getServletContext(); //(getRealPath etc.)
}
Run Code Online (Sandbox Code Playgroud)

是否存在以相对的非硬编码方式设置该路径的东西?像new File("classpath:sql")(最好是弹簧,如果可能的话)或者我应该用servletContext指向resources/sql什么?

java io spring

70
推荐指数
4
解决办法
16万
查看次数

我如何在 Dagger 中“提供”一个空方法

我正在尝试从 Spring 迁移一个项目,并按照示例 GitHub 存储库开始使用 Dagger 2。

在 Spring 中,我可以在类级别使用注释来公开类的所有方法,包括void方法。我想在 Dagger 2 中做到这一点,即,我想“提供”一种void方法。

在下面的代码示例中,也许我应该将printRandomUUID方法移到Printer接口中。但是,我正在做这个小练习,目的是迁移经典的 Spring@Component@Service.

正确的做法是什么?是否可以在组件或模块级别提供 void 方法?

public class Main {

 interface Printer {

    void printMsg(String msg);
 }

 static class ConsolePrinter implements Printer {

    @Override
    public void printMsg(String msg) {
        System.out.println(msg);
    }
 }

 @Singleton
 @Component(modules = ConsoleModule.class)
 interface HelloWorldApp {

    Printer getPrinter();

    //this doesn't compile -> java.lang.IllegalArgumentException: not a valid component method:
    void printRandomUUID();
 }

 @Module
 static …
Run Code Online (Sandbox Code Playgroud)

java dependency-injection dagger-2

2
推荐指数
1
解决办法
1060
查看次数

标签 统计

java ×2

dagger-2 ×1

dependency-injection ×1

io ×1

spring ×1