Property Binder is a Java library that provides typed access to entries in properties files. It offers such access by allowing a programmer to provide it a Java interface whose methods represent the keys of the properties file. The methods can be annotated to indicate what property the method represents, what default value(s) it should assume if the property is not present, and what pattern separates the individual values of multi-valued properties.

The latest major version of Property Binder admits properties files, resource bundles, and string-keyed maps out of the box. You can bind other types of string-keyed configuration by providing an implementation of interface PropertySource.

Property Binder builds on work described in this blog post. That post, along with a similar technique used on the author's work project for eliminating repetitive boilerplate in Spring JDBC stored procedures, demonstrate a means of declarative programming in Java that seemed unique and powerful and enough to deserve its own name: PICA (Proxied Interfaces Configured with Annotations). The PICA technique and the beginnings of Property Binder are described in this article.

Here are some libraries that perform the same duties as Property Binder:

I'd love to hear your constructive feedback, especially suggestions for improvements to the library or the site! If your project is using Property Binder, do let me know.