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

  }

  }

Spring 开发之组件赋值的更多相关文章

  1. [网页游戏开发]Morn组件赋值

    在讲解List之前,我们先介绍一下Morn组件赋值功能 默认属性赋值 界面逻辑开发过程中,经常会涉及到动态更改UI属性,比如: 界面有一个按钮,一个多选框和一个文本,分别命名为myButton,myC ...

  2. 使用Spring开发第一个HelloWorld应用

    http://www.importnew.com/13246.html 让我们用Spring来写第一个应用程序吧. 完成这一章要求: 熟悉Java语言 设置好Spring的环境 熟悉简单的Eclips ...

  3. 简要描述如何结合struts、hibernate、spring开发Web应用?

    简要描述如何结合struts.hibernate.spring开发Web应用? 解答:Struts可以将jsp页面的表单关联起来,就是把JSP页面的表单数据封装成javaBean,这样的话,在acti ...

  4. 学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用

    http://www.importnew.com/13246.html     首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所有文章 资讯 ...

  5. ActiveMQ学习笔记(6)----ActiveMQ整合Spring开发

    1. 添加依赖 spring 提供了对JMS的支持,需要添加Spring支持jms的包和Spring的核心包,如下: <dependency> <groupId>org.apa ...

  6. iOS开发之组件化架构漫谈

    前段时间公司项目打算重构,准确来说应该是按之前的产品逻辑重写一个项目.在重构项目之前涉及到架构选型的问题,我和组里小伙伴一起研究了一下组件化架构,打算将项目重构为组件化架构.当然不是直接拿来照搬,还是 ...

  7. 【Spring学习笔记-0】Spring开发所需要的核心jar包

    spring开发所需要的核心jar 1. libs目录下的核心jar包: 2. common-logging-xxx.jar 来自为知笔记(Wiz) 附件列表

  8. 【Spring开发】—— Spring Core

    原文:[Spring开发]-- Spring Core 前言 最近由于一些工作的需要,还有自己知识的匮乏再次翻开spring.正好整理了一下相关的知识,弥补了之前对spring的一些错误认知.这一次学 ...

  9. 使用OC开发phonegp 组件

    使用OC开发phonegp 组件 1. 使用oc 对phonegp中的组件近些开发,首先具体的pgonegp跟nativecode之间的一些优劣就不说了,开发phonegp 对应的组件主要就是使用na ...

随机推荐

  1. MySQL基于 amoeba.xml的读写分离

    1.准备两台服务器  centos7 192.168.52.35 192.168.52.36 2.关闭防火墙 [root@localhost ~]# systemctl stop firewalld ...

  2. jquery根据选择器进行页面赋值,封装赋值方法

    可以进行文本框赋值,文本域赋值,下拉列表赋值,单选框赋值,多选框赋值, 传入对象,可以根据元素name进行比对赋值,不用每个进行单独赋值 <!DOCTYPE html> <html ...

  3. win10系统:VMware无法在Windows运行该怎么办?

     出现的问题: 解决方法: 点击“检查更新”或去官网下载最新版本 Vmware15.5.0(经过测试发现,Windows 10上面可以运行Vmware15.5.0 ) VMware Workstati ...

  4. 【操作系统之十】内存分页管理与swap

    一.虚拟内存电脑里内存分内存条(这里我们叫物理内存)和硬盘,内存条保存程序运行时数据,硬盘持久保存数据.那么虚拟内存是什么? 程序运行会启动一个进程,进程里有程序段.全局数据.栈和堆,这些都会加载到内 ...

  5. linux下ELK搭建好之后配置sentinl插件,进行邮件告警

    ELK的环境搭建好之后,如何利用收集到的数据进行数据告警呢?在破解ELK之后,它本身提供一个监视器功能,配置偏向编写脚本.有一个更加方便的插件sentiel. 一.下载并安装sentinl插件 htt ...

  6. 【C/C++开发】c++ 工具库 (zz)

    下面是收集的一些开发工具包,主要是C/C++方面的,涉及图形.图像.游戏.人工智能等各个方面,感觉是一个比较全的资源.供参考!  原文的出处:http://www.codemonsters.de/ho ...

  7. SpringBoot+Mysql 无法保存emoj表情?

    尤记得很久以前,想存 emoj 表情到 mysql 中,需要额外的将 emoj 表情转码之后保存,每次读取时,再解码还原成一下:每次这种 sb 的操作,真心感觉心塞,那么有没有办法直接存呢? mysq ...

  8. Linux 教你如何预防删库到跑路

    学习linux之前,有几个命令是必须记住的 我们最常见的删库命令 rm -rf /** 这个命令可以在你心情不好的时候,对着公司服务器操作一番,保证让你一时爽, 删完库这个时候你就该跑路了,但是你真的 ...

  9. 所谓的SaaS服务到底是什么?

    先从SaaS说起,SaaS是英文Soft as a Service(软件即服务)的简写.SaaS并不是指代一个行业或者一种技术,它是一种2B的专业型软件租赁使用模式. 什么是专业型软件? 就是为了解决 ...

  10. springboot yml配置文件注入值

    1.编写javabean: package com.example.springboot.bean; import org.springframework.boot.context.propertie ...