آموزش Java Spring

در معرفی Java Spring ، باید اینگونه شرح داد که اسپرینگ (Spring) یکی از پلتفرم های جاواست (Java) که برای آماده سازی پشتیبانی جامع زیرساختارها، برای توسعه سریع و آسان برنامه های قدرتمند جاوا (Java) استفاده می شود. Java Sprin) معمول ترین قالب برای توسعه برنامه های Enterprise Java است. از جمله دلایل محبوبیت Java Spring می توان به ایجاد کدهایی با قابلیت استفاده مجدد، قابلیت تست آسان و کدهایی با عملکرد بالا اشاره کرد.
Java Spring در متون مختلف، معانی متفاوت دارد. از عبارت Java Spring می توان برای ارجاع به پروژه های نوشته شده در خود ساختار Java Spring استفاده کرد. اغلب، هدف افراد از بکارگیری عبارت Java Spring، مجموعه کامل پروژه است؛ و این مستندسازی مرجع، بر اساس و پایه پروژه که همان Java Spring است، متمرکز است.
Java Spring دارای چندین ماژول است و برنامه ها می توانند ماژول های مورد نیاز خود را از میان ماژول های Java Spring انتخاب کنند. کدهای Java Spring سبک و خوانا هستند، و ویژگی های پایه آنها را می توان در توسعه هر برنامه ای از جاوا (Java) بکار گرفت. Java Spring بدنبال توسعه آسانتر J2EE ، برای بکارگیری و ارتقا پروژه های برنامه نویسی با استفاده از مدل برنامه نویسی POJO است. علاوه بر این، Java Spring پشتیبانی ساختاری از امکانات مختلفی همچون Messaging (پیام رسانی)، Transactional Data and Persistence (داده های تبادلی و نگهداری این داده ها)، و همچنین پشتیبانی از ساختار وب را مهیا می سازد.
در این مجموعه، مقالاتی مفید ازJava Spring را در اختیار شما عزیزان قرار داده، تا بتوانید هر چه بیشتر با امکانات و زمینه های کاربردی Java Spring آشنا شوید.
برای مشاهده دوره مرتبط با این مجموعه مقالات بر روی عبارت Java Spring کلیک کنید.
آموزش مقدماتی Spring

Spring محبوب ترین چهارچوب کاری جهت توسعه نرم افزارهای سطح بالا به زبان جاوا ( Java ) می باشد .میلیون ها برنامه نویس در سراسر جهان ، از چهارچوب کاری Spring برای تولید نرم افزارهایی با کارایی بالا ، ساده جهت تست و قابل استفاده مجدد از کدهای آن ، استفاده می کنند .

چهارچوب کاری Spring میتواند یک ابزار همه منظوره برای نرم افزارهای سطح بالا شما باشد . اما به هرحال ، Spring یک چهارچوب ماژول گونه ( دارای بخش های مختلف ) است و می توانید در هر برنامه فقط ماژول هایی که نیاز دارید

در این درس ، به آموزش تنطیم و نصب محیط های کاری لازم جهت شروع برنامه نویسی با چهارچوب کاری spring خواهیم پرداخت . همچنین در این آموزش ، نحوه تنظیم JDK ، نصب ابزار Tomcat ونصب نرم افزار Eclipse را قبل از تنظیم محیط کاری spring خواهید آموخت .

در این درس ، قصد داریم تا کدنویسی با چهارچوب کاری Spring را شروع کنیم . قبل از آغاز کدنویسی ، حتما مطمئن شوید که محیط کاری Spring ، به درستی برروی سیستم شما نصب شده است

Spring Containers هسته اصلی چهارچوب کاری Spring است .( Spring Containers اشیا یا object های برنامه را ایجاد کرده ، آنها را به هم مرتبط می سازد ( Wiring ) ، تنظیم آنها را انجام داده و چرخه حیات ( Life cycle ) آنها را از زمان ایجاد تا ازبین رفتن مدیریت می کند
آموزش شی Bean در Spring

اشیایی که ستون فقرات برنامه شما را تشکیل داده و توسط Spring IOC Container مدیریت می شوند ، Beans می نامیم . یک Bean شی ای است که توسط یک Spring IOC Container معرفی ، ایجاد و اجرا شده است . این Bean ها ، توسط اطلاعات پیکربندی ( configuration metadata ) که برای یک Container فراهم نموده اید ( برای مثال توسط یک فایل XML با تگ ( <bean> ) ایجاد می شوند . به آموزش این روش در درس قبلی پرداختیم .

هنگام تعریف یک شی <bean> در چهارچوب کاری Spring ، شما می توانید یک میدان ( Scope ) برای آن تعیین کنید . اما میدان ( Scape ) چیست و چه کارایی دارد . برای مثال فرض کنید شما میخواهید تا برنامه Spring را مجبور کنید ، هر زمان که به یک شی Bean نیاز دارید ، یک نسخه جدید از آن را بسازید .

چرخه حیات یک Spring Bean بسیار ساده و قابل فهم است . هنگامی که یک Bean ، ایجاد می شود چند مرحله مقدار دهی اولیه برای آن لازم است تا به یک وضعیت با ثبات برسد . از طرف دیگر ، هنگامی که به یک Bean دیگر نیازی نداریم و بایستی از Container حذف شود ،چند مرحله عملیات پاکسازی بایستی انجام شود .

رابط کاربری BeanPostProcessor ، متدهای وابسته ای را تعیین می کند که به وسلیه آنها میتوانید دستورات برنامه نویسی مورد نظر خود را در برنامه اجرا کنید . شما همچنین می توانید یکسری منطق های کدنویسی را پس از اینکه Spring IOC Container یک شی Bean را مقدار دهی ، تنظیم و ایجاد نمود ، تعیین و اجرا نمایید . این کار بوسیله متصل کردن یک یا چند BeanPostProcessor به برنامه انجام می شود .

ارث بری در تعریف Spring Bean ها ، ربطی به ارث بری کلاس ها در java ندارد ، اما چهارچوب کلی کار یکی است . شما میتوانید تعریف یک Bean مادر را به عنوان الگو قرار داده و هرچند فرزند که میخواهید خصوصیت آن را به ارث ببرد ، از رویش بسازید .
مباحث پیشرفته Spring

Dependecy Injection که گاهی اوقات Wiring هم نامیده میشود ، به ما کمک میکند تا کلاس ها را به هم مرتبط کرده و در عین حال کاری میکند تا آنها مستقل از هم عمل کنند .

همانطور که میدانید ، کلاسهای درونی در جاوا ( Java inner classes ) کلاس هایی هستند که درون محدوده کد یک کلاس دیگر تعریف می شوند . به همین صورت inner beans نیز اشیای bean ی هستند که در درون محدوده کد یک bean دیگر تعریف می شوند .

در درس های قبل آموختید که چگونه انواع داده ای اصلی مثل int ، string و ... را با استفاده از خاصیت Value و یا رفرش از یک شی ( object Refrence ) به وسیله خاصیت ref در تگ <property> موجود در فایل پیکربندی اطلاعات ( configuration file ) ، تنظیم و ارسال نمایید . هردوی موارد اشاره شده ، برای ارسال یک مقدار تکی به شی bean استفاده می شوند .

در درس های قبلی ، با نحوه تعریف اشیای beans به وسیله المنت <bean> و همچنین تزریق <bean> به درون فایل های XML پیکربندی اطلاعات برنامه ( Configuration File ) به وسیله تگ های <property> و <constructor-org> آشنا شوید . Spring Container می تواند ارتباطات بین اشیای Beans یک برنامه را با استفاده از عمل اتصال خودکار (antowire) و بدون کمک از المنت های <property> و <constructor-org> انجام دهد . عمل Autowire باعث کاهش حجم کدنویسی فایل XML پیکربندی اطلاعات ، مخصوصا در برنامه های بزرگ مبتنی بر Spring می شود .

از نسخه 2.5 چهارچوب کاری Spring ، این امکان به وجود آمد تا dependency injection را به وسیله annotations انجام دهیم . بنابراین به جای استفاده از XML برای تشریح یک bean wiring ، می توانید تنظیمات پیکربندی را به خود کلاس شی انتقال دهید . در این حالت annotations را در کلاس مربوطه ، متدها و یا فیلدهای تعریف داده به کار میبریم .

در درس های قبل ، به نحوه تنظیم Spring beans به وسیله فایل های پیکربندی مبتنی بر XML آشنا شدید . اگر با نوشتن کدهای پیکربندی اطلاعات به زبان XML مشکلی ندارید ، به نظر من نیازی نیست تا روش نوشتن این فایل را به زبان جاوا را نیزیاد بگیرید . زیرا در هر دو روش به نتیجه یکسانی رسیده و فایل پیکربندی اطلاعات مبتنی بر XML یا مبتنی بر جاوا خروجی یکسانی دارند .

ApplicationContext ، رویدادهای مشخصی را در هنگام لود و فراخوانی Bean های برنامه اجرا می کند . برای مثال ، رویداد ContextStartedEvent هنگامی مه Context شروع به لود کرده ، اجرا شده و رویداد ContextStopedEvent در هنگام پایان لود شدن Context رخ می دهد . مدیریت رویدادها ( Event Handling ) در ApplicationContext را اجرا کند ، هربار که کلاس ApplicationEvent به ApplicationContext ارسال شود ، شی Bean از این عمل مطلع خواهد شد .

برای نوشتن یک رویداد دلخواه در Spring ، بایستی چند مرحله را انجام دهید . در این درس به صورت گام به گام همراه با سورس عملی مثال ، نحوه نوشتن یک Custom Event را آموزش داده ایم .

یکی از Component های اصلی و کلیدی چهارچوب کاری Spring ، کامپوزیت AOP یا Programming Aspect oriented است . Aspect oriented Programming باعث تفکیک شدن منطق و کدهای برنامه ( Logic ) به بخش های مجزایی به نام So-called Concern می شود .

هنگامی که در محیط های برنامه نویسی جاوا ، برای کار با پایگاه های داده از زبان قدیمی JDBC استفاده می کنیم ، کار برنامه نویسی کمی سخت می شود . در این شرایط نوشتن کدهای غیر ضروری برای مدیریت استثنا های برنامه ، باز و بسته کردن ارتباط با پایگاه داده و ... کمی دشوار است . از طرف دیگر ، چهارچوب کاری JDBC در Spring ، با رویکردی جدید انجام کلیه امور مرتبط با پایگاه داده از کارهای معمولی تا سطح بالا را برعهده گرفته است . برای مثال Spring JDBC ، تمهیدات لازم جهت باز کردن ارتباط با پایگاه داده ، آماده نمودن دستورات SQL جهت اجرا ، پردازش استثناها و مدیریت تراکنش ها و در نهایت بستن ارتباط را فراهم کرده است .

یک تراکنش در پایگاه داده ( database transaction ) مجموعه ای از عملیات های داده ای متوالی ، است که بایستی به عنوان یک واحد کاری رفتار کند . این مجموعه عملیات ها یا بایستی به صورت کامل با هم انجام شوند و یا اینکه کلا اثری برسیستم نداشته باشند . به عبارت دیگر تراکنش یا باید به طور کامل و موفقیت آمیز انجام شده و یا در کل لغو گردد .

فریم ورک Spring MVC ، معماری model-view-Controller و کامپوزیت های آماده آن را برای ایجاد نرم افزارهای تحت وب انعطاف پذیر و دارای بخش های مجزا فراهم میکند . الگوی MVC باعث جدا شدن و مستقل عمل کردن اجزای اصلی یک application ( UI logic و business و input logic ) از یکدیگر شده ، در حالی که ارتباط بین آنها به وسیله روش های مختلفی فراهم می شود .

استفاده از Log4J در پروژه ها و نرم افزارهای Spring بسیار ساده است . همانطور که می دانید Log4J یک سیستم log کردن اطلاعات در Java است . مثالی که در این درس ارائه خواهیم داد ، مراحل ساده استفاده و ترکیب Log4J در پروژه های Spring را نشان می دهد . در اینجا فرض براین است که Log4J برروی سیستم شما نصب است . در غیر اینصورت به آدرس http://logging.apache.org رفته و فایل های نصب Log4J را دانلود نمایید . سپس آنها را در یک پوشه extract کرده و فایل اصلی log4j-x.y.2.jar را نصب نمایید .
آموزش فرم هندلینگ(Form Handling) در Spring MVC

در این مثال چگونگی نوشتن یک برنامه ی تحت وب ساده ی Hello World با استفاده از Spring MVC Framework نشان داده شده است. برای شروع Eclipse IDE را آماده کنید و جهت توسعه ی یک برنامه ی وب پویا با استفاده از Spring Web Framework مراحل زیر را دنبال کنید.مثال Form Handling در Spring MVC

در این مثال چگونگی نوشتن یک برنامه ی تحت وب ساده نشان داده شده است که از طریق آن می توان جهت انتقال یک درخواست HTTP به صفحه ی دیگر از قابلیت redirect استفاده کرد. برای شروع Eclipse IDE را آماده کنید و جهت توسعه ی این برنامه ی وب مبتنی بر فرم پویا با استفاده از Spring Web Framework مراحل زیر را دنبال کنید.مثال Page Redirection در Spring MVC

در مثال زیر چگونگی نوشتن یک برنامه ی وب ساده با استفاده از Spring MVC Framework نشان داده شده است که از طریق آن می توانید در کنار صفحات پویا به کمک تگ <mvc:resources> به صفحات ایستا دسترسی پیدا کنید.مثالی برای صفحات ایستا(Static Pages) در Spring MVC
نقشه برداری دستیار(Handler Mapping) در Spring MVC

در مثال زیر چگونگی استفاده از Bean Name URL Handler Mapping با استفاده از Spring Web MVC Framework نشان داده شده است.مثالی برای Bean Name Url Handler Mapping برای Spring MVC

در مثال زیر چگونگی استفاده از Controller Class Name Handler Mapping با استفاده از Spring Web MVC Framework نشان داده شده است.مثالی برای Controller Class Name Handler Mapping برای Spring MVC
آموزش Java Spring Farmework

در این آموزش اسپرینگ، مفاهیم عمیق فریمورک اسپرینگ با استفاده از مثالهای ساده ارائه شده است. اسپرینگ در سال 2003 توسط راد جانسون توسعه یافت. فریمورک اسپرینگ توسعه برنامههای کاربردی (Application)javaEE را آسانتر کرده است. این آموزش هم برای افراد تازهکار و هم با تجربه مفید است.

فریمورک اسپرینگ شامل ماژولهای بسیاری از جمله core, beans, context, expression language, AOP, Aspects, Instrumentation, JDBC, ORM, OXM, JMS, Transaction, Web, Servlet, Struts و غیره است. این ماژولها به چند دسته Test, Core Container, AOP, Aspects, Instrumentation, Data Access / Integration, Web (MVC / Remoting) تقسیم شده اند. شکل زیر این تقسیمبندی را نشان میدهد.

در اینجا مراحل ساده ایجاد اولین برنامه کاربردی اسپرینگ را یاد میگیریم. برای اجرای این برنامه از هیچ IDE استفاده نمیکنیم و به سادگی از command prompt استفاده میکنیم. مراحل ساخت این برنامه کاربردی اسپرینگ به شرح زیر است:
آموزش Spring in IDE-Java Spring

ایجاد برنامه های کاربردی اسپرینگ در myeclipse IDE آسان است. شما نیاز نیست که درگیر فایل های jar مورد نیاز برنامه های کاربردی اسپرینگ باشید، زیرا myeclipse IDE آنها را فراهم می کند. در ادامه مراحل ساده ایجاد یک برنامه اسپرینگ را در myeclipse IDE می بینیم.

در اینجا برای ایجاد یک برنامه کاربردی ساده از فریمورک اسپرینگ از Eclipse IDE استفاده می¬کنیم. مراحل ساده ایجاد یک برنامه کاربردی اسپرینگ در Eclipse IDE به شرح زیر است.
آموزش Dependency Injection-Java Spring

وظیفه مدیر IOC نمونه گیری، پیکربندی و اسمبل کردن اشیا است. مدیر IOC اطلاعات را از طریق یک فایل xml دریافت و بر اساس آن کار می کند. وظایف اصلی مدیر IOC عبارتند از:

تزریق وابستگی یک الگوی طراحی برای حذف وابستگی های کد برنامه است تا مدیریت و تست برنامه کاربردی ساده تر شود. تزریق وابستگی اتصال ضعیف(loosely coupled) در کد ایجاد می کند. برای درک بهتر DI بهتر است ابتدا درباره DL (Dependency lookup) بدانیم.

وابستگی را می توان توسط سازنده تزریق کرد. از زیر عنصر <constructor-arg> در <bean> برای تزریق سازنده استفاده می شود. در اینجا به تزریق موارد زیر می پردازیم:

اگر در بین کلاس ها رابطه HAS-A وجود داشته باشد، باید در ابتدا از اشیای وابسته نمونه بگیریم و سپس آن نمونه را به عنوان آرگومان سازنده کلاس اصلی پاس بدهیم. سناریو مورد نظر در اینجا Employee HAS-A Address است.....

در فریمورک اسپرینگ می توان توسط سازنده به تزریق مقادیر مجموعه پرداخت. در عنصر constructor-arg میتوان از سه عنصر list، set و map استفاده کرد. هر مجموعه میتواند مقادیر از نوع رشته و یا غیر رشته داشته باشد.....

در صورت داشتن شی وابسته در مجموعه، می توان با استفاده از عنصر ref درون list، set و map این اطلاعات را تزریق کرد. این مثال از یک فروم که" یک سوال می تواند چندین پاسخ داشته باشد" برداشته شده است، اما پاسخ، اطلاعات منحصر به خود را دارد .....

در این مثال می خواهیم از map به عنوان پاسخی که شامل پاسخ و نام کاربری فرستاده شده است، استفاده کنیم. در اینجا از جفت کلید و مقدار (key-value) به صورت رشته استفاده می کنیم. همانند مثال های قبلی، این مثال نیز برگرفته از فرومی است که" یک سوال می تواند چندین پاسخ داشته باشد" .

در این مثال از map به عنوان پاسخی که شامل پاسخ و کاربر است، استفاده می شود. در اینجا از جفت کلید و مقدار به عنوان شی استفاده می کنیم. اطلاعات پاسخ و کاربر به ترتیب عبارتند از .....

با استفاده از خصیصه والد(parent) مربوط به bean ، می توانیم رابطه وراثتی بین bean ها را مشخص کنیم. در چنین حالتی، مقادیر bean والد به bean فعلی به ارث می رسد. مثالی ساده از وراثت bean را با هم بررسی می کنیم.

علاوه بر روش های گفته شده، با استفاده از متد setter نیز میتوان وابستگی را تزریق کرد. برای تزریق setter .....

همانند تزریق سازنده، میتوان با استفاده از setter ها وابستگی bean دیگر را تزریق کرد. در چنین حالتی از عنصر خصیصه استفاده می کنیم. در اینجا سناریو ما Employee HAS-A Address است. شی کلاس آدرس به عنوان شی وابسته در نظر گرفته می شود. در ادامه کلاس آدرس را بررسی می کنیم...

در فریمورک اسپرینگ می توان با استفاده از متد setter به تزریق مقادیر مجموعه پرداخت. از سه عنصر list، set و map می توان داخل عنصر خصیصه(property) استفاده کرد. هر مجموعه می تواند مقادیر مبتنی بر رشته یا غیر رشته داشته باشد.....

در صورت وجود شی وابسته در مجموعه، می توان با استفاده از عنصر ref درون list ، set و map به تزریق اطلاعات پرداخت. در اینجا از عنصر list ، set یا map درون عنصر property استفاده می شود.....

در این مثال از map به عنوان پاسخ برای سوالی استفاده می کنیم که پاسخ را به عنوان کلید و نام کاربری را به عنوان مقدار دارد. در اینجا از جفت کلید و مقدار به صورت رشته استفاده می شود. همانند مثال های قبلی، این مثال نیز برگرفته از فرومی است که" یک سوال می تواند چندین پاسخ داشته باشد" .....

در این مثال از map به عنوان پاسخی استفاده می شود که شامل پاسخ و کاربر است. در اینجا جفت کلید و مقدار به عنوان شی در نظر گرفته می شود. پاسخ و کاربر هر کدام اطلاعات منحصر به خود را دارند که به ترتیب عبارتند از ........

تفاوت های کلیدی زیادی بین تزریق سازنده و تزریق setter وجود دارد....

ویژگی Autowiring در فریمورک اسپرینگ این قابلیت را به شما می دهد تا به صورت ضمنی به تزریق وابستگی اشیا بپردازید و برای این کار از تزریق setter یا سازنده استفاده می کند.....

فریمورک اسپرینگ به شما این قابلیت را می دهد تا با استفاده از متد factory ، bean تزریق کنید. به این منظور از دو ویژگی عنصر bean استفاده می کنیم.....
آموزش Spring AOP-Java Spring

برنامه نویسی جنبه گرا (AOP) از جهت فراهم آوردن قابلیت ماژولار بودن (modularity)، به خوبی برنامه نویسی شی گرا (OOP) است با این تفاوت که واحد اصلی در ماژولار بودن در AOP جنبه(aspect) است نه شی....

مثال هایی از پیاده سازی AOP در اسپرینگ1.2 سبک قدیمی مبتنی بر dtd ارائه شده است (Spring1.2 old style AOP (dtd based)). توصیه می شود......

فریمورک اسپرینگ در مقابل پیاده سازی AOP در اسپرینگ 1.2 سبک قدیمی مبتنی بر dtd (Spring 1.2 old style dtd based)، پیاده سازی AOP AspectJ اسپرینگ را به شما توصیه می کند.....

اسپرینگ به شما این امکان را می دهد تا بتوانید جنبه ها(aspects)، توصیه ها(advices) و pointcut ها را در فایل xml تعریف کنید. در بخش قبل مثال هایی از AOP با استفاده از نمادگذاری(annotation) را دیدیم.....
آموزش Spring JDBC Template-Java Spring

قالب Jdbc در اسپرینگ یک مکانیزم قدرتمند برای اتصال به پایگاه داده و اجرای SQL query ها است. این قالب با حذف مشکلات JDBC API ، از آن استفاده می کند.....

می توان با استفاده از قالب Jdbc در اسپرینگ، با کمک متد execute() در کلاس قالب Jdbc ، query های پارامتری(parameterized) را اجرا کرد. برای استفاده از query پارامتری، نمونه PreparedStatementCallback را در متد execute پاس می دهیم........

به سادگی می توان با استفاده از متد query() در کلاس قالب Jdbc - جایی که باید نمونه ResultSetExtractor را پاس دهیم - رکوردها را از پایگاه داده واکشی کرد.....

همانند ResultSetExtractor، می توان توسط متد query() در کلاس قالب Jdbc ، با استفاده از واسط RowMapper ، رکوردها ها را از پایگاه داده واکشی کرد......

اسپرینگ روش دیگری برای درج داده، به واسطه پارامترهای نامگذاری شده(named parameter)، ارائه کرده است. در این روش، به جای علامت سوال (؟) از نام ها استفاده می کنیم. بنابراین بهتر است داده ها را ستونی به خاطر بسپاریم.......

اسپرینگ 3 JDBC از ویژگی var-args (آرگومان متغیرvariable argument) و autoboxing جاوا 5 (java) با کمک کلاس قالب SimpleJdbc، پشتیبانی می کند. کلاس SimpleJdbcTemplate کلاس JdbcTemplate را پنهان می کند و یک متد به روزرسانی (update) که بتوانیم تعداد دلخواهی از آرگومان ها را پاس دهیم، فراهم می کند.....
آموزش Spring ORM-Java Spring

اسپرینگ برای ادغام آسان خود با فریمورک های ORM مانند Hibernate ،JPA(java persistence API) ، JDO(java data objects) ، oracle toplink و iBATIS ، API ارائه می کند. فریمورک اسپرینگ نسبت به فریمورک ORM مزیت های بسیاری دارد که عبارتند از: .......

به سادگی می توانیم برنامه های کاربردی hibernate را با برنامه های کاربردی اسپرینگ ادغام کنیم. در فریمورک hibernate تمامی اطلاعات پایگاه داده را در فایل hibernate.cfg.xml آماده می کنیم. اما اگر بخواهیم برنامه های کاربردی hibernate را با اسپرینگ ادغام کنیم، نیازی به ایجاد فایل hibernate.cfg.xml نداریم. تمامی اطلاعات مورد نیاز را در فایل applicationContext.xml می توانیم ارائه دهیم......

اسپرینگ Data JPA ، کلاس JpaTemplate را برای ادغام برنامه های کاربردی اسپرینگ با JPA ارائه کرده است. JPA (Java Persistent API) ویژگی sun برای حفظ اشیا در برنامه های کاربردی سازمانی است. در حال حاظر به عنوان جایگزین برای beanهای پیچیده entity (complex entity beans) مورد استفاده قرار می گیرد.......
آموزش Spring Expression Language-Java Spring

SpEL یک زبان اصطلاحی است که از ویژگی های query و دستکاری گراف (نمودار) شی در زمان اجرا پشتیبانی می کند. زبان های اصطلاحی زیادی از جمله JSP EL، OGNL، MVEL و JBoss EL در دسترس هستند. SpEL برخی ویژگی های اضافی از جمله قابلیت فراخوانی متد(method invocation) و قالب بندی رشته(string templating) را فراهم می کند......

عملگرهای زیادی از جمله عملگرهای حسابی، نسبتی(relational)، منطقی و غیره را می توانیم در SPEL استفاده کنیم. مثال های زیادی از کاربرد عملگرهای مختلف در SPEL داده شده است......

در SpEL میتوان یک مقدار را درون یک متغیر ذخیره کرد و از آن متغیر درون یک متد استفاده کرد و متد را فراخوانی کرد. برای کار کردن با متغیرها باید از کلاس StandardEvaluationContext استفاده کنیم.....
آموزش Spring MVC-Java Spring

در مثال زیر چگونگی نوشتن یک برنامه ی ساده ی مبتنی بر وب Hello World با استفاده از Spring MVC Framework نشان داده شده است. برای شروع Eclipse IDE را آماده کنید و جهت توسعه ی یک Dynamic Web Application با استفاده از Spring Web Framework مراحل زیر را دنبال کنید.مثال Hello World در Spring MVC

MVC اسپرینگ یک فریمورک جاوا (java) است که برای ساخت برنامه های کاربردی تحت وب مورد استفاده قرار می گیرد و از الگو طراحی model-view-controller پیروی می کند. MVC تمام ویژگی های اولیه یک فریمورک هسته اسپرینگ مانند وارونگی کنترل(IOC) و تزریق وابستگی را پیاده سازی می کند.....

در اینجا یک صفحه منظر را به صفحه منظر دیگری هدایت می کنیم. یک مثال ساده از فریمورک MVC تحت وب اسپرینگ را بررسی می کنیم. مراحل به شرح زیر است : .....

در MVC اسپرینگ می توان همزمان چندین کنترلر ایجاد کرد. برای این منظور لازم است تا کلاس هر کنترلر به نماد @Controller نگاشت شود. در اینجا یک مثال از کنترلرهای متعدد در MVC اسپرینگ را می بینیم. مراحل به شرح زیر است:.....

در MVC اسپرینگ، یک مدل به عنوان یک محفظه (container) که داده های برنامه کاربردی را حفظ می کند، کار میکند. در اینجا داده می تواند به هر شکلی باشد از جمله اشیا، رشته ها، داده هایی از پایگاه داده و غیره. لازم است واسط مدل در بخش کنترلر برنامه کاربردی قرار گیرد. شی HttpServletRequest اطلاعات ارائه شده توسط کاربر را می خواند و آن را به واسط مدل انتقال می دهد.....

در MVC اسپرینگ، از نماد @RequestParam برای خواندن داده فرم (form data) و ترکیب خودکار آن با پارامترهای موجود در متد ارائه شده، استفاده می شود. بنابراین برای خواندن داده ارائه شده، نیاز به شیHttpServletRequest را نادیده می گیرد. با در نظر گرفتن داده فرم، همچنین پارامتر درخواست (request parameter) را به پارامتر query و بخش های درخواست های چند بخشی نگاشت می کند.....
آموزش Spring MVC Form-Java Spring

در این مثال چگونگی استفاده از Password در فرم ها با استفاده از Spring Web MVC Framework نشان داده شده است.مثال Password در Spring MVC

در این مثال چگونگی استفاده از TextArea در فرم ها با استفاده از Spring Web MVC Framework نشان داده شده است.مثالی برای TextArea در Spring MVC

در این مثال چگونگی استفاده از Listbox در فرم ها با استفاده از Spring Web MVC Framework نشان داده شده است.مثالی برای Listbox برای Spring MVC

در این مثال چگونگی استفاده از Hidden Field در فرم ها با استفاده از Spring Web MVC Framework نشان داده شده است.مثالی برای Hidden Field برای Spring MVC

در این مثال چگونگی استفاده از Error Handling و Validator ها در فرم ها با استفاده از Spring Web MVC Framework نشان داده شده است.مثالی برای Error Handling برای Spring MVC

در این مثال چگونگی استفاده از File Upload Control در فرم ها با استفاده از Spring Web MVC Framework نشان داده شده است.مثالی برای File Upload برای Spring MVC

در این مقاله از آموزشگاه تحلیل داده، MVC Form Tag های اسپرینگ (تگ های ام وی سی در اسپرینگ) را مورد بررسی قرار می دهیم. MVC Form Tag های اسپرینگ (تگ های ام وی سی در اسپرینگ) را می توان به عنوان تگ های آگاه از اتصال داده در نظر گرفت که می توانند به صورت خودکار داده را روی اشیای/ bean های جاوا(java) قرار دهد و همچنین آن را بازیابی کند.....

در این مقاله از آموزشگاه تحلیل داده، کاربرد MVC Form Text Field (تگ متن در ام وی سی) در قالب اسپرینگ را شرح می دهیم. MVC Form Text Field (تگ متن در ام وی سی) اسپرینگ، با استفاده از مقدار مرزی (bound value)، یک تگ ورودی HTML ایجاد می کند. به طور پیش فرض، نوع تگ ورودی، متن است.....

در این مقاله از آموزشگاه تحلیل داده، کاربرد MVC form radio button یا (Radio Button در ام وی سی) در اسپرینگ را برای شما شرح می دهیم. MVC form radio button یا (Radio Button در ام وی سی) در اسپرینگ تنها انتخاب یک گزینه در زمان را برای ما مجاز می کند. این تگ، یک تگ ورودی HTML از نوع رادیو ارائه می کند.....

در این مقاله از آموزشگاه تحلیل داده، کاربرد MVC form checkbox (چک باکس در ام وی سی) در اسپرینگ را شرح می دهیم. MVC form checkbox (چک باکس در ام وی سی) در اسپرینگ امکان انتخاب چندین گزینه در زمان را تسهیل می کند. این تگ یک تگ ورودی HTML از نوع جعبه انتخاب(checkbox) را ارائه می کند.....

در این مقاله از آموزشگاه تحلیل داده، ساخت MVC form drop-down list (لیست Drop-Down در ام وی سی ) در اسپرینگ را شرح می دهیم. MVC form drop-down list (لیست Drop-Down در ام وی سی ) در اسپرینگ شامل لیست عناصر است. این تگ یک عنصر گزینه HTML تولید می کند و اجازه اتصال داده به عنصر انتخاب شده را می دهد.....
آموزش MVC Applications-Java Spring

برنامه کاربردی CRUD (ایجاد، خواندن، به روز رسانی و حذف کردن) مهمترین برنامه برای ایجاد هر پروژه ای است.CRUD ایده ای برای توسعه یک پروژه بزرگ ارائه می دهد. در MVC اسپرینگ، می توانیم یک برنامه CRUD ساده بسازیم. در اینجا از JdbcTemplate برای تعاملات پایگاه داده استفاده می کنیم......

از صفحه بندی (Pagination) برای نمایش تعداد زیادی رکورد در بخش های متفاوت استفاده می شود. در این مورد، 10، 20 یا 50 رکورد در یک صفحه. برای رکوردهای باقی مانده، لینک فراهم می کنیم. به سادگی می توانیم مثال صفحه بندی در MVC اسپرینگ ایجاد کنیم......

MVC اسپرینگ راه حلی ساده برای بارگذاری فایل ها تصویر و سایر فایل ها ارائه می دهد. مثالی ساده از بارگذاری فایل با استفاده از MVC اسپرینگ را با هم می بینیم.....
آموزش Spring MVC Validation

در این مقاله از آموزشگاه تحلیل داده، اعتبار سنجی MVC در اسپرینگ را شرح می دهیم. از اعتبار سنجی MVC در اسپرینگ برای محدود کردن داده ارائه شده توسط کاربر استفاده می شود. برای بررسی صحت ورودی کاربر، نسخه 4 و یا بالاتر اسپرینگ از API اعتبار سنجی bean پشتیبانی و استفاده می کند و به خوبی می تواند برنامه های سمت کاربر(client-side) و سمت سرور(server-side) را اعتبار سنجی کند.....

در این مقاله از آموزشگاه تحلیل داده، اعتبار سنجی عبارات با قاعده (Regular Expression Validation) را شرح خواهیم داد. اعتبار سنج MVC اسپرینگ به ما این امکان را می دهد تا ورودی کاربر را در یک روند خاص (مانند عبارت منظم)، اعتبار سنجی کنیم. از نماد @Pattern برای کسب اعتبار سنجی عبارت منظم استفاده می شود.....

در این مقاله از آموزشگاه تحلیل داده به شرح اعتبار سنجی عدد در MVC Spring می پردازیم. در اعتبار سنجی MVC اسپرینگ می توان ورودی کاربر را در یک بازه عددی اعتبار سنجی کرد. از نمادهای زیر برای کسب اعتبار سنجی عدد استفاده می شود.....

در این مقاله از مقالات آموزشگاه تحلیل داده به شرح اعتبار سنجی سفارشی در Spring MVC می پردازیم. فریمورک MVC Spring به ما اجازه می دهد اعتبار سنجی های سفارشی اعمال کنیم. در این مورد، ما نمادگذاری های خودمان را اعلام می کنیم. می توانیم اعتبار سنجی را بر اساسbusiness logic خود اعمال کنیم.....
آموزش MVC Tiles در Java Spring

در این مقاله از آموزشگاه تحلیل داده به شرح پشتیبانی یکپارچه spring با فریمورک apache tiles می پردازیم. Spring پشتیبانی یکپارچه با فریمورک apache tiles ارائه می کند. بنابراین، با کمک پشتیبانی tile های Spring، به سادگی می توان چیدمان برنامه کاربردی MVC Spring را مدیریت کرد.....
آموزش کار از راه دور در Java Spring

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی کار از راه دور در Java Spring می پردازیم. فریمورک Spring توسعه خدمات با قابلیت راه دور را آسان کرده است. با ارائه API خود در حجم زیادی از کد صرفه جویی می کند. برنامه نویس تنها باید بر روی business logic تمرکز کند، نه فعالیت های زیر ساختی مانند راه اندازی و توقف سرور. فریمورک Spring فناوری های از راه دور زیر را پشتیبانی می کند.....

در این مقاله از آموزشگاه تحلیل داده به شرح فراخوانی متد راه دور (RMI) در Java Spring و تجمیع Spring و RMI (فراخوانی متد راه دور) می پردازیم. RMI اسپرینگ به شما این امکان را می دهد تا خدمات خود را از طریق زیرساخت RMI در معرض نمایش قرار دهید. اسپرینگ با کمک کلاس های org.springframework.remoting.rmi.RmiProxyFactoryBean و ......

در این مقاله از آموزشگاه تحلیل داده به شرح کار از راه دور با http در Java Spring می پردازیم. Spring پیاده سازی خود از خدمات از راه دور را با عنوان HttpInvoker ارائه می دهد. از آن می توان برای درخواست HTTP نسبت به RmI استفاده کرد. همچنین به خوبی در firewall کار می کنند.....

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی پیاده سازی خدمات از راه دور ارائه شده توسط Hessian در Java Spring می پردازیم. با کمک کلاس های HessianServiceExporter و HessianProxyFactoryBean، میتوان خدمات از راه دور ارائه شده توسط Hessian را پیاده سازی کرد. Hessian در Fire Wall به خوبی کار می کند و برای ادغام با سایر زبان ها از جمله PHP و .net قابل انتقال است.....

در این مقاله از آموزشگاه تحلیل داده به شرح چگونه پیاده سازی خدمات از راه دور ارائه شده توسط Burlap در Java Spring می پردازیم. Hessian و Burlap هر دو توسط Coucho ارائه شده اند. Burlap جایگزین مبتنی بر xml ، Hessian است. با کمک دو کلاس BurlapServiceExporter و BurlapProxyFactoryBean، میتوان خدمات از راه دور ارائه شده توسط Burlap را پیاده سازی کرد.....

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی ادغام JMS با Java Spring می پردازیم. برای ادغام Spring با JMS باید دو برنامه کاربردی زیر را ایجاد کنیم: برنامه گیرنده JMS و برنامه فرستنده JMS . برای تولید برنامه JMS با استفاده از Spring ، از Active MQ Server مربوطApache برای ایجاد صف استفاده می کنیم. حال مراحل ساده ادغام برنامه Spring با JMS را با هم می بینیم.....
آموزش نگاشت بوسیله XML در Spring

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی ادغام JAXB (معماری جاوا برای اتصال) و Java Spring می پردازیم. JAXB مخفف معماری جاوا برای اتصال xml (Java Architecture for XML Binding) است و به توسعه دهندگان جاوا این امکان را می دهد تا کلاس جاوا را به فرم نمایش xml نگاشت کند. از JAXB می توان برای انتقال (راهنمایی) اشیای جاوا به XML و بالعکس استفاده کرد.....

در این مقاله از آموزشگاه تحلیل داده به شرح انتقال شی به XML بوسیله جریان در Java Spring می پردازیم. Xstream یک کتابخانه برای سریال کردن اشیا به xml و بالعکس، بدون نیاز به نگاشت هیچ فایلی است. توجه داشته باشید، castor نیاز به فایل نگاشت دارد. کلاس XStreamMarshaller تسهیلاتی برای انتقال اشیا به xml و بالعکس ارائه می دهد.....

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی انتقال شی به XML بوسیله Casting در Java Spring می پردازیم. با کمک کلاس CastorMarshaller ، میتوان با استفاده از castor، اشیای جاوا را به xml انتقال داد و بالعکس. آن کلاس پیاده سازی برای واسط های Marshaller و Unmarshaller است و به صورت پیش فرض نیاز به هیچ تنظیمات اضافی ندارد.....
آموزش ارسال و دریافت Email در Java Spring

در این مقاله از مجموعه مقاله های آموزشگاه تحلیل داده به شرح چگونگی ارسال و دریافت ایمیل در Java Spring می پردازیم. فریمورک Spring کلاس ها و واسط های مفید زیادی برای ارسال و دریافت ایمیل ارائه کرده است. بسته org.springframework.mail، بسته ریشه (root package) است که پشتیبانی از ایمیل را در فریمورک Spring ارائه می کند.....
آموزش Spring Web

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی مدیریت وابستگی در برنامه های تحت وب در فریمورک Spring بوسیله ادغام Spring و Struts 2 می پردازیم. فریمورک Spring راهی آسان برای مدیریت وابستگی ها ارائه می کند. این فریمورک به سادگی می تواند با فریمورک struts2 ادغام شود. از کلاس ContextLoaderListener برای ارتباط برنامه Spring با struts2 استفاده می شود که باید در فایل web.xml تعیین شود.....

در این مقاله از آموزشگاه تحلیل داده، با ارائه یک مثال، چگونگی ساخت یک سیستم لاگین در Java Spring بوسیله ادغام Spring و Struts 2 را شرح می دهیم. برای یک برنامه ورود ساده با استفاده از Spring و Struts2 فایل های زیر را باید ایجاد کنید : .....
آموزش Spring Security در Java

در این مقاله از آموزشگاه تحلیل داده، به شرح مفاهیم اولیه در زمینه Spring Security در Java می پردازیم. آموزش امنیت Spring مفاهیم پایه و پیشرفته امنیت Spring را ارائه می کند. آموزش امنیت Spring ما هم برای افراد مبتدی و هم افراد حرفه ای طراحی شده است.....

در این مقاله از آموزشگاه تحلیل داده، برخی مفاهیم مقدماتی مربوط به امنیت در Java Spring را شرح می دهیم. امنیت Spring یک فریمورک است که ویژگی های امنیتی متنوعی را ارائه می کند و از جمله آنها می توان به احراز هویت(authentication)، اعطای مجوز(authorization) برای ایجاد برنامه های کاربردی سازمانی جاوا امن اشاره کرد.....

در این مقاله از آموزشگاه تحلیل داده، ویژگی های امنیت در Java Spring را مورد بررسی قرار می دهیم. از جمله ویژگی های امنیت در Java Spring می توان به ویژگی تک ورودی، ماژول ورود JAAS ، احراز هویت دسترسی اولیه و غیره اشاره کرد ......

در این مقاله از آموزشگاه تحلیل داده به معرفی ماژول های پروژه امنیت در Java Spring می پردازیم. در امنیت Spring 3.0 ماژول امنیت به فایل های jar مجزا تقسیم شده است. هدف از این کار تقسیم فایل های jar بر مبنای عملکرد آن بود. بنابراین، یک توسعه دهنده می تواند مطابق با نیازش آنها را ادغام کند و همچنین، به تنظیم وابستگی های مورد نیاز در فایل pom.xml از پروژه maven کمک می کند.....

در این مقاله از آموزشگاه تحلیل داده، مثال هایی از Security با پیکربندی XML در Java Spring را ارائه می دهیم. در این آموزش، امنیت Spring را با فریمورک MVC Spring پیاده سازی می کنیم. تمامی مثال ها MVC Spring هستند و با استفاده از پروژه maven ساخته شده اند. از امنیت Spring نسخه 5.0.0 استفاده می کنیم. در ادامه وابستگی های maven مورد استفاده در همه مثال ها آورده شده است.....

در این مقاله از آموزشگاه تحلیل داده، مثال هایی از پروژه Security با دستورات Java در Spring را ارائه می دهیم. فریمورک Spring پشتیبانی از پیکربندی جاوا را در Spring 3.1 اضافه کرد. در Spring Security، پیکربندی جاوا به Security در Spring 3.2 اضافه شد که این امکان را به ما داد تا Spring Security را بدون نوشتن حتی یک خط xml پیکربندی کنیم.

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی ساخت سیستم Login و Log out در قالب امنیت در Java Spring می پردازیم. امنیتSpring ویژگی های ورود و خروجی ارائه می دهد که می توان از آن در برنامه استفاده کرد. ایجاد برنامه Spring امن مفید است.....

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی ساخت سیستم Login سفارشی در پیکربندی امنیت در Java Spring می پردازیم. امنیت Spring ماژول Login به سیستم داخلی خود را برای احراز هویت کاربر ارائه می کند. این ماژول اطلاعات کاربر را اعتبار سنجی می کند و دسترسی به برنامه را فراهم می کند. صفحه Login به سیستم رندر (render) شده توسط متد داخلی است.....

در این مقاله از آموزشگاه تحلیل داده به شرح چگونگی احراز هویت مبتنی بر فرم در قالب امنیت در Java Spring می پردازیم. احراز هویت (Authentication) مبتنی بر فرم روشی است که در آن هویت کاربر توسط فرم ورود به سیستم احراز می شود. این فرم داخلی است و توسط فریمورک امنیت Spring ارائه می شود......

در این مقاله از آموزشگاه تحلیل داده، دستور Remember Me و کاربرد آن برای ذخیره اطلاعات در پایگاه داده در Spring Security در Java را شرح می دهیم. RM یک ویژگی است که به کاربر اجازه دسترسی به برنامه را بدون ورود مجدد می دهد. دوره ورود کاربر پس از بستن مرورگر به اتمام می رسد و اگر کاربر مجددا با باز کردن مرورگر قصد دسترسی به برنامه را داشته باشد، درخواست ورود فعال می شود......

در این مقاله از آموزشگاه تحلیل داده، امنیت Spring در سطح متد و چگونگی بررسی مجوز کاربران برای دسترسی به منابع در Java Spring را شرح می دهیم. علاوه بر احراز هویت، امنیت Spring مجوز کاربر وارد شده را نیز بررسی می کند. پس از ورود، بررسی مجوز کاربران برای دسترسی به منابع بر اساس نقش (ROLE) کاربر صورت می پذیرد. در زمان ایجاد کاربر در کلاس WebSecurityConfig ، می توان نقش کاربر را نیز مشخص کرد.....

در این مقاله از آموزشگاه تحلیل داده به معرفی و ارائه توضیحی کامل درباره تگ ها (TAG) در Spring Security در Java می پردازیم. Spring Security تگ های خود را برای صفحات jsp ارائه می کند. سه تگ برای دسترسی به اطلاعات Security و اعمال محدودیت های Security در jsp ها استفاده می شود. تگ های زیر برای Security لایه view برنامه، مورد استفاده قرار می گیرند.....
فریمورک Spring Boot در Java

در این مقاله از آموزشگاه تحلیل داده به آموزش Spring Boot در Java می پردازیم. آموزش Spring Boot مفاهیم پایه و پیشرفته فریمورک Spring را ارائه می کند. آموزش Spring Boot ما، هم برای افراد مبتدی و هم افراد حرفه ای طراحی شده است. Spring Boot یک ماژول Spring است که ویژگی RAD (توسعه سریع برنامه) را برای فریمورک Spring ارائه می کند.....