28 noiembrie 2022

Spring 5 Fundamentals - ziua 3

Configurări XML

Încă există = se pot folosi. Unele lucruri sunt mai simple cu XML. Se poate separa mai bine de restul codului.

----  application-context.xml  ----

<beans xmlns="" xmlns:xi="" xsi:schemaLocation="">

  <bean name="" class="cale_completă_către_implementare" >
    <property name="speakerRep" ref="speakerRep"> </property>   <!-- setter injection: name definește care setter, iar ref valoarea parametrului (definit mai sus, ca alt bean)  -->
  </bean>

  <bean name="" class="cale_completă_către_implementare" >
    <constructor-arg index="0" ref="speakerRep"> </constructor-arg>   <!-- constructor injection -->
  </bean>

</beans>


 Beans 
  • în esență sunt clase
  • înlocuiesc ce urmează după new 
  • se obțin tot cu appContext.getBean(...)

 Autowiring 
  • byType - face wire cu o instanță de tipul cerut (trebuie să fie unică)
  • byName - face wire după numele bean-ului
  • constructor
  • no (nu dă voie să se facă autowiring)

  <bean name="" class="cale_completă_către_implementare"  autowire="constructor">
  </bean>


Factory Bean


 SpEL  = Spring Expression Language - folosit mai mult în librării 

@Value ("#{ T(java.lang.Math.random() * 100) }")  // se determină la runtime, util în chestiuni de securitate
private double seedNum;


Spring AOP Proxies


 Bean Profiles  

@Repository("speakerRepository")
@Profile("dev")
public class HibernateSpeakerRepositoryImpl implements SpeakerRepository {
  . . .
}


VM option: -Dspring.profiles.active=dev
Altfel, bean-ul nu este disponibil. 

Niciun comentariu: