SpringBoot2.0 (une méthode courante permettant à Spring de lire les fichiers de configuration et le package war est démarré dans Tomcat)

Premièrement, la méthode courante de lecture des fichiers de configuration dans SpringBoot

1.1, utilisez @Value pour lire

Dans le cycle d'instruction springBoot, vous pouvez utiliser l'annotation @Value pour lire les informations de configuration à partir du fichier de configuration par défaut de SpringBoot.

例如在Controller中使用:

    // 在配置文件中读取属性名为web.images-path对应的值
    @Value("${web.images-path}")
    private String path;

@Value peut être placé sur des propriétés ou des méthodes. La condition préalable à une utilisation normale est que la classe doit être dans le cycle de vie de SpringBoot.
Comment insérer une classe dans le cycle de vie Spring pour la gestion ? L'annotation @Component est utilisée
car @Controller et @Service eux-mêmes contiennent @Component. Il peut donc être utilisé directement.

下面是单独使用@Component的例子
Créez un package de configuration, puis créez un BootProperties

package com.demo.config;

import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;


@Component
public class BootProperties {
    
    

    @Value("${web.images-path}")
    public String path;
}

Puis écrivez dans le contrôleur

@RestController
public class HelloController {
    
    

    @Autowired
    private BootProperties bootProperties;
	
    @RequestMapping("/test5")
    public Object test5(){
    
    
        return bootProperties.path;
    }
	
}

insérer la description de l'image ici
使用ing类型写

package com.demo.config;

import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;


@Component
public class BootProperties {
    
    

    @Value("${web.images-path}")
    public String path;

	@Value("${server.port}")
    public int port;
}
@RestController
public class HelloController {
    
    

    @Autowired
    private BootProperties bootProperties;
	
    @RequestMapping("/test5")
    public Object test5(){
    
    
    	return bootProperties.path +  " ------ "+ bootProperties.port;
    }
	
}

insérer la description de l'image ici

1.2, en utilisant @ConfigurationProperties

Classe BootProperties

package com.demo.config;

import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;

@Setter  // lombok,生成set方法
@ConfigurationProperties(prefix = "server") // 配置属性类,并定制前缀
@Component  // 因为@ConfigurationProperties不能把此类放到boot容器中,所以要配合@Componpent使用
public class BootProperties {
    
    

    @Value("${web.images-path}")
    public String path;

    // 不使用@Value注解,需要保证:前缀+属性名=全路径。还需要此属性有对应的setter方法
    // @Value("${server.port}")
    public int port;


    // 使用@Value注解则需要写全路径
}

classe de contrôleur

@RestController
public class HelloController {
    
    

    @Autowired
    private BootProperties bootProperties;
	
    @RequestMapping("/test5")
    public Object test5(){
    
    
    	return bootProperties.path +  " ------ "+ bootProperties.port;
    }
	
}

insérer la description de l'image ici

1.3, utilisez Environnement

Environment est une classe de SpringCore pour lire les fichiers de configuration. En injectant cette classe dans une classe utilisant @Autowired, vous pouvez utiliser sa méthode getProperty pour obtenir la valeur d'un élément de configuration.

@RestController
public class HelloController {
    
    

    @Autowired
    private Environment environment;
	
   	@RequestMapping("/test7")
    public Object test7(){
    
    
        return environment.getProperty("server.port");
    }
	
}

insérer la description de l'image ici

1.4, lire le fichier de configuration personnalisé

Utilisez vos connaissances antérieures pour comprendre le code ci-dessous.
Ajouter principalement une nouvelle annotation @PropertySource

Créez un package de configuration, puis créez un SysProperties

package com.demo.config;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@ConfigurationProperties(prefix = "sys")
@Component
@PropertySource("classpath:sys.properties")
@Getter
@Setter
public class SysProperties {
    
    

    private String param1;
    private String param2;
}

classe de contrôleur

@RestController
public class HelloController {
    
    

    @Autowired
    private SysProperties sysProperties;
	
    @RequestMapping("/test6")
    public Object test6(){
    
    
        return sysProperties.getParam1()+sysProperties.getParam2();
    }
	
}

insérer la description de l'image ici

Deuxièmement, SpringBoot déploie le projet war sur Tomcat9 et lance le principe

创建一个新项目
insérer la description de l'image ici
Ajoutez un module
insérer la description de l'image ici
puis ajoutez des dépendances dans pom

    <packaging>war</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>


    <build>
        <finalName>passerby-war</finalName>
        <plugins>
            <plugin>
                <!-- 打包插件 -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

Ajoutez ensuite la classe contrôleur et une classe de démarrage
insérer la description de l'image ici
et ajoutez une méthode dans la classe Contrôleur

package com.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Controller {
    
    

    @RequestMapping("/demo01")
    public Object demo01(){
    
    
        return "hello,war";
    }
}

Démarrez l'empaquetage
insérer la description de l'image ici
, recherchez cet emplacement dans le dossier
insérer la description de l'image ici
, recherchez-le, copiez le package war que vous venez de créer, puis copiez le package war sur
insérer la description de l'image ici
votre emplacement Tomcat , puis ouvrez le répertoire bin, recherchez-y startup.bat, ouvrez-le , attendez pour l'exécuter puis dans Ouvrez le dossier dans lequel vous avez collé le package war tout à l'heure, tout ira bien maintenant, ouvrez le navigateur et essayez
insérer la description de l'image ici

insérer la description de l'image ici

insérer la description de l'image ici

insérer la description de l'image ici

insérer la description de l'image ici

insérer la description de l'image ici

insérer la description de l'image ici

Si vous ne comprenez rien, vous pouvez envoyer un message privé ! ! !

Je suppose que tu aimes

Origine blog.csdn.net/H20031011/article/details/132690815
conseillé
Classement