2015-02-09 2 views
1

Hy ребята, я пытаюсь прочитать файл свойств и dispay его на экране, но у меня возникли проблемы с моим боба ФАЙЛАЧтение проп файла боб ошибок

Вот мой файл боб:

<context:property-placeholder location="classpath:fisier.properties." /> 

<bean id="fisier.properties" class="projectt.proiect.App"> 
    <property name="mesaj" value="${Hello}" /> 
    </bean> 

</beans> 

МОИ классы это:

public class SecondClass { 

    private String mesaj; 

    public String getMesaj() { 
      return mesaj; 
     } 

    public void setMesaj(String Mesaj) { 
      this.mesaj = mesaj; 
     } 

    @Override 
     public String toString(){ 
      return mesaj; 
     } 
} 

И главное:

public class App 
{ 
    public static void main(String[] args) 
    { 

     String confFile = "bean.xml"; 

      ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(confFile); 

      SecondClass secClass = (SecondClass) context.getBean("mesaj"); 
      System.out.println(secClass.toString()); 
      context.close(); 

} 
} 

Я получаю следующую ошибку в файле bean: Атрибут: name Имя свойства, следующего за соглашениями об именах JavaBean.

Тип данных: Строка

Может кто-нибудь помочь мне с этим?

+0

вставить весь след следа пожалуйста? – SMA

ответ

0

Когда вы установите свойство, вы должны поставить класс с этим свойством:

<bean id="fisier.properties" class="SecondClass"> 
    <property name="mesaj" value="${Hello}" /> 
</bean> 
+0

Спасибо, я исправил ошибки. В SecondClass я также помещаю строку setMesaj (String Mesaj), помещая строку с Uppercase M. Я исправляю это, и у меня нет никаких ошибок, но это не работает. Что-то не так с кодом в SecondClass? –

0

Во-первых, ваш тип боба неверен:

<context:property-placeholder location="classpath:fisier.properties." /> 

<bean id="fisier.properties" class="projectt.proiect.SecondClass"> 
    <property name="mesaj" value="${Hello}" /> 
    </bean> 

</beans> 

Во-вторых, getBean() от контекста, принимает идентификатор вашего компонента или тип:

public class App 
    { 
     public static void main(String[] args) 
     { 

      String confFile = "bean.xml"; 

       ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(confFile); 

       SecondClass secClass = (SecondClass) context.getBean(projectt.proiect.SecondClass.class); 
//or    SecondClass secClass = (SecondClass) context.getBean("fisier.properties"); 

       System.out.println(secClass.toString()); 
       context.close(); 

    } 
    } 

Thrid, ваш setMesaj() неверно:

public class SecondClass 
{ 
    private String mesaj; 

    public String getMesaj() 
    { 
    return mesaj; 
    } 

    public void setMesaj(String mesaj) 
    { 
    this.mesaj = mesaj; 
    } 

} 

Что вы хотите делать с значением $ $ Hello? Вы хотите установить свойство mesaj в "Hello"?

+0

Спасибо, я исправил ошибки. В SecondClass я также помещаю строку setMesaj (String Mesaj), помещая строку с Uppercase M. Я исправляю это, и у меня нет никаких ошибок, но это не работает. Что-то не так с кодом в SecondClass? –