Spring JavaConfig example for Spring MVC / Spring Data JPA / Hibernate
Java
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

readme.md

Spring Java Config Sample

Since Spring 3.0, the JavaConfig features are included in the Core Spring module. Thus Java Developer could move Spring beans definition from configuration XML files to Java classes.

Based on Spring Framework 5.0, Spring Data JPA 2.0, Spring Security 4.2 and Hibernate 5.2, this sample show how to use the Spring's new Java-configuration support and its @Configuration-annotated class.

The following classes, interfaces and annotations are used in the sample:

  • JavaConfig main classes and annotations: @Configuration, @Bean, @ComponentScan, @Import, @ImportResource, @Profile, Environment, JndiObjectFactoryBean, @Scope
  • Spring Test: @WebAppConfiguration, @ContextConfiguration, @ActiveProfiles; @ContextHierarchy
  • Advanced Spring Framework features: @EnableTransactionManagement, @EnableAsync, @EnableCaching, @EnableAspectJAutoProxy
  • Spring Data Jpa annotations: @EnableJpaRepositories
  • Spring Security classes: @EnableWebMvcSecurity, WebSecurityConfigurerAdapter
  • Spring MVC features: @EnableWebMvc, WebMvcConfigurerAdapter, RequestMappingHandlerAdapter, InternalResourceViewResolver, ignoreDefaultModelOnRedirect

Build Status

Travis : Build Status

Cloudbees Jenkins : Build Status

Quick start

Download the code with git: git clone git://github.com/arey/spring-javaconfig-sample.git

Compile the code with maven: mvn clean install

If you're using an IDE that supports Maven-based projects (InteliJ Idea, Netbeans or m2Eclipse), you can import the project directly from its POM. Otherwise, generate IDE metadata with the related IDE maven plugin: mvn eclipse:clean eclipse:eclipse

Documentation

French articles on the javaetmoi.com blog:

Credits

  • Uses Maven as a build tool
  • Uses Cloudbees and Travis CI for continuous integration builds whenever code is pushed into GitHub