Spring met Maven

Inhoudsopgave

  1. Overzicht
  2. Basic Spring Dependencies met Maven
  3. Spring Persistence met Maven
  4. Spring MVC met Maven
  5. Spring Security met Maven
  6. Spring Test met Maven
  7. Mijlpalen gebruiken
  8. Snapshots gebruiken
  9. Conclusie

1. Overzicht

Deze zelfstudie illustreert hoe u moet instellen de afhankelijkheden van de lente via Maven. De nieuwste Spring-releases zijn te vinden op Maven Central.

2. Basis afhankelijkheden van de lente met Maven

Spring is ontworpen om zeer modulair te zijn - het gebruik van een deel van de Spring zou en vereist geen ander. De standaard Spring Context kan bijvoorbeeld zonder de Persistence- of de MVC Spring-bibliotheken zijn.

Laten we beginnen met een fundamentele Maven setup die alleen zal gebruiken de lente-context afhankelijkheid:

 5.2.8.RELEASE org.springframework spring-context $ {org.springframework.version} runtime 

Deze afhankelijkheid - lente-context - definieert de daadwerkelijke Spring Injection Container en heeft een klein aantal afhankelijkheden: lente-kern, lente-uitdrukking, lente-uit, en lente-bonen. Deze vergroten de container door ondersteuning voor een deel van de kern veertechnologieën: de Core Spring-hulpprogramma's, de Spring Expression Language (SpEL), de Aspect-Oriented Programming-ondersteuning en het JavaBeans-mechanisme.

Merk op dat we de afhankelijkheid definiëren in het looptijd reikwijdte - dit zorgt ervoor dat er geen afhankelijkheden zijn tijdens het compileren van Spring-specifieke API's. Voor meer geavanceerde gebruiksscenario's, de looptijd scope kan worden verwijderd uit sommige geselecteerde Spring-afhankelijkheden, maar voor eenvoudigere projecten is dat zo het is niet nodig om tegen Spring te compileren om volledig gebruik te maken van het raamwerk.

Merk ook op dat JDK 8 de minimale Java-versie is die vereist is voor Spring 5.2. Het ondersteunt ook JDK 11 als de huidige LTS-branch en JDK 13 als de nieuwste OpenJDK-release.

3. Lente volharding met Maven

Laten we nu eens kijken de persistentie afhankelijkheden van de lente - hoofdzakelijk lente-orm:

 org.springframework spring-orm $ {org.springframework.version} 

Dit wordt geleverd met Hibernate en JPA-ondersteuning, zoals HibernateTemplate en JpaTemplate - evenals enkele aanvullende, persistentiegerelateerde afhankelijkheden: spring-jdbc en spring-tx.

De JDBC Data Access-bibliotheek definieert zowel de Spring JDBC-ondersteuning als de JdbcTemplate, en spring-tx staat voor de uiterst flexibele Transaction Management Abstraction.

4. Lente MVC met Maven

Om de Spring Web- en Servlet-ondersteuning te gebruiken, moeten twee afhankelijkheden worden opgenomen in het pom, opnieuw in aanvulling op de kernafhankelijkheden van bovenaf:

 org.springframework spring-web $ {org.springframework.version} org.springframework spring-webmvc $ {org.springframework.version} 

De lente-web afhankelijkheid bevat algemene webspecifieke hulpprogramma's voor zowel Servlet- als Portlet-omgevingen, terwijl lente-webmvc maakt de MVC-ondersteuning mogelijk voor Servlet-omgevingen.

Sinds lente-webmvc heeft lente-web als een afhankelijkheid, expliciet definiërend lente-web is niet vereist bij gebruik lente-webmvc.

Vanaf Spring 5.0 kunnen we voor de reactive-stack webframework-ondersteuning de afhankelijkheid voor Spring WebFlux toevoegen:

 org.springframework spring-webflux $ {org.springframework.version} 

5. Voorjaarsbeveiliging met Maven

Beveiliging Maven-afhankelijkheden worden uitgebreid besproken in het artikel Spring Security with Maven.

6. Lente-test met Maven

Het Spring Test Framework kan via de volgende afhankelijkheid in het project worden opgenomen:

 org.springframework spring-test $ {spring.version} test 

Met Spring 5 kunnen we ook gelijktijdige testuitvoering uitvoeren.

7. Mijlpalen gebruiken

De releaseversie van Spring wordt gehost op Maven Central. Als een project echter mijlpaalversies moet gebruiken, moet een aangepaste Spring-repository worden toegevoegd aan de pom:

  repository.springframework.maven.milestone Spring Framework Maven Milestone Repository //repo.spring.io/milestone/ 

Zodra deze repository is gedefinieerd, kan het project afhankelijkheden definiëren zoals:

 org.springframework spring-core 5.3.0-M1 

8. Snapshots gebruiken

Net als mijlpalen worden snapshots gehost in een aangepaste opslagplaats:

  repository.springframework.maven.snapshot Spring Framework Maven Snapshot Repository //repo.spring.io/snapshot/ 

Zodra de SNAPSHOT-repository is ingeschakeld in de pom.xml, kan naar de volgende afhankelijkheden worden verwezen:

 org.springframework spring-core 4.0.3.BUILD-SNAPSHOT 

Evenals - voor 5.x:

 org.springframework spring-core 5.3.0-SNAPSHOT 

9. Conclusie

Dit artikel bespreekt de praktische details van het gebruik Spring met Maven. De Maven-afhankelijkheden die hier worden gepresenteerd, zijn natuurlijk enkele van de belangrijkste, en verschillende andere zijn misschien het vermelden waard en hebben de cut nog niet gehaald. Desalniettemin zou dit een goed startpunt moeten zijn om Spring in een project te gebruiken.