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

      }

      }

  • 相关阅读:
    encodeURI() 的用法
    $().each() 与 $.each()区别,以及 jquery ajax 应用
    每日一乐,健康多滋味~~
    IIS部署ASP.NET MVC (4.0)网站出现的错误
    《程序员级别鉴定书》 ----中级.NET开发者
    《转》程序员必须知道的10大基础实用算法及其讲解
    C# 托管资源和非托管资源
    11、E-commerce in Your Inbox:Product Recommendations at Scale-----产品推荐(prod2vec和user2vec)
    二叉树(2)----路径
    10、Latent Relational Metric Learning via Memory-based Attention for Collaborative Ranking-----基于记忆注意的潜在关系度量协同排序
  • 原文地址:https://www.cnblogs.com/djw12333/p/11497373.html
Copyright © 2011-2022 走看看