Spring

Co to je?

  • framewrok pro vývoj J2EE aplikací
  • odstraňuje těsné vazby mezi POJO pomocí IoC
  • jednotlivé moduly zjednodušují práci s dalšími částmi J2EE (JMS, JMX, JNDI..)

Jak to funguje

  • pomocí anotací určíme které třídy mají být vytvořeny v rámci springContextu:
    • @Component - obecná komponenta(rodič ostatních)
    • @Service - business vrstva
    • @Repository - persistence vrstva
    • @Controller - controller(z MVC)
@Service
public class ArticleCounterServiceImpl implements ArticleCounterService {
...

Jak to funguje

  • třídy která potřebujeme pro práci nevytváříme ale injectujeme:
    • @Autowired - najde požadovanou třídu podle typu
    • @Qualifier - umožňuje hledat podle jména
@Autowired
@Qualifier("ArticleCounterService")
private ArticleCounterService articleCounterService;

Jak to funguje

  • vytvoříme konfigurační třídy pro inicializaci kontextu
    • @Configuration - určuje že jde o konfigurační třídu
    • @ComponentScan - seznam package které jsou scanovány pro další komponenty
@Configuration
@ComponentScan({
	"com.cleverlance.package.for.scan"
})
public class PortletContext {
...

Jak to funguje

  • vytvoření spring kontextu a sestavení aplikace proběhne na základě hlavní konfigurační třídy
  • buď ručně: 
AnnotationConfigApplicationContext applicationContext = 
    new AnnotationConfigApplicationContext(SpringContext.class);

CalculationService calculationService = 
    applicationContext.getBean(CalculationService.class);
  • nebo se na init třídu odkážeme z descriptoru(bude v dalších přednáškách)

Spring_cv

Spring

  • beany je možné vytvořit a konfigurovat i uvnitř konfiguračních tříd pomocí anotace @Bean
@Bean(name = "")
public LoanService standardLoanService() {
        
    return new StandardLoanService();
}