3

ОК, поэтому, если мне нужно поместить некоторые примитивные значения в конструктор, как мне это сделать?Как выполнить накладку зависимостей на основе конструктора с помощью Spring с помощью аннотаций?

@Autowired 
public CustomBean(String name, @Qualifier("SuperBean") SuperBean superBean) { 
    super(); 
    this.superBean = superBean; 
    this.name = name; 
} 

Например здесь я определяю, что superBean имеет Qualifier «SuperBean», но я также хотел бы знать, как можно использовать аннотации, чтобы установить значение имени здесь?

Я знаю, что это возможно с конфигурацией XML, но я хочу знать, как сделать это с аннотациями тоже:

<bean id="CustomXmlBean" class="org.arturas.summerfav.beans.CustomXmlBean"> 
     <constructor-arg name="name" type="String" value="The Big Custom XML Bean" /> 
     <constructor-arg> 
      <bean id="SuperBean" class="org.arturas.summerfav.beans.SuperBean" /> 
     </constructor-arg> 
    </bean> 

Ну, как я кладу в значениях для String, Int и других родовых типов?

ответ

6

Вот один из способов сделать это:

@Component 
public class YourBean { 
    @Autowired 
    public YourBean(@Value("${prop1}") String arg1, @Value("${prop2}") String arg2) { 
     // rest of the code 
    } 
} 
+0

Большое спасибо, я искал в гугле и добившиеся во всей главе 3 IoC весны, но не удалось найти, что @value я интересно, почему они не включили его там, это просто большие пальцы вниз для весенних документов ... Я использовал это с @Value («некоторый текст»), можете ли вы более подробно объяснить мне, что такое «$ {prop1}»? это какое-то значение или переменная, определенная где-то, можете ли вы сказать мне, как ее использовать? –

+1

@ArturasM, в '$ {prop1}', 'prop1' - это ключ, определенный в файле свойств ([загружается через стандартный механизм пружины] (http://bharatonjava.wordpress.com/2013/01/25/configuring- и-используя-свойства-файл в пружине-3 /)). – Santosh

+0

Спасибо, я думаю, что получил это сейчас. –