Весенний пакет своп - PullRequest
       2

Весенний пакет своп

0 голосов
/ 26 января 2012

Я совсем новичок в Spring Framework. У меня проблема, и я даже не знаю, с чего начать. Я дам вам пример того, что я хочу сделать. Предположим, у меня есть эти пакеты

com.version.v1
com.version.v1_3
com.version.v2
com.restofapplication...

Все версии пакетов являются копией одного модуля с небольшими изменениями. Можно ли каким-то образом настроить Spring, просто указать ему в applicationContext.xml использовать, например, v1_3, а он сделает все остальное (скомпилировать приложение, используя пакет v1_3)?

И еще вопрос, но сначала статус пакета: Допустим, v1 является базовой версией и содержит

SomeInterface.java
SomeInterfaceImpl.java
SomeDependentClass.java

и v1_3 выглядит так:

SomeInterfaceImpl.java
SomeDependentClass.java

Так что после ответа на первый вопрос, удастся ли избежать полного копирования пакета и заставить пружину принимать только измененные файлы из запрошенной версии и сканировать отсутствующие файлы в более низкой версии?

Можете ли вы ответить мне, возможно ли это вообще? Дайте подсказки? Указать направления? Спасибо, что все равно прочитали.

ОК, давайте дадим больше информации. Я знаю, что должен использовать такой инструмент, как GIT, но мои намерения разные. Git для управления версиями кода.

Вот то, о чем я вас прошу.

У меня есть веб-сервис с одной конечной точкой, и эта конечная точка создается в пакете v1. Допустим, мне нужно изменить эту конечную точку, чтобы я создал пакет v2, скопировав v1 и изменив его. Но мне нужно, чтобы обе версии были готовы к запуску или запуску одновременно, так что это не типичное использование GIT.

Что я спросил в первом вопросе, так это: можно ли выбрать во время процесса компиляции, какая версия будет активирована? Теперь я понимаю, что это задача Maven, а не Spring, но возможно ли это?

И второй вопрос. Я сказал, что создал V2 на базе V1 с модификацией. Но допустим, что был изменен только один файл. Так есть ли способ скопировать только один этот файл в V2 и сказать Spring / maven собрать недостающие файлы из V1?

Ответы [ 3 ]

0 голосов
/ 26 января 2012

Возможно, вы могли бы создать контексты для каждого возможного варианта использования и импортировать их в корневой контекст в зависимости от ваших потребностей, однако вам нужно будет доставить все ваши пакеты.как это

<import resource="services.xml"/>
<import resource="resources/messageSource.xml"/>
<import resource="/resources/themeSource.xml"/>

<bean id="bean1" class="..."/>
<bean id="bean2" class="..."/>

Но для того, чтобы дифференцировать поставки, вам нужно будет сделать три разных сборки и использовать (или не использовать) любой инструмент конфигурации, такой какупоминалось выше.

0 голосов
/ 26 января 2012

Возможно, вам следует использовать SCM для этого, но если вам необходимо.

Вы можете настроить сканирование компонентов контекста с помощью Spring 3.1 с помощью кода. Это будет зависеть от вас, чтобы применить фильтры для ваших правил выше.

См. Документацию по Java для ComponentScan. http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/context/annotation/ComponentScan.html

Если вы не можете заставить ComponentScan работать, вам также нужно взглянуть на AnnotationConfigWebApplicationContext, расширить его, вызвать регистр и выполнить сканирование из вашего конструктора. Как это:

public class CustomContext extends AnnotationConfigWebApplicationContext {
    public CustomContext() {
        super();
        this.scan("com.version.v2");
        this.register(com.version.v1.SomeInterface.class);
    }
}
0 голосов
/ 26 января 2012

Это не работа для весны.Вы должны использовать систему SCM, такую ​​как CVS, SVN, Git или что-то еще.Вот полный список http://en.wikipedia.org/wiki/List_of_revision_control_software

Если в вашем проекте должны быть разные версии, тогда я предлагаю умную систему сборки (например, сборка с Ant или Maven), но это будет гораздо более дорогое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...