SpringBoot学习三:常用注解(配置相关)
SpringBoot常用注解(配置相关)
1.yml语法
★注意空格
yml中的写法
properties中的写法
2.@Value获取值和@ConfigurationProperties获取值比较
备注:
松散绑定:就是不区分配置文件中的大小写等等,都能获取到值
SpEL:配置文件中的计算获取的值
JSR303数据校验:例如在字段前面加@Emial注解,校验该字段是否为emial格式,如果不是,会报错!
复杂类型封装:例如map类型封装的数据
@Value获取值的代码
@RestController
public class HelloController {@Value("${person.lastName}")private String name;@RequestMapping("/sayHello")public String sayHello(){return "Hello," + name;}
}
@ConfigurationProperties获取值的代码(默认从全局配置文件中获取)
@PropertySource获取值的代码(从指定的配置文件目录获取)
/*** 将配置文件中配置的每一个属性的值,映射到这个组件中* @ConfigurationProperties: 告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定* perfix = "person": 配置文件中哪个下面的所有属性进行一一映射* @PropertySource:从指定的配置文件目录获取 *只有这个组件是容器中的组件,才能提供@ConfigurationProperties功能,所有要加@Component注解* */@Component@ConfigurationProperties(prefix = "person") //默认从全局配置文件中获取@PropertySource(value={"classpath:person.yml"}) //从指定的配置文件目录获取@Datapublic class Person1 {@Email //数据校验,是否为emailprivate String lastName;private String age;private Boolean boss;private Date birth;private Map<String,Object> maps;private Dog dog;}
应用场景:
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;
另外如果需要从指定配置文件目录获取的时候,用@PropertySource;
3.@Configuration和@Bean
/**
* @Configuration:指明当前类是一个配置类,就是来代替之前的Spring配置文件
*
* 相当于在配置文件中<bean><bean/>标签添加注解
*/
@Configuration
public class HelloConfig {@Bean //此注解就是将方法的返回值添加到容器中,容器中这个组件的默认ID就是方法名public HelloService helloService(){return new HelloService();}
}
3.配置文件占位符
例如:(yml)
person:lastName: xiwen${random.uuid}age: 18boss: truebirth: 2018/07/07maps: {k1: v1,k2: v2}lists:- lisi- zhaowudog:name: 小狗age: 2
4.激活指定profiles
5.配置文件加载位置
6.外部配置加载顺序(所有加载配置来源)
命令行参数:java -jar game-0.0.1-SNAPSHOT.jar --server.port=8080 --server.context-path=/abc
多个配置用空格分开;--配置项=值
7.自动配置的原理
备注:在yml中添加配置即可
#开启Spring Boot的debug,可以打印出自动配置报告debug: true
SpringBoot学习三:常用注解(配置相关)相关推荐
- SpringBoot学习之常用注解
@SpringBootAppliaction:通常注解写在SpringBoot启动类中,主要包括三个作用: 1.@Configuration表示将该类作用springboot配置文件类. 2.@Ena ...
- Java学习 --- springSecurity基于注解配置
一.springSecurity基于注解配置 创建一个spring项目 1.pom.xml <?xml version="1.0" encoding="UTF-8& ...
- springBoot学习(二)配置环境动态切换和部分注解的运用
springBoot配置环境动态切换 建立第一个配置文件(springBoot默认读取的文件)application.properties test.name=default test.default ...
- spring mvc学习(7):springmvc学习笔记(常用注解)
1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如下特点: 不需要继承任何类, 也不需要实 ...
- SpringBoot学习之@Configuration注解和@Bean注解
@Configuration 1.@Configuration注解底层是含有@Component ,所以@Configuration 具有和 @Component 的作用. 2.@Configurat ...
- springboot 中使用 Mybatis 注解 配置 详解
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 传参方式 使用不同的传参方式: 使用@Param 之前博文中的项目使用了这种简单的传参方式: @In ...
- SpringBoot Dao层常用注解
@Repository:作用在DAO层,将该类依赖注入,其他层就可以调用该mapper,如果启动类添加了@MapperScan注解,就不需要再写这个注解. @Data:注解在实体类上,为该实体类提供g ...
- springboot学习记录--Maven setting配置
Maven setting配置镜像仓库 配置本地仓库 1 <!--自定义本地仓库路径--> 2 <localRepository>D:\JAVA\MavenRepositor ...
- SpringBoot下,利用@WebFilter配置使用与注意Filter
Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如JSP,Servlet,静态图片文件或静 ...
最新文章
- android meta data值获取的坑
- 【MVC】Controller的使用
- PostMessage
- Lua中的metatable
- Android之用java的socket写服务器提示java.net.BindException: Address already in use
- 1.0jpa 2.0_JPA 2.1如何成为新的EJB 2.0
- dreamweaver开源_Dreamweaver的7种开源替代品
- 2013蓝桥杯C++B:第39阶台阶(递归法);前缀判断
- .Net 的 Web 项目中 关于TreeView 的 checkBox 的操作……
- RedHat Linux 5.2 网关及安全应用
- IBM Watson启示录:AI不应该仅仅是炫技
- 数通学习网络协议地图
- 不在同一局域网?组建家庭局域网的方案和踩坑
- 如何给宝宝取一个高雅有内涵的名字
- 【转】MEGA构建系统进化树的步骤(以MEGA7为例)
- 传奇引擎注册服务器,GeeM2引擎架设传奇不能注册账号 进不去游戏
- WPF学习笔记16 BookDemo 2
- 3D建模一个月的真实收入,当作副业在家就能月入过万?
- CLion设置默认显示汇编指令的格式
- 最全最细的零知识 (ZK) 证明解读
热门文章
- 拼多多验证码识别展示(附测试链接)
- 鸿蒙系统荣耀8xmax,华为8月9日发布基于安卓10.0全新系统 自主鸿蒙会同台亮相
- [视觉SLAM十四讲]学习笔记1-刚体运动之旋转矩阵与变换矩阵
- Linux之cat tail less常见用法
- 电子皮带秤称重传感器电阻如何测量好坏判断
- 三坐标测量机测头的测球半径补偿误差
- HTTP代理IP的含义 HTTP代理IP如何使用?
- IDA7.7.220118 - The graph is too big
- 英格兰vs波兰比赛预测!小组头名之争谁能拔得头筹?世预赛分析!
- AirMagic for mac(ps/lr无人机航拍效果增强软件) v1.0.2(7263)中文版