Bases & syntaxe
Création d'un projet Spring Boot
mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Crée un nouveau projet Spring Boot
Configuration de base
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
Point d'entrée et configuration principale du projet
Structures de données
Utilisation de l'interface List
List<String> items = new ArrayList<>();
items.add("item1");
items.add("item2");
String firstItem = items.get(0);
Manipuler une liste simple
Utilisation de l'interface Map
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
String value = map.get("key1");
Manipuler un dictionnaire simple
Fonctions & methodes essentielles
Injection de dépendances
@Service
public class MyService {
@Autowired
private MyRepository myRepository;
}
Utiliser l'injection de dépendances pour accéder aux ressources
Mappers
@Mapper
public interface UserMapper {
UserDTO userToUserDTO(User user);
}
Convertir des objets entre différents formats
Patterns courants
Repository pattern
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByUsername(String username);
}
Manipuler les données de base avec le pattern repository
Service pattern
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User getUserByUsername(String username) {
return userRepository.findByUsername(username).orElse(null);
}
}
Appliquer le service pattern pour la logique métier
Operations avancees
Transactions
@Transactional
public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) {
accountRepository.updateBalance(fromAccountId, fromAccount.getBalance().subtract(amount));
accountRepository.updateBalance(toAccountId, toAccount.getBalance().add(amount));
}
Gérer les transactions avec Spring's @Transactional
Asynchronous operations
@Async
public void doSomethingAsync() {
// code asynchrone
}
Effectuer des opérations en arrière-plan
Debugging & outils
Utilisation de l'API de débogage Spring Boot Actuator
curl http://localhost:8080/actuator/health
Vérifier le statut et la santé de l'application
Logback configuration
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Configurer la journalisation pour une meilleure visibilité