Zastosowanie adnotacji autowired w Springu, dopisanie wartości dla właściwości.

0

Mam pewien problem ze zrozumieniem jednego zagadnienia w Springu.

Jak mamy np. taką sytuację:
(z pliku xml)

<bean id="osoba" class="com.person.osoby.Osoba"> <property name="imie" value="Jan" /> <property name="nazwisko" value="Kowalski" /> <property name="wiek" value="20" /> </bean>

Czyli jest to powiązenie właściwości (imie, nazwisko, wiek) z komponentem osoba.

Chciałbym to samo napisać ale nie wykorzystując xml, tylko wykorzystując adnotacje.

I tutaj wiem że jest adnotacja @Autowired

np. robię to tak

metody setImie(), setNazwisko(), setWiek() oznaczam adnotacją @Autowired

jest dla mnie jasne że teraz mam powiązane właściwości (imie, nazwisko, wiek) z komponentem osoba.
Ale jak teraz przekazać wartości ??? Co zastępuje value tego nie rozumiem.

0

stackoverflow.com/questions/2882545/spring-properties-property-placeholder-autowiring

W skrócie jest od tego adnotacja value. I mam nadzieję że interesuje cię taka sytuacja jak na SO a nie taka dziwna jaka pokazałeś...

0

Cześć,

Nie możesz automatycznie wiązać typów prostych i Stringów, przy takowej próbie Spring powinien rzucić wyjątkiem. Użyj adnotacji @Value("wartość") na polach:

public class osoba{
	
	@Value("Jan")
	private String imie;
	@Value("Kowalski")
	private String nazwisko;
	@Value("20")
	private int wiek;
}
 

albo poprzez konstruktor:

class osoba{
	private String imie;
	private String nazwisko;
	
	@Autowired
	public osoba(@Value("Jan")String imie, @Value("Kowalski")String nazwisko)
	{
		this.imie=imie;
		this.nazwisko=nazwisko;
	}
	
}

Są jeszcze inne opcje, np język Spel.

1 użytkowników online, w tym zalogowanych: 0, gości: 1