I was just wondering, why there is no interface for a Spring Bean or for a EJB Bean (or for an OSGi service)? I know that there is no need for this because frameworks can use reflection API for calling methods but wouldn't it be less erroneus if interfaces were used instead?

For example, why there is no interface for OSGi component which would look like this:

```
interface OSGIComponent {
  void activate(BundleContext context);
  ... 
}

```