打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SpringBoot入门学习(六) ~~ 参数绑定
目录
SpringBoot中的参数绑定
一、@ConfigurationProperties
二、@Value
三、命令行方式——配置参数
四、@ConfigurationProperties 总结~~支持松绑定
SpringBoot中的参数绑定
SpringBoot的特点就是将配置文件中的配置信息自动注入到自动生成的类中,这样就可以省很多功夫了。那么这里有一个疑问?SpringBoot是如何准确的定位到这个配置信息,将配置内容注入到类中。我们又可不可以自己去自定义呢!下面这个注解将会解答你的所有疑问。
一、@ConfigurationProperties
这个注解可以非常方便的把资源文件中的内容绑定到对象上。
入门小小案例:
1、引入lombok依赖,这个依赖是专门用来生成get跟set方法的,你也可以手动生成。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2、编写一个简单的实体,代码如下:
@Component@Setter@Getter@ToString public class MyDruidDataSource {    private String username;   private String password;   private String url;   private String driverClassName;}
3、在配置文件中,写入以下的配置:
db.username=xiaozheng db.password=123456 db.url=jdbc:mysql:///crm db.driver_class_name=com.mysql.jdbc.Driver
4、在一个简单控制器,去输出MyDruidDataSource
@Controller public class DataSource {   @Autowired   private MyDruidDataSource myDruidDataSource;   @RequestMapping("/dataSource")   @ResponseBody   public String dataSource(){      System.out.println(myDruidDataSource.toString());      return "hello dataSource";   }}
5、编写启动类,启动项目,访问dataSource后效果图如下:
说明当前的类并没有与配置信息有任何的绑定。
6、需要引入@ConfigurationProperties
@Component@Setter@Getter@ToString@ConfigurationProperties("db") public class MyDruidDataSource {    private String username;   private String password;   private String url;   private String driverClassName;}
7、启动,再次访问就可以了。
方法上 @ConfigurationProperties
【描述:】上面的案例,是我们自己编写的类,我们可以在类上加入@ConfigurationProperties去注入参数。但如果说是第三方的类,而我们又想去自定义它的参数呢!可以在方法上加该注解
参考代码:
假如:MyDruidDataSource是第三方类,我们可用以下方式注入:
@Bean@ConfigurationProperties(prefix = "db") public MyDruidDataSource myDruidDataSource(){   return new MyDruidDataSource();}
二、@Value
这里呢!它是根据配置文件中db.xx的名字去找类的相同成员变量名,然后将内容注入到类变量中。
那么,如果说,类成员变量跟配置文件的属性名字不一致的话,该怎么办呢?
这时候可以使用@value注解
//将配置文件中,username1的属性注入到username,这个注解就解决了属性跟类变量不一致的问题@Value("username1") private String username; @Value("password1") private String password;
三、命令行方式——配置参数
使用——开头的参数都可以被SpringBoot视为参数,允许参数的绑定。
或者通过java –jar 项目 –db.username=xiaozheng –db.password=123456….方式也可以
四、@ConfigurationProperties 总结~~支持松绑定
允许匹配方式:
db.userName = 类成员userName
db.user_name = 类成员userName
db.user-name = 类成员userName
db_user_name = 类成员userName
为什么支持松绑定?
因为参数绑定来源有很多,例如系统变量,我们习惯配置
JAVA_HOME、MAVEN_HOME用下划线风格,支持这种类型的绑定。
来源:http://www.icode9.com/content-4-31301.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SpringBoot-配置文件
SpringBoot使用JNDI数据源
SpringBoot的properties和yml两种配置方式, 配置注入参数, 以及配置文件读取失效的问题
注解@ConfigurationProperties使用方法
SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
springboot yml 配置文件注入Map,List
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服