Kontaktformular erstellen mit Spring boot mvc
Spring boot Starter
- Spring Web Starter
- Thymeleaf
- Spring Boot DevTools
- Spring Data JPA Starter
- H2 Database
- Spring Security Starter
- Validation Starter
- Spring Boot session
Projektstruktur
- src
- main
- java
- com.example.demo
- controller
- model
- repository
- service
- DemoApplication.java
- resources
- static
- templates
- contact.html
- index.html
- login.html
- register.html
- welcome.html
- application.properties
Roadmap
- Erstellen Sie ein neues Spring Boot-Projekt
- Fügen Sie die Abhängigkeiten hinzu
- Konfigurieren Sie die Datenbank
- Erstellen Sie das Modell
- Erstellen Sie das Repository
- Erstellen Sie den Service
- Erstellen Sie den Controller
- Erstellen Sie die Ansichten
- Konfigurieren Sie die Sicherheit
- Testen Sie die Anwendung
Konfigurieren Sie die Datenbank h2
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.h2.console.path=/h2
Konfigration erstellen Securty
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests((authz) -> authz
.requestMatchers("/admin/**").denyAll() // Verweigere Zugriff auf /admin/** für alle Benutzer
.requestMatchers("/**").permitAll() // Erlaube Zugriff auf /public/** ohne Authentifizierung
.anyRequest().authenticated() // Alle anderen Anfragen erfordern Authentifizierung
)
.formLogin(withDefaults()); // Aktiviere Standard-Formularanmeldung
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.withDefaultPasswordEncoder()
.username("Test")
.password("Test")
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
}