Внедрить весенние зависимости в лучшие методы объектов Domain? - PullRequest
0 голосов
/ 20 января 2012

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

Мое решение до сих пор включает в себя ..

Определение зависимостей, необходимых для ткачества нагрузки

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-instrument</artifactId>
    </dependency>       
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
    </dependency>

А потом .. настроить его в контекстном файле весны:

<context:spring-configured />
<context:load-time-weaver/>

Использование @Configurable для классов моего домена:

@Configurable
public class MyDomainClass {
    ....
}

И, конечно, используя эти аргументы VM:

-XX:-UseSplitVerifier -javaagent:C:/Users/albert/.m2/repository/org/springframework/spring-instrument/3.0.6.RELEASE/spring-instrument-3.0.6.RELEASE.jar

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

Я думаю о создании объектов domainObject с областью действия прототипа, но я боюсь проблем с зависимостями при извлечении объектов домена из базы данных (не из applicationContext).

Пожалуйста, поделитесь своим опытом, спасибо!

Ответы [ 2 ]

3 голосов
/ 20 января 2012

1: Когда вы динамически запускаете внедрение объектов в доменные объекты, они больше не являются объектами домена в том смысле, что домен должен отражать вашу информационную модель, независимо от каких-либо бизнес-правил и функциональной логики.

2: Помни ПОЦЕЛУЙ (будь проще ...). В какой-то момент кто-то другой может стать владельцем и поддерживать ваш код, так что помилуйте этого человека:)

Я бы назвал это анти-паттерном, которого, по моему мнению, следует избегать.

2 голосов
/ 20 января 2012

Если вы используете колебание времени компиляции, вам не понадобится аргумент VM.

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