Après l'introduction de l'article précédent, je crois que mes amis ne peuvent plus aider à aspirer à Springboot. Dans cet article, je continuerai à introduire la configuration du fichier de configuration de Springboot à mes amis. Comment utiliser les paramètres de configuration globale. Ok, commençons notre introduction au contenu d'aujourd'hui.
Nous savons que Spring Boot prend en charge la configuration automatique des conteneurs, et la valeur par défaut est Tomcat, bien sûr, nous pouvons également le modifier:
1. Premièrement, nous excluons Tomcat dans la dépendance de Spring-Boot-Starter-Web: excluez le démarreur de Tomcat dans le fichier POM
<dependency> <proupId> org.springframework.boot </proupId> <ArtifActid> printemp-boot-starter-web </ artifactid> <cosclusions> <exclusion> <proupId> org.springframework.boot </prouprid> <etifactid> printemps-boot-starter-bat </letifactid> </ exclusion> </ exclusions> </Dependance>
2. Ajouter au conteneur de jetée
<dependency> <proupId> org.springframework.boot </proupId> <ArtifactId> printemp-boot-starter-jetty </retifactid> </pedidency>
De cette façon, notre conteneur Springboot sera modifié dans un conteneur de jetée.
Pour faciliter notre débogage, voici un outil de débogage HTTP pour vous: Postman
Parlons du fichier de configuration global de Springboot: application.properties
En développement, nous devons avoir rencontré une telle exigence, qui consiste à modifier notre port d'accès aux conteneurs. Étant donné que Springboot charge le conteneur par défaut, les paramètres du port sont bien sûr contrôlés via des fichiers de configuration, ce qui est assez pratique. Il nous suffit de l'ajouter dans le fichier de configuration:
server.port = 6666
De cette façon, notre port de conteneur sera modifié à 6666.
Nous pouvons également définir un alias d'accès au projet via des fichiers de configuration:
server.context-path = / springboot1
De cette façon, nous pouvons démarrer le projet et accéder à notre projet via http: // localhost: 6666 / Springboot1
Ce qui précède n'est que la pointe de l'iceberg de la configuration du fichier de configuration de Springboot. Par exemple, nous pouvons également configurer la configuration de la connexion de la base de données, configurer la configuration de l'environnement de développement, déployer la configuration de l'environnement et obtenir un commutation transparente entre les deux.
Apprenons l'utilisation du contrôleur de Springboot. Springboot nous fournit trois annotations:
Dans l'article précédent, nous avons utilisé @RestController. Essayons d'utiliser @Controller ensemble:
@Controller // @ ResponseBodyPublic Class DequestTest {/ ** * Aucune restriction sur la méthode de la demande * @return * / @RequestMapping (value = "/ req") public String req () {return "Success"; }}Lorsque nous entrons http: // localhost: 8080 / springboot1 / req pour entrer dans le navigateur, nous trouvons 404
{"Timestamp": 1515332935215, "Status": 404, "Error": "Aucun message disponible", "Path": "/ Springboot1 / req"}Pourquoi est-ce? En effet, @Controller doit être utilisé avec le modèle, nous ouvrons donc le fichier Maven Pom et ajoutons le modèle de Springboot:
<! - Template de Springboot -> <dependency> <proupId> org.springframework.boot </prôdId> <ArtefactId> printemps-boot-starter-thymeleaf </ artifactid> </dependency>
Trouvez ensuite des modèles dans le répertoire des ressources de notre projet (sinon, créez-en un nouveau, mais assurez-vous de noter que le nom du dossier doit être cohérent), puis créez un succès.html pour recommencer le projet et accéder à l'adresse tout à l'heure, n'est-ce pas?
Cependant, il convient de noter ici que le développement actuel au niveau de l'entreprise est séparé des extrémités avant et arrière. Lorsque nous offrons des services back-end, nous n'avons qu'à retourner les données correspondantes. Bien sûr, il y a un autre inconvénient à l'utilisation de modèles, c'est-à-dire que les performances entraîneront certaines pertes, afin que tout le monde puisse le comprendre brièvement ici.
Comme mentionné dans l'introduction ci-dessus, @ Controller + @ ResponseBody est équivalent à @RestController, il est donc recommandé d'utiliser @RestController ici.
Présentez @RequestMapping (valeur = "/ req"). Je crois que tout le monde connaît déjà son utilisation. Bien sûr, cette annotation peut non seulement être utilisée dans les méthodes, mais s'applique également aux classes.
@RestController // @ contrôleur // @ réponse @ requestmapping (value = "/ test") Classe publique RequestTest {/ ** * Pas de restrictions sur la méthode de demande * @return * / @requestmapping (value = "/ req") public String req () {return "Success"; } / ** * La méthode de demande restreinte est GET * @return * / @requestmapping (value = "/ req1", méthode = requestMethod.get) public chaîne req1 () {return "Success"; } / ** * La méthode de la demande de restriction est post * @return * / @requestmapping (value = "/ req2", méthode = requestMethod.Post) public chaîne req2 () {return "Success"; }}Je crois que lorsque vous voyez cette méthode, vous devez déjà connaître son utilité. Il s'agit d'un type d'accès spécifié, et il est accessible de quelque manière que ce soit sans définir la valeur par défaut. Je ne sais pas si je pensais que si la méthode est définie dans la classe @RequestMapping, la méthode de la classe sera héritée par défaut. Bien sûr, vous pouvez également le définir séparément à la méthode. Veuillez essayer le problème de priorité vous-même.
Ci-dessous, je vous présenterai comment accéder aux constantes dans les fichiers de configuration dans Controller. Nous ajoutons d'abord le fichier de configuration:
name = hpugsage = 35Content = name: $ {name}; Âge: $ {age}Nous utilisons des constantes dans des fichiers de configuration, qui sont utilisés par $ {}.
Ci-dessous, nous injectons des paramètres dans le contrôleur:
// Injecte des paramètres dans le fichier de configuration @value ("$ {name}") Nom de chaîne privée; @Value ("$ {age}") Age entier privé; @Value ("$ {contenu}") Contenu de chaîne privée; @RequestMapping (value = "/ req3", méthode = requestMethod.get) public chaîne req3 () {return "name =" + name; } @RequestMapping (value = "/ req4", méthode = requestMethod.get) public chaîne req4 () {return "age =" + age; } @RequestMapping (value = "/ req5", méthode = requestMethod.get) public String req5 () {return "content =" + contenu; }Commencez notre projet et essayez de le visiter.
Si vous vous sentez insatisfait de cette utilisation, voici une autre astuce: nous utilisons des fichiers de configuration de mappage de classe et utilisons des classes pour utiliser les paramètres. Il est plus pratique que d'injecter un seul paramètre. Tout d'abord, créez une classe Java
@ Composant @ configurationProperties (prefix = "userInfo") public class userInfo {private String Names; Âge entier privé; Contenu de chaîne privé; Getage entier public () {Return Age; } public String getNames () {RETOURN NAMES; } public void setNames (names de chaîne) {this.Names = noms; } public void Setage (entier Âge) {this.age = age; } public String getContent () {return Content; } public void setContent (String Content) {this.Content = Content; }}Définissez ensuite les paramètres dans notre fichier de configuration:
userInfo.Names = Little Broken Child userInfo.age = 25UserInfo.Content = Name: $ {userInfo.Names}; Age: $ {userInfo.age}Câblage pour faire de notre contrôleur:
// Inject Object @Autowired Private UserInfo UserInfo; @RequestMapping (value = "/ req6", méthode = requestMethod.get, produmes = "text / plain; charset = utf-8") public chaîne req6 () {return "name =" + userInfo.getNames (); } @RequestMapping (value = "/ req7", méthode = requestMethod.get) public String req7 () {return "age =" + userInfo.getage (); } @RequestMapping (value = "/ req7", méthode = requestMethod.get) public String req7 () {return "age =" + userInfo.getage (); } @RequestMapping (value = "/ req8", méthode = requestMethod.get) public String req8 () {return "content =" + userInfo.getContent (); }OK, essayez de redémarrer notre visite de projet.
Amis, ne savez-vous pas si vous rencontrez ce problème? Il y a du code chinois brouillé. Tout d'abord, ne vous inquiétez pas. Examinons un autre fichier de configuration Springboot: application.yml. Ce fichier de configuration remplace ";" par Newline Spaces. Jetons un coup d'œil à la configuration de la même configuration sous YML:
Server: Port: 8888 Context-Path: / Springboot1Name: HPUGSAGE: 35Content: Name: $ {name}; Age: $ {Age} userInfo: Names: Little Kid Age: 25 Content: Name: $ {userInfo.Names}; Age: $ {userInfo.age}Commençons maintenant le projet et essayons-le.
Pour en revenir à la question brouillée ci-dessus, n'y a-t-il pas brouillé lorsque nous utilisons YML? Êtes-vous un peu déprimé? Pourquoi est-ce? En effet Bien sûr, il y a une autre raison pour le code brouillé, c'est-à-dire les paramètres d'encodage que je peux être incompatible avec le front-end. Nous l'ajoutons au fichier de configuration:
Spring: HTTP: Encodage: Force: True Charset: UTF-8 Activé: TrueServer: Tomcat: Uri-codage: UTF-8
Pour contrôler. Voici quelques conseils de développement. Springboot nous fournit des solutions à différents fichiers de configuration dans différents environnements de développement:
Format #yml Spring: Profils: actif: prod # .properties format spring.profiles.active = dev
Résumer
Ce qui précède est l'utilisation des notes de piège Springboot des pièges Springboot qui vous sont présentés. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!