zoukankan      html  css  js  c++  java
  • Spring 开发之组件赋值

      1. @Value & @PropertySource

      1.1 使用方式

      @PropertySource:读取外部配置文件中的 k/v 保存到运行的环境变量中;加载完外部的配置文件以后使用 ${} 取出配置文件的值

      @Value:赋值

      基本数值

      可以写 SpEL,#{}

      可以写 ${};取出配置文件【properties】中的值(在运行环境变量里面的值)

      1.2 代码

      1. Person

      @Data

      @Slf4j

      @ToString

      public class Person {

      @Value("#{001+001}")

      private Long id;

      @Value("zs")

      private String name;

      @Value("${person.address}")

      private String address;

      @Value("${person.age:19}")

      private Integer age;

      }

      2. SpringConfig

      @Configuration

      @PropertySource(value = "classpath:person.properties")

      public class SpringConfig {

      @Bean

      public Person person() {

      return new Person();

      }

      }

      3. PropertiesTest

      public class PropertiesTest {

      public static void main(String[] args) {

      AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);

      Person person = context.getBean(Person.class);

      System.out.println(person);

      //Person(id=2, name=zs, address=上海市, age=19)

      }

      }

      2. @Profile

      2.1 使用方式

      @Profile:指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件

      加了环境标识的 bean,只有这个环境被激活的时候才能注册到容器中。默认是 default 环境

      写在配置类上,只有是指定的环境的时候,整个配置类里面的所有配置才能开始生效

      没有标注环境标识的 bean 在任何环境下都是加载的

      2.2 代码

      1. Message

      @Data

      @NoArgsConstructor

      @AllArgsConstructor

      public class Message {

      private String label = null;

      }

      2. SpringConfig

      @Configuration

      public class SpringConfig {

      @Profile("default")

      @Bean

      public Message defaultMessage() {

      return new Message("default");

      }

      @Profile("dev")

      @Bean

      public Message devMessage() {

      return new Message("dev");

      }

      @Profile("test")

      @Bean

      public Message testMessage() {

      return new Message("test");

      }

      @Profile("prod")

      @Bean

      public Message prodMessage() {

      return new Message("prod");

      }

      }

      3. 激活方式 1

      激活 profile:设置虚拟机参数 -Dspring.profiles.active=dev,test

      public class ProfileTest {

      public static void main(String[] args) {无锡人流医院哪家好 http://www.bhnnkyy120.com/

      AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);

      String[] names = context.getBeanNamesForType(Message.class);

      for (String name : names) {

      System.out.println(name);

      }

      //devMessage

      //prodMessage

      }

      }

      4. 激活方式 2

      public class ProfileTest {

      public static void main(String[] args) {

      //1. 创建一个 AnnotationConfigApplicationContext

      AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();

      //2. 设置需要激活的环境

      context.getEnvironment().setActiveProfiles("dev", "prod");

      //3. 注册主配置类

      context.register(SpringConfig.class);

      //4. 刷新容器

      context.refresh();

      String[] names = context.getBeanNamesForType(Message.class);

      for (String name : names) {

      System.out.println(name);

      }

      //testMessage

      //prodMessage

      }

      }

  • 相关阅读:
    生成大小字母以及数字混乱的6位验证码
    重写吃货联盟
    集合练习:登录注册功能
    出现并解决Navicat 报错:1130-host ... is not allowed to connect to this MySql server,MySQL
    mysql在linux的安装
    Spring4分别整合mongo2.X和3.0
    oracle数据库使用plsql(64位)时出现的问题
    spring的CXF远程服务
    spring的定时任务或者说自动任务
    jquery节点查询
  • 原文地址:https://www.cnblogs.com/djw12333/p/11497373.html
Copyright © 2011-2022 走看看