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 🙂

java telnet gibi

gün içinde sıkça
telnet ipadresi port

diyip bir makinenin diğer makineye bağlı olup olmadığını belirli porttan kontrol etmemiz gerekiyor. fakat bugün root olmadığımız bir linuxde telnet kurulu olmadığını fark ettim. hemen java classımı kondurdum buyrun ihtiyaç olursa
derlemek için
javac telnet.java
kullanımı
java telnet 10.210.60.55 22

yukardaki ipnin portuna bağlanmaya çalışır bağlanırsa success değilse problem ve sebebini yazar. koduda şöyle

oracle constraint bulma

gelen exceptionlar şu şekilde

ORA-00001: unique constraint (SCHEMA.SYS_C0067078) violated

sağolsun hibernate veya oracle create ederken çok nadide isim seçmiş SYS_C0067078 velhasılı bunu görücne insan bişey anlamıyor. constraintin ilişkili olduğu tablo ve detayı için oracle da

select * from all_constraints
where owner = ‘SCHEMA’
and constraint_name = ‘SYS_C0067078’;

çalıştırmak yeterli.

linuxde çalışan javaların kaç gündür çalıştığını görmek

ps -ef|grep java|awk ‘{print $2}’|xargs ps -o pid,etime,command -p
yukardaki satır sistemdeki javaların kaç gündür çalıştığını gösterir. örnek çıktı

 PID ELAPSED COMMAND
16149 19-04:27:43 uzun komut
24767 12-04:55:26 komut

bold olanlar gün adedi sağdakide saat ve dakika ilk satırın anlamı: 19 gün 4 saat 27 dakikadır çalışıyor demek.

eğer javadan başka birşeyin kaç gündür çalıştığını görmek istiyorsanız yapmanız gereken aşağıdaki satırdaki bold bölgeyi taradığınız işlem adına çevirmek

ps -ef|grep java|awk ‘{print $2}’|xargs ps -o pid,etime,command -p

örnek kaç gündür makine açık

ps -ef|grep init|awk ‘{print $2}’|xargs ps -o pid,etime,command -p