Luigi R. Viggiano provides OWNER API, a clever, better way to handle Java properties.
Essentially he maps properties in a general sense onto Java interfaces, using annotations to guide sourcing and processing. This is going directly into my projects.
I wrote a similar library based on interfaces to access properties, but using inheritance, implementation and generics with a set of helper base classes. His approach is superior.
@Sources({ "file:~/.myapp.config", "file:/etc/myapp.config", "classpath:foo/bar/baz.properties" }) public interface ServerConfig extends Config { @Key("server.http.port") int port(); @Key("server.host.name") String hostname(); @Key("server.max.threads"); @DefaultValue("42") int maxThreads(); }
Interfaces to access properties is right. Among benefits you get strong typing of configuration and your IDE provides code completion.
No comments:
Post a Comment