Sunday, November 18, 2012

spring circular reference bean problemi

spring de service ler reporsitoryler derken heryerimiz bean olmuş durumda ve uygulama bi şekilde çalışıyor. çok da nasıl çalıştığına önem vermeden kodlamaya devam ediyorum. javasimon için aop enable edip server start ediyorum birden şöyle bir exception alıyorum.

Error creating bean with name 'membershipProvider': Bean with name 'membershipProvider' has been injected into other beans [roleProvider] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.

daha evvelinde aop enable ettiğimde daoUtils can not be set $Proxy180 gibi exceptionlarda görmüştüm onları geçmek için springin root context xmlinde şöyle birşey yapmıştım

spring confundanda anlaşılacağı üzere interface kullanmıyorum pek. o kadar DI sevmiom bide çok kod kafa karıştırıo tek class da iş bitiriyorum genelde.

neyse allowEagerInit hatası içinde gittim memberShipProvide ın tepesine @Lazy ekledim sorunsuz çalıştı. okuduklarıma göre circular reference zaten design hatası fakat bazen gerekiyor. bu durumda @Lazyı anotasyonu işimizi çözüyor. java simonda güzel güzel çalıştı ama webconsole da gördüğüm çıktılar beni çok tatmin etmedi. olmadı jamon a dönücem. buda gelişim sürecinde bir spring hibernate projesinden küçücük bir kare :)

No comments:

odd string diff

 https://leetcode.com/problems/odd-string-difference/ Beats 19.92% of users with Java   class Solution { public String oddString ( S...