[JAVA] [Pour usage interne] Pour ceux affectés au projet Spring Boot (en construction)
      
      
        
        
        
        
Cet agenda est utilisé pour expliquer aux employés qui ont été affectés à Spring Boot pour la première fois.
Connaissances préalables
- Syntaxe de base Java 8
 
- HTML5, CSS3, JavaScript(ES5)
 
- Servlet3.1
 
- HTTP GET, POST
 
Environnement de développement
- Eclipse Pleiades 4.7
 
- Java8
 
- Spring Boot 1.5.10
 
- PostgreSQL 9.6
 
- superagent.js
 
Cible
Visez à être capable de:
- Ajouter un écran
 
- Ajout du traitement client-serveur (ajout de l'API Restful)
 
- Accéder à la base de données (MyBatis)
 
- Comprendre chaque fichier
 
- Comprendre le contrôleur, le service, etc. correspondant à MVC
 
- Créer et déployer un pot avec Maven
 
- Ajouter une bibliothèque de Maven
 
- Ajout du traitement des droits d'accès (Spring Security)
 
- Comprendre l'idée des règles à partir des paramètres
 
Description de la bibliothèque
Spring Boot
- Une collection de nombreuses bibliothèques liées au printemps
 
- Hello World peut être affiché avec la configuration minimale
 
- Les paramètres nécessaires tels que les paramètres de journal ont été définis à l'avance.
 
- Est-ce que ça devient populaire?
 
MyBatis
- Version améliorée d'O / R Mapper. IBatis
 
- SQL peut être écrit non seulement en XML mais aussi dans les annotations
 
Thmeleaf
- Moteur de modèle. Quelque chose comme JSP.
 
- Alors que JSP spécifie une balise dédiée à JSP, Thymeleaf le spécifie avec un attribut dédié à Thmeleaf.
 
- Puisque le navigateur ignore simplement les attributs non reconnus, la mise en page est-elle interrompue?
--Division du travail entre concepteurs et programmeurs
 
- Spring Boot recommande Thymeleaf au lieu de JSP
 
Qu'est-ce que Maven
[Pour les super débutants] Super introduction à Maven
- Outil de gestion de construction
 
- Réglé sur 
pom.xml 
- Les bibliothèques externes peuvent être utilisées avec 
<dependency>. 
Explication spécifique
1. Explication de la structure des dossiers
Spring et MVC
- Controller
 
- Service
 
- Model
 
- View
 
1. Ajouter un écran
procédure
- Placez le HTML dans le dossier 
src / main / static / template 
- Créez une méthode dans la classe Controller qui renvoie le HTML créé.
 
SampleController.java
public ModelAndView index(ModelAndView mav) {
    mav.setViewName("sample");
    return mav;
}
point
- Le nom VIEW passé à 
setViewName ne nécessite pas d'extension (peu importe s'il a une extension). Il semble qu'il puisse être utilisé avec JSP et Thymeleaf. 
2. Ajouter l'API Restful
POST API
- Superagent utilise les méthodes 
post, send 
API POST (téléchargement de fichiers)
- superagent utilise les méthodes 
post, field, ... 
Restful API
https://qiita.com/TakahiRoyte/items/949f4e88caecb02119aa
- Convention de dénomination de l'API
 
- Utilisez correctement GET et POST
 
3. Accéder à DB avec My Batis
Site Web officiel MyBatis
XML
- mybatis-config.xml
 
src/main/resources/mybatis/mapper/*.xml 
- Les balises peuvent être utilisées pour générer dynamiquement du SQL
--
<if>,<pourchaque>,<où>, etc. 
- L'attribut 
parameterType est probablement inutile car il devine les informations que MyBatis recevra. 
Classe DAO
- Ajouter 
@ Component 
- Appeler des méthodes telles que 
selectOne et selectList de sqlSession 
- Spring Security
Spring Security Reference
Thymeleaf + Spring Security integration basics
 
SecurityConfig.java
Réglez les éléments suivants, etc.
- URL accessible sans connexion
 
- URL inaccessibles sans le rôle
 
Thymeleaf
- Vous pouvez écrire quelque chose comme 
sec: authorize =" hasRole ('ROLE_USER') " 
5. Comment utiliser Maven
Paramètres sur le système existant
pom.xml (spring-boot-starter-parent) pour Spring Boot est spécifié par <parent> 
- La version de la bibliothèque externe à utiliser est également définie.
--Si vous souhaitez spécifier la version, spécifiez-la avec 
<properties>. 
- Utilisation de sa propre bibliothèque
 
- Génération JavaDoc
 
Mise à jour Maven dans Eclipse
Après avoir modifié pom.xml, mettez-le à jour avec" Clic droit sur projet> Maven> Mettre à jour le projet ".
Générer un fichier jar (pour le déploiement)
- Lorsque la commande 
mvn install est exécutée, un fichier jar est généré dans le dossier project / target. 
- Si vous souhaitez ignorer l'exécution du code de test, exécutez 
mvn install -Dmaven.test.skip = true. 
6. Relatif à Spring Boot
application.properties
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
- Fichier qui définit les paramètres externes pour Spring Boot
 
- Si vous l'ouvrez dans "Spring Property Editor" d'Eclipse, vous pouvez terminer la saisie de la clé.
 
- Peut également être spécifié comme argument de la commande java. 
java -jar sample.jar --server.port = 8081
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html 
Profile
https://area-b.com/blog/2015/01/30/2316/
http://endok.hatenablog.com/entry/2016/06/12/181900
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html
- Un mécanisme pour changer les valeurs de réglage pour chaque environnement d'exécution.
 
- Passez à la classe Java avec `@Profile (" test ") ʻetc.
 
- Thymeleaf utilise 
@ environment pour changer
https://blog.tagbangers.co.jp/ja/2015/01/18/thymeleaf-environment-properties 
Paramètres sur le système existant
- 
Définir 3 types de profils dans le système existant
--local: démarrer dans un environnement local
--test: démarrer sur le serveur de l'environnement de développement
--release: démarrer sur le serveur de production
 
- 
Spécifiez un profil comme --spring.profiles.active = local dans l'argument de la commande java
 
- 
ʻApplication.properties est préparé pour chaque profil. --ʻApplication.properties: valeur de réglage par défaut.
--ʻApplication-test.properties: valeur de réglage pour l'environnement de test. --ʻApplication-release.properties: Paramètres de l'environnement de production. Désactiver des outils tels que Swagger, activer le cache
--ʻApplication-local.properties`: paramètres personnels. En supposant ne pas s'engager.
 
Comment déployer
- Exécutez 
mvn install -Dmaven.test.skip = true avec la commande pour générer un fichier jar 
- Généré dans le dossier 
project / target 
- Démarrez le serveur avec la commande java
 
- Il existe un fichier batch pour démarrer (start.bat)
 
Paramètres de journal pour les projets existants
- Adoption d'une combinaison de SLF4J (interface) et Logback (implémentation)
 
- Sur les systèmes plus anciens, il existe de nombreuses combinaisons de journalisation commune (interface) et log4j (implémentation).
 
src/main/resources/logbakc.xml 
- Ajouter des paramètres individuels au format de journal préparé depuis le début
 
- Générer le champ 
log avec @ Slf4j de Lombok 
- Log4jdbc a été adopté pour afficher le SQL exécuté (l'état où la valeur préparée est également sortie) dans le journal.
- https://qiita.com/YAKINIKU/items/5141c7205f3c67691c92
 
 
- Journaux de sortie avant et après Cntroller (AOP)
 
JUnit
Printemps @autowired
Exercice
Conditions préalables
- L'environnement de développement est en place
 
- Ajouter des fonctionnalités aux projets existants à l'aide de Spring Boot
 
- La communication Ajax utilise superaget.js
 
Base de données
create_table.sql
CREATE table user (
  SERIAL user_id NOT NULL,
  TEXT user_name NOT NULL,
  TEXT section NOT NULL,
  PRIMARY KEY (user_id)
);
Ajouter une classe de contrôleur
- Vérifier la demande / réponse dans l'outil de développement de navigateur
 
Créer un fichier HTML
Créez sample.html et affichez le contenu de sample.html avec URL / sample.html
- Reportez-vous à la valeur dans le fichier de message (
message.properties) 
Créer l'API GET (1 paramètre)
- Avec 
@ RequestParam, recevez un numéro du client. 
- Côté serveur, calculez le carré du numéro reçu et renvoyez-le au client
 
Créer l'API GET (transmettre une information)
- Avec 
@ RequestParam, recevez un numéro du client. 
- Côté serveur, calculez le carré du numéro reçu et renvoyez-le au client
 
Créer l'API GET (transmettre plusieurs informations)
- Créez une classe de bean et recevez plusieurs informations dans cette classe.
 
- Côté serveur, effectuez un certain traitement sur les informations reçues et renvoyez-les au client
 
Créer une API POST
- Créez une API POST.
--Recevoir plusieurs informations
 
- Effectuer un traitement sur les informations reçues et les renvoyer au client
 
- Appelez une API créée avec JavaScript
--Afficher le contenu de la réponse à l'écran
 
Créer une API POST (téléchargement de fichier)
- Créer une API POST
--Recevoir un fichier et une chaîne
--Enregistrer le fichier reçu
 
- Appelez une API créée avec JavaScript
 
Accès à la base de données
- Ajouter une méthode à la classe DAO
 
- Appel d'une méthode de la classe DAO à partir d'une méthode de la classe Controller
 
SELECT avec ʻuser_id`
- Créer une méthode dans la classe DAO
--ʻMéthode pour obtenir le résultat réduit par user_id`
 
SELECT par nom d'utilisateur ou service
- Ecrire une clause WHERE en utilisant 
<if>,  ` 
- Si les informations transmises à SQL sont nulles, ne restreignez pas
 
INSERT ʻUser` dans la table
- Ecrire une clause WHERE en utilisant 
<if>,  ` 
- Si les informations transmises à SQL sont nulles, ne restreignez pas
 
Stocker les informations dans une classe hiérarchique avec une seule instruction SELECT
- Ecrire des instructions SQL en utilisant 
<collection> 
Maven
Modifiez pom.xml pour utiliser une bibliothèque externe
- Vérifiez le référentiel local Maven
 
- Vérifier les propriétés du projet Eclipse
 
Générez un fichier jar et démarrez le serveur avec la commande java
- Générer un fichier jar avec la commande mvn sans utiliser Eclipse
 
- Spécifiez le numéro de port dans l'argument de la commande java
 
- Modifiez le profil et vérifiez que les valeurs de réglage, etc.
 
Vérifiez le journal
- Modifiez le niveau de journalisation dans logback.xml et vérifiez si le journal est sorti / non sorti
 
Problème de phrase
HTTP
- Expliquez la différence entre HTTP GET et POST.
-En-tête et corps de la demande / réponse
 
Base de données
- Expliquez les fonctionnalités d'O / R Mapper en fonction des avantages et des inconvénients.
 
- Vous pouvez utiliser «#» ou «$» pour recevoir des informations de Java. Expliquez la différence.
 
HelloWorld
Ajout de l'API Restful
@RequestBody, @RequestParam, etc.
téléchargement de fichiers
Introduction de MyBatis
Spring Boot Présentation approfondie Chapitre 14 Exemple de système Web
Problèmes de servlet
[Supplément] Comparaison avec Terasoluna