13 December 2017 · Java spring spring-boot
Spring-boot without start.spring.io
-
Create simple app using maven
mvn archetype:generate -DgroupId=org.catcher -DartifactId=SampleApp -DarchetypeArtifactId=maven-archetype-webapp -
Add parent spring-boot-starter to main pom.xml
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> </parent> -
Add SpringFramework, Spring MVC, Servlet Api and ApacheTomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> -
Add JPA (Hibernate)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> -
Add Spring Security
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> -
Add application monitoring
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> -
Add test components (Mockito, JUnit, AspectJ)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> -
Add database driver
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.196</version> </dependency> -
Add maven java level to avoid InteliJ warnings
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> -
Add started class
package org.catcher.sampleapp; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; @SpringBootApplication public class SpringBootWebApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(SpringBootApplication.class); } public static void main(String[] args) { SpringApplication.run(SpringBootWebApplication.class, args); } } -
Add Artist entity:
package org.catcher.sampleapp.entities; import lombok.*; import javax.persistence.*; import java.io.Serializable; import java.util.HashSet; import java.util.Set; @Getter @Setter @NoArgsConstructor @RequiredArgsConstructor @Entity @Table(name = "ER_ARTIST") public class Artist implements Serializable { @Id @GeneratedValue private Long id; @NonNull private String name; @NonNull private String surname; @OneToMany(mappedBy = "artist", cascade = CascadeType.ALL) private Set<Album> albums = new HashSet<>(); public void addAlbum(Album album) { albums.add(album); } }
C.D.N. ;-)