yml不识别_SpringBoot(2):yml配置文件和集成其他框架
springBoot配置文件
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。
SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件
其中,application.properties文件是键值对类型的文件,除了properties文件外,SpringBoot还可以使用yml文件进行配置。
YML文件
YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,
并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。
YML文件是以数据为核心的,比传统的xml方式更加简洁。YML文件的扩展名可以使用.yml或者.yaml。
配置普通数据
语法:
key: value
比如
name: zhangsan
注意:和value之前有一个空格
配置对象数据
语法:
key:
key1: value1
key2: value2
或者:
key: {key1: value1,key2: value2}
比如:
person:name: haohaoage: 31addr: beijing
或者
person: {name: haohao,age: 31,addr: beijing}
我们在application.properties的配置可以改为application.yml的:
server:
port: 8082
servlet:
context-path: /newName
配置数据、集合(普通字符串)
集合中的数据为字符串
city:- beijing- tianjin- chongqing- shanghai
或者行内配置
city: [beijing,tianjin,chongqing,shanghai]
配置数据、集合(对象数据)
集合中的数据为对象
student:- name: tomage: 18addr: beijing- name: lucyage: 17addr: tianjin
或者行内配置
student: [{name: tom,age: 18,addr: beijing},{name: lucy,age: 17,addr: tianjin}]
Map配置
map:key1: value1key2: value2
获取配置文件中的数据
使用@Value注解
不需要getter和setter方法
@Controller
public class QuickValueController {@Value("${name}")private String name;@Value("${person.addr}")private String addr;@RequestMapping("/quick2")@ResponseBodypublic String Quick() {System.out.println(name);System.out.println(addr);return "name:" + name + " addr:" + addr;}
}
使用@ConfigurationProperties注解
需要getter和setter方法
@Controller
@ConfigurationProperties(prefix = "person")
public class QuickConfigurationPropertiesController {private String name;private Integer age;private String addr;@RequestMapping("/quick3")@ResponseBodypublic String Quick() {System.out.println(name);System.out.println(addr);return "name:" + name + " age:" + age + " addr:" + addr;}
}
SpringBoot整合Mybatis
mybatis起步依赖
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version>
</dependency>
添加数据库驱动坐标
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>
添加数据库连接信息(在application.properties)
#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
创建实体 domain.User
在resources目录下创建UserMapper.xml
创建持久化接口 mapper.UserMapper
在application.properties配置
pojo别名扫描包
mybatis.type-aliases-package=cn.figo.domain
加载Mybatis映射文件
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
写controller类
@Controller
public class MybatisController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/query")@ResponseBodypublic List<User> queryUserList(){List<User> users = userMapper.queryUserList();return users;}}
结果如下:
集成junit
测试的起步依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>
测试
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootCombineOtherApplication.class)
public class MybatisTest {@Autowiredprivate UserMapper userMapper;@Testpublic void test(){List<User> users = userMapper.queryUserList();System.out.println(users);}
}
结果如下:
集成SpringDataJpa
springBoot JPA的起步依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
jdk9需要导入如下坐标
<dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.0</version>
</dependency>
给实体类加jap注解
添加jpa的持久化接口
public interface UserRepository extends JpaRepository<User,Long> {public List<User> findAll();}
在spring配置文件中加jpa配置
#JPA Configuration:
spring.jpa.database=MySQL
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
然后测试
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootCombineOtherApplication.class)
public class JpaTest {@Autowiredprivate UserRepository userRepository;@Testpublic void test(){List<User> all = userRepository.findAll();System.out.println(all);}
}
结果如下;
集成redis
配置使用redis启动器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
在spring配置文件中加redis配置
#Redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
测试:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootCombineOtherApplication.class)
public class RedisTest {@Autowiredprivate UserRepository userRepository;@Autowiredprivate RedisTemplate<String, String> redisTemplate;@Testpublic void test() throws JsonProcessingException {//从redis缓存中获得指定的数据String userListData = redisTemplate.boundValueOps("user.findAll").get();//如果redis中没有数据的话if(null==userListData){//查询数据库获得数据List<User> all = userRepository.findAll();//转换成json格式字符串ObjectMapper om = new ObjectMapper();userListData = om.writeValueAsString(all);//将数据存储到redis中,下次在查询直接从redis中获得数据,不用在查询数据库redisTemplate.boundValueOps("user.findAll").set(userListData);System.out.println("===============从数据库获得数据===============");}else{System.out.println("===============从redis缓存中获得数据===============");}System.out.println(userListData);}
}
结果如下
yml不识别_SpringBoot(2):yml配置文件和集成其他框架相关推荐
- yml配置oracle连接,springboot yml 文件配置oracle,提示账号密码错误
最近使用Spring boot,本来一直连接的是mysql数据库,一直没问题.昨天在更换了oracle数据库后,一直提示账号密码不正确,登录被拒绝.检查多次,检查账号密码一切正常,但就是连接不上ora ...
- db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql的教程
springboot整合MySQL很简单,多数据源就master,slave就行了,但是在整合DB2就需要另起一行,以下是同一个yml文件 先配置MySQL,代码如下 spring: datasour ...
- db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql代码示例
本篇文章小编给大家分享一下springboot的yml配置文件通过db2的方式整合mysql代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. s ...
- .net后台怎么提取html中的多个图片的绝对地址_SpringBoot中yml配置文件说明和一些常用配置项说明...
1. 配置文件说明 Springboot启动默认扫描的配置为classes目录下的application.yml 或者是 application.properties 我们项目中是使用的yml格式的配 ...
- Destoon数据库配置文件在哪_SpringBoot中yml配置文件说明和一些常用配置项说明
1. 配置文件说明 Springboot启动默认扫描的配置为classes目录下的application.yml 或者是 application.properties 我们项目中是使用的yml格式的配 ...
- Go语言读取解析yml文件,快速转换yml到go struct
YAML (YAML Ain't a Markup Language)是一种标记语言,通常以.yml为后缀的文件,是一种直观的能够被计算机程序识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交 ...
- yml转properties, properties转yml,在线转换工具
yml properties 互转,在线转换工具 http://toyaml.com/
- c++读取txt文件中的数字_SpringBoot 多种读取配置文件中参数的方式
点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章 本文来源:http://www.mydlq.club/article/61/ . 一.简介 . 1.SpringBoot ...
- springboot 配置全局响应数据_SpringBoot如何读取配置文件参数并全局使用
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
最新文章
- 【JMAIL】jmail无法收邮件问题
- 一生应该感谢的十种人
- java documentlistener_java在DocumentListener中更改文档
- 42_ResNet (深度残差网络)---学习笔记
- Nginx正向代理实现
- TypeScript reflect-metadata 结合方法装饰器实现的一个自定义语法检查的例子
- solr 查询字段唯一值_《Solr实战》之一
- 云原生自动监控报警系统Prometheus
- U890采购入库单修改供应商
- 《微观经济学》第八章 博弈论与寡头市场初步笔记
- 非遗在线商城小程序(后台PHP开发)
- 原创 | 全网最实在的docker入门教程一
- python PIL库中的getpixel函数
- 洛阳理工学院linux实验报告,谁来给我抄实验报告啊!这一张又一张写得。。。。...
- 浮点型数据判断相等不能直接使用==
- Praat将连续录制的声音文件切成小单位文件
- 全世界正在被软件占领
- 通信网络与IP网络知识梳理
- 阿里新一代Rank技术
- xhr是什么缩写_微博上xhr和fsr是什么意思 饭圈里指黄新淳毕雯珺