La spécification EJB 3.0 tente de simplifier l'architecture d'EJB 2.1 en limitant le nombre d'artefacts de programmation que les développeurs doivent fournir, réduisant le nombre de méthode callback requises et simplifiant le modèle de programmation de bean d'entité et le modèle de correspondance O/R.
Un modèle de programmation d'EJB basé sur les annotations - tous les types d'enterprise beans sont des plain old Java objects (POJOs) ayant les annotations appropriées. Une approche de configuration par exception utilise les valeurs par défaut intuitives pour présumer les principaux paramètres. Les annotations sont utilisées pour définir l'interface métier du bean, les correspondances O/R, les références de ressources ainsi que d'autres informations précédemment définies via les descripteurs de déploiement ou interfaces. Les descripteurs de déploiement ne sont pas requis ; l'interface Home n'est plus utilisée et il n'est plus nécessaire de mettre en oeuvre une interface métier (le conteneur peut la générer pour vous).
Par exemple, vous déclarez un bean de session sans état en utilisant l'annotation @Stateless. Dans le cas de bean avec état, l'annotation @Remove est marquée sur une méthode particulière afin d'indiquer que l'instance de bean doit être supprimée après traitement de l'appel de la méthode marquée.
Le nouveau modèle de persistance pour les beans d'entité - Les nouveaux beans d'entité sont également des POJOs avec quelques annotations et ne sont pas par essence des entités persistantes. Une instance d'entité devient persistante une fois qu'elle est associée à un EntityManager et devient une partie d'un contexte de persistance, qui est plus ou moins synonyme d'un contexte de transaction et coexiste de façon implicite avec la portée d'une transaction.
Les relations de l'entité et les correspondances O/R sont définies via les annotations, en utilisant l'environnement open source Hibernate (voir Génération d'objet persistants pour Java et de pages JSF).
Il y a également plusieurs effets de bord liés à ces propositions, telles que le nouveau modèle de programmation client, l'utilisation d'interfaces métiers et le cycle de vie d'un bean d'entité.