به نظر من مطرح کردن این سوال اینجا اشتباه است،
به چند دلیل :
1- مشخص نبودن scope پروژه شما به عنوان مثال
از نظر نوع معماری، تعداد کاربران، تعداد تراکنش، تعداد سرویس های ارائه شده به سیستم های درحال تعامل با سیستم در حال توسعه، تعداد سرویس هایی که این سیستم می گیرد، سرعت تعامل بین component هایی که در این سیستم تعریف شده چقدر است؟ ، و از همه مهم تر آیا به این ابزارها شما واقعا احتیاج دارید ؟
2- این سوال مشابه EJB Vs Spring می باشد که سوال درستی نیست
============================================
همان طور که در بالا اشاره شد خیلی بستگی به معماری پروژه دارد.
EJB استاندارد (JSR) در حوزه JEE است که توسط JCP تایید شده است. EJB کار مدیریت Bean های شما را بر عهده می گیرد البته این کار را Spring هم انجام می دهد. Spring قابلیت های خوبی دارد مثل AOP، IOC.
EJB قابلیت خوبی برای برقراری ارتباط با JMS دارد. برای کار با EJB به یک Application Server نیاز است. Application Server ها قابلیت Cluster شدن دارند. امکان مانیتورینگ خوبی بر روی Browser می دهد. در Application Server شما EJB Container و Web Container (servlet & jsp container) داریم.
برای اجرای پروژه با spring فقط به یک web server احتیاج است.
Spring امکانات خوبی برای integration با Hibernate یا JPA دارد. همچنین Spring MVC امکانات خوبی برای کار با UI دارد.
Spring Security امکاناتی برای قسمت امنیت ارائه داده است.
Spring roo یک امکانی است که کل DB شما را گرفته و پروژه را تا حد Aspect می سازد که اصلا پیشنهاد نمی شود.
EJB مخصوص مدیریت لایه Bean می باشد.
حال باز بسته به نوع کار شما دارد که بخواهید هر قسمت از برنامه شما خاص منظور روی یک کامپیوتر اجرا شود و معماری distributed system داشته باشید یا خیر؟
سازمان شما چقدر حاضر است هزینه کند ؟ (هزینه فرصت ، هزینه امنیت ، هزینه زمانی، هزینه برنامه نویس ، هزینه زیرساخت و ...)
این هزینه ها برای پروژه Spring و EJB متفاوت می باشد.
در این رابطه مقایسه هایی انجام شده است که لینک آنها در زیر آمده است :
http://onjava.com/pub/a/onjava/2005/06/29/spring-ejb3.html?page=1
http://stackoverflow.com/questions/68527/should-i-use-ejb3-or-spring-for-my-business-layer
http://stackoverflow.com/questions/7076144/ejb-3-1-or-spring-3-when-to-choose-which-one
http://stackoverflow.com/questions/1779169/spring-vs-ejb-can-spring-replace-ejb