SpringBoot2.0 (распространенный метод Spring для чтения файлов конфигурации, а военный пакет запускается в Tomcat)

Во-первых, общий метод чтения файлов конфигурации в SpringBoot.

1.1, используйте @Value для чтения

В цикле операторов SpringBoot вы можете использовать аннотацию @Value для чтения информации о конфигурации из файла конфигурации SpringBoot по умолчанию.

例如在Controller中使用:

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

@Value может быть помещен в свойства или методы.Обязательным условием для нормального использования является то, что класс должен находиться в жизненном цикле SpringBoot.
Как включить класс в жизненный цикл Spring для управления? Аннотация @Component используется,
поскольку @Controller и @Service сами содержат @Component. Поэтому его можно использовать напрямую.

下面是单独使用@Component的例子
Создайте пакет конфигурации, затем создайте 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;
}

Затем пропишите в контроллере

@RestController
public class HelloController {
    
    

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

вставьте сюда описание изображения
使用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;
    }
	
}

вставьте сюда описание изображения

1.2, используя @ConfigurationProperties

Класс 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注解则需要写全路径
}

класс контроллера

@RestController
public class HelloController {
    
    

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

вставьте сюда описание изображения

1.3, используйте среду

Environment — это класс SpringCore для чтения файлов конфигурации. Внедряя этот класс в класс с помощью @Autowired, вы можете использовать его метод getProperty для получения значения элемента конфигурации.

@RestController
public class HelloController {
    
    

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

вставьте сюда описание изображения

1.4, прочитать файл пользовательской конфигурации

Используйте предыдущие знания, чтобы понять приведенный ниже код.
В основном добавляйте новую аннотацию @PropertySource.

Создайте пакет конфигурации, затем создайте 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;
}

класс контроллера

@RestController
public class HelloController {
    
    

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

вставьте сюда описание изображения

Во-вторых, SpringBoot развертывает военный проект на tomcat9 и запускает принцип

创建一个新项目
вставьте сюда описание изображения
Добавьте модуль
вставьте сюда описание изображения
, а затем добавьте зависимости в 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>

Затем добавьте класс контроллера и класс запуска
вставьте сюда описание изображения
и добавьте метод в класс контроллера.

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

Запустите упаковку
вставьте сюда описание изображения
, найдите это место в папке
вставьте сюда описание изображения
, найдите его, скопируйте только что созданный вами военный пакет, а затем скопируйте военный пакет в
вставьте сюда описание изображения
свое местоположение Tomcat , затем откройте каталог bin, найдите в нем файл start.bat, откройте его , подождите его запустить, а затем нажмите «Открыть папку, в которую вы только что вставили военный пакет», теперь все будет в порядке, откройте браузер и попробуйте
вставьте сюда описание изображения

вставьте сюда описание изображения

вставьте сюда описание изображения

вставьте сюда описание изображения

вставьте сюда описание изображения

вставьте сюда описание изображения

вставьте сюда описание изображения

Если вам ничего не понятно, вы можете написать личное сообщение! ! !

Guess you like

Origin blog.csdn.net/H20031011/article/details/132690815