SpringBoot2.0 (um método comum para o Spring ler arquivos de configuração, e o pacote war é iniciado no Tomcat)

Primeiro, o método comum de leitura de arquivos de configuração no SpringBoot

1.1, use @Value para ler

No ciclo de instrução springBoot, você pode usar a anotação @Value para ler informações de configuração do arquivo de configuração padrão do SpringBoot

例如在Controller中使用:

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

@Value pode ser colocado em propriedades ou métodos.O pré-requisito para uso normal é que a classe esteja dentro do ciclo de vida do SpringBoot.
Como colocamos uma classe no ciclo de vida do Spring para gerenciamento? A anotação @Component é usada
porque @Controller e @Service contêm @Component. Portanto, pode ser usado diretamente.

下面是单独使用@Component的例子
Crie um pacote de configuração e, em seguida, crie um 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;
}

Então escreva no controlador

@RestController
public class HelloController {
    
    

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

insira a descrição da imagem aqui
使用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;
    }
	
}

insira a descrição da imagem aqui

1.2, usando @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 controlador

@RestController
public class HelloController {
    
    

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

insira a descrição da imagem aqui

1.3, use Ambiente

Ambiente é uma classe no SpringCore para leitura de arquivos de configuração. Ao injetar esta classe em uma classe usando @Autowired, você pode usar seu método getProperty para obter o valor de um item de configuração.

@RestController
public class HelloController {
    
    

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

insira a descrição da imagem aqui

1.4, leia o arquivo de configuração personalizado

Use o conhecimento anterior para entender o código abaixo.
Adicione principalmente uma nova anotação @PropertySource

Crie um pacote de configuração e, em seguida, crie um 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 controlador

@RestController
public class HelloController {
    
    

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

insira a descrição da imagem aqui

Em segundo lugar, SpringBoot implanta o projeto de guerra no Tomcat9 e inicia o princípio

创建一个新项目
insira a descrição da imagem aqui
Adicione um módulo
insira a descrição da imagem aqui
e adicione dependências no 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>

Em seguida, adicione a classe controlador e uma classe de inicialização
insira a descrição da imagem aqui
e adicione um método na classe Controlador

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";
    }
}

Inicie o empacotamento
insira a descrição da imagem aqui
, encontre este local na pasta
insira a descrição da imagem aqui
, encontre-o, copie o pacote war que você acabou de criar e, em seguida , copie o pacote war para
insira a descrição da imagem aqui
o local do Tomcat , abra o diretório bin, encontre startup.bat nele, abra-o , aguarde para rodar e depois em Abra a pasta onde você colou o pacote war agora há pouco, vai ficar tudo bem agora, abra o navegador e tente
insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Caso não entenda nada, pode enviar mensagem privada! ! !

Acho que você gosta

Origin blog.csdn.net/H20031011/article/details/132690815
Recomendado
Clasificación