2012-01-02 13 views
5

Tengo un pequeño requisito extraño. Supongo.Cómo interceptar la creación de objetos en Java

Me gustaría usar un Proxy personalizado que creé para decorar todos los objetos que implementan una interfaz específica, pero necesito que esto sea transparente para el código en sí. Algo que podría incluirse en el proceso de compilación sería perfecto.

Estaba pensando en AOP pero no veía tales capacidades, estoy buscando ideas, incluso las locuras. Estoy pensando en cambiar el código fuente después de la compilación y recompilarlo reemplazando al menos las llamadas directas a nuevas (supongo que esto no generaría objetos por reflexión, pero sería un buen comienzo) pero puedo pensar en un millón de problemas que esto podría traer, rompiendo mi objetivo principal que es hacer que tal instrumentación sea lo más transparente posible.

¿Alguno de ustedes tiene alguna experiencia en algo tan inusual?

Saludos

Respuesta

3

Use una anotación para decorar las clases y el uso de procesamiento de anotación para inyectar el código que necesita.

FYI, Hibernate emplea este enfoque

+0

Hola, El punto es lo que necesito para interceptar es la construcción del objeto, devolviendo un proxy en lugar del objeto puro, Hibernate hace envolver los frijoles en la representación, pero nunca después de una llamada explícita a hibernate/jpa (guardar/persistir en la sesión y así sucesivamente). Necesito algo más transparente – PedroSena