zoukankan      html  css  js  c++  java
  • SpringBoot核心配置之值的注入、多环境配置(三)


    一、值的注入,步骤如下

    1)先用Spring Initializr来迅速地建一个Spring Boot工程,并建实体类,其中需要注入属性的实体类添加通用注解将该组件注入到Spring容器中,由于需要往这个里面去注入属性,所以要添加一个注解@ConfigurationProperties(prefix="")。
              /**
               * 建一个Person类模型
               * */
              @Component  //将该组件注入到Spring容器中
              @ConfigurationProperties(prefix = "person")//将配置文件中所有以person开头的值注入到当前类中。   
              public class Person {
               //...里面封装6个属性及其get、set、toString方法
              } 

    //注意:在pom里要添加processor包

    2) 在resource目录下用全局配置文件application.properties给实体类对象person进行值的注入,即赋值。

    3)在pom.xml中添加spring-boot-configuration-processor的依赖。

    4)写测试类和启动类。
    在启动类中用@SpringBootApplication(@ScanBasePackages=""),该注解用于扫描注入类所对应的包。 在测试类中,用@RunWith(SpringRunner.class)注解去加载测试运行器,另外,用@SpringBootApplication加载上下文环境,并向该注解的参数中添加启动类.class作为的参数,最后并注入要依赖的类对象,最后运行测试的方法。


    注意:每个类之间都有关联性

    说明:
    1.第二步也可用application.yaml文件方式来进行属性值的赋予,即键值对的方式赋值。
    2.对于对某个类(如Student类)中的某一个或几个属性赋值可在属性值上添加@Value("${person.id}"),看pom中是否需要导入Spring的相关的文件。
    3.@ConfigurationProperties和@Value这两个注解的区别在于前一个是SpringBoot的注解,而后一个是Spring的注解,前者适用于批量注入属性,后者适用于单个属性的注入。



    二、自定义配置的值的注入

    也可在resource下自定义配置文件,需要在配置类上加入@Configuration,并用@PropertySource注解指定配置文件的路径及名称,另外要添加EnableConfigurationProperties(currentClass.class)或用注解@SpringBootApplication注解,并最后写测试类测试。


    三、Profile多环境配置

    多环境配置有两种方式:1.用Profile文件进行多环境配置。 2.用@Profile注解进行多环境配置。

    法1.用Profile文件进行多环境配置
    1)在resource目录下,分别建环境配置文件,文件名格式:application-xxx.properties,内容主要是:
              server.port=8081
           2)在resources目录中的全局配置文件application.properties中选择要激活的端口,代码如下:
              spring.profiles.active=dev
           3) 运行启动类查看结果。


    法2.用@Profile注解进行多环境配置
    1)在配置包下建一个config包,并在其下建一个用于配置数据库的接口文件。
             public interface DBConfigure{
               void configure();
             }
           2) 并建若干实现类来实现接口,用以模拟连接配置不同的数据库环境。
               @Configuration
               @Profile("dev")
               public class devDBConfigure implements DBConfigure{
                   System.out.println("数据库配置环境");
               }
           3)在resources目录中的全局配置文件application.properties中选择要激活的端口,代码如下:
               spring.profiles.active=dev
           4)建一个测试类。
            @RestController
             public class DBController{
                @Autowired
                private DBConnector dbConnector;
                public void showDB(){
                    void configure();
                }
             }
           5)添加扫描包(配置类)路径,运行启动类
              //加载配置并扫描包,并开启实例化类
              @SpringBootApplication(scanBasePackages = "com.Controller.*")
              public class SpringbootexerciseApplication {
                public static void main(String[] args) {
                    SpringApplication.run(SpringbootexerciseApplication.class, args);
                }
              }
    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    Shell 丢弃错误和输出信息
    awk 循环过滤EPC脚本
    Tornado 异步浅解
    返回顶部
    Tornado 的安全性保障机制Cookie XSRF跨站请求伪造阻断 &用户验证机制
    Nginxre quest_time 和upstream_response_time
    Tornado WEB服务器框架 Epoll-- 【Mysql数据库】
    Tornado WEB服务器框架 Epoll-- 【模板】
    常见的SQL等价改写
    redis配置信息详解
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/12251743.html
Copyright © 2011-2022 走看看