2012-03-10 2 views
4

Мне нравится код, который визуально легко читается (субъективный, я знаю). Есть ли способ весной взять первую форму кодаSpring @Autowire Несколько объектов

@Autowired 
private O1 o1 
@Autowired 
private O2 o2 
@Autowired 
private O3 o3 

И сделать что-то вроде этого:

@Autowired 
private O1 o1 
private O2 o2 
private O3 o3 
@Endautowire 

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

ответ

0

Возможно только с препроцессором для источников java. Но совершенно не стоит того, на мой взгляд.

0

Не так, как вы хотите с аннотациями.

Вы можете создать тип uber, который берет эти три, и добавьте этот тип здесь. Id делает это только в том случае, если вы оказываетесь в этой ситуации много раз или действительно отражаете концепцию в своем приложении.

2

Был раз, когда люди используют, чтобы объявить переменную, как,

int i1, i2, i3; 

Это больше не рассматривается в качестве наилучшей практики и объявляя каждый из них в отдельности повышает читаемость.

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

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

Итак, я сомневаюсь, что стоит потратить время на это или нет.

4

Вы можете использовать конструктор, чтобы ввести все объекты с одним аннотацию:

private O1 o1; 
private O2 o2; 
private O3 o3; 

@Autowired 
public ClassA(O1 o1, O2 o2, O3 o3) { 
    this.o1 = o1; 
    this.o2 = o2; 
    this.o3 = o3; 
} 
0

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