Оглавление
Во-первых, общий метод чтения файлов конфигурации в 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, откройте его , подождите его запустить, а затем нажмите «Открыть папку, в которую вы только что вставили военный пакет», теперь все будет в порядке, откройте браузер и попробуйте
Если вам ничего не понятно, вы можете написать личное сообщение! ! !