Это не связывает .sh файлы, но это могло бы получить Вас, что Вы хотите. Я запустил с пакетного файла cygwin.bat, который запускает оболочку удара Cygwin и изменил ее как так:
$ cat test.bat
@echo off
set MYDIR=C:\scripts
C:\cygwin\bin\bash --login -c "cd $MYDIR && echo 'Now in' `pwd`; sleep 15"
Это - игрушечный сценарий, но Вы могли изменить его, чтобы назвать rsync или назвать отдельный сценарий оболочки. Я признаю, что было бы более хорошо, если бы это не имело MYDIR трудно кодированным. Существует проребенок, путь действительно заставляет его автоволшебно устанавливать это.
, О, да, когда я создал .bat файл в оболочке удара в Cygwin, я заметил, что имел к на самом деле "chmod +x test.bat", прежде чем я мог запустить его двойным щелчком. Я думаю, что это - полномочия установки NTFS. Вы не должны были бы делать этого, если бы Вы просто использовали блокнот.
Spring был разработан как альтернатива EJB с самого начала, поэтому ответ, конечно же, вы можете использовать Spring вместо EJB.
Если есть «преимущество» в использовании EJB. Я бы сказал, что это будет зависеть от навыков вашей команды. Если у вас нет опыта в Spring и большой опыт работы с EJB, то, возможно, стоит придерживаться EJB 3.0.
Серверы приложений, написанные для поддержки стандарта EJB, теоретически могут быть перенесены с одного совместимого сервера приложений Java EE на еще один. Но это означает, что нужно держаться подальше от любых расширений, зависящих от производителя, которые привязывают вас к одному поставщику.
Spring легко переносит между серверами приложений (например, WebLogic, Tomcat, JBOSS и т. Д.), Потому что он не зависит от них .
Однако вы заперты в Spring.
Spring поощряет хорошие методы объектно-ориентированного проектирования (например, интерфейсы, уровни, разделение проблем), которые приносят пользу любой проблеме, с которой они сталкиваются, даже если вы решите переключиться на Guice или другую структуру DI.
Обновление: этому вопросу и ответу пять лет в 2014 году. Надо сказать, что мир программирования и разработки приложений сильно изменился за это время.
Это уже не просто выбор между Java или C #, Spring или EJB. С помощью vert.x можно полностью отказаться от Java EE. Вы можете писать хорошо масштабируемые, s больше не просто выбор между Java или C #, Spring или EJB. С vert.x можно полностью отказаться от Java EE. Вы можете написать хорошо масштабируемый, s больше не просто выбор между Java или C #, Spring или EJB. С помощью vert.x можно полностью отказаться от Java EE. Вы можете написать хорошо масштабируемый, приложения-полиглоты без сервера приложений.
Обновление: март 2016 г. Spring Boot предлагает еще лучший способ писать приложения без серверов приложений Java EE. Вы можете создать исполняемый JAR и запустить его на JVM.
Интересно, продолжит ли Oracle поддерживать спецификацию Java EE. Веб-сервисы пришли на смену EJB. Решение EJB мертво. (Только мое мнение.)
Очки Паскаля действительны. Однако в пользу Spring есть следующие аргументы:
Спецификация EJB на самом деле немного свободна, и поэтому на разных серверах приложений можно наблюдать разное поведение. Конечно, в большинстве случаев это не так, но у меня была такая проблема с некоторыми "темными углами".
В Spring есть много дополнительных плюсов, таких как Spring-test, AOP, MVC, интеграция с JSF и т.д. EJB имеет некоторые из них (например, перехватчики), но, на мой взгляд, они не так уж и развиты.
В заключение, это зависит в основном от вашего конкретного случая.
Во-первых, позвольте мне четко сказать: я не говорю, что вам не следует использовать Spring, но, поскольку вы просите о некоторых преимуществах, вот как минимум два из них:
EJB 3 является стандартом, а Spring - нет (это стандарт де-факто, но это не одно и то же), и в обозримом будущем это не изменится. Хотя вы можете использовать среду Spring с любым сервером приложений, приложения Spring привязаны как к самой Spring, так и к конкретным службам, которые вы выбираете для интеграции в Spring.
Среда Spring находится поверх серверов приложений и библиотек служб. Код интеграции службы (например, шаблоны доступа к данным) находится в структуре и доступен разработчикам приложений. Напротив, каркас EJB 3 интегрирован в сервер приложений, а код интеграции сервиса инкапсулируется за интерфейсом. Таким образом, поставщики EJB 3 могут оптимизировать производительность и удобство разработки, работая на уровне сервера приложений. Например, они могут тесно связать механизм JPA с управлением транзакциями JTA. Другой пример - поддержка кластеризации, которая прозрачна для разработчиков EJB 3.
EJB 3 не идеален, в нем все еще отсутствуют некоторые функции (например, внедрение неуправляемых компонентов, таких как простые объекты POJO).